仅在视觉上具有vim重映射名称

问题描述

| 当我真正发现变量包含的内容(并从中构建字典)但实际上不更改文件内容时,有没有办法使vim将诸如
izpxh
@H_404_3@这样的变量名改写为
isEnabled
@H_404_3@这样的变量名?就像,如果我处于浏览模式,我会得到重新映射的文本。当我进入插入模式时,我所在的行显示了原始文本,并且我看到了真实的变量名。当我退出插入模式时,将应用重映射,因此我可以直观地看到正确的重映射名称。当然,保存时,我想要的是原始名称,而不是重新映射的名称。 简而言之,vim是否随附Fortran77卫生护目镜?     

解决方法

         编写一个使用
:%s/\\<izpxh\\>/isEnabled/g
等的函数
MakeFortranSane
。用可读的内容替换Fortran垃圾。 编写一个相反的函数
MakeInsane
。 应用以下语句:
augroup fortransanity
    au!
    au BufRead,InsertLeave,BufWritePost * call MakeFortranSane()
    au InsertEnter,BufWritePre * call MakeInsane()
augroup END

doautocmd fortransanity FileType fortran
您还可以得到更细粒度的内容,并将
getline(\'.\')
作为参数传递给
InsertLeave
InsertEnter
上的函数,因此转换仅发生在该行上。