问题描述
|
当我真正发现变量包含的内容(并从中构建字典)但实际上不更改文件内容时,有没有办法使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
上的函数,因此转换仅发生在该行上。