如何在 vimrc 中为特定文件扩展名设置预定义标记

How to set up predefined marks for a specific file extension in vimrc

我经常需要使用文本文件作为水质科学模型的输入。这些文件很长,并且始终具有相同的命名标题部分,因此可以搜索它们并设置标记以便能够轻松地在 Vim.

中的部分之间跳转

是否可以自动执行从 .vimrc 创建这些标记的过程?到目前为止,我已经设法创建了一个宏来搜索 headers 部分并在打开这些文件时自动创建标记:

au BufNewFile,BufRead *.dat
      let @q = '/General Data^Mm1/\[2\] Determinand^Mm2/\[3\] Reaches^Mm3/\[4\] River Flow^Mm4/\[5\] River Quality^Mm5/\[F\] Effluent Flow & Quality^Mmf/\[6\] River Quality Targets^Mm6/\[7\] Features^Mm7gg'

其中^M为return键,输入按Ctrl + vM

但我不确定这是否是最好的方法,而且它需要 运行 打开文档后的宏。

有更好的方法吗?

使用双引号记录宏,这样您就可以执行以下操作:

 :let @a="imy first line\<CR>my second line"

像这样对你的自动命令进行分组:

augroup datafiles
    au!
    autocmd BufNewFile,BufRead *.dat let @q = "/General Data\<CR>m1/\[2\] Determinand\<CR>m2/\[3\] Reaches\<CR>m3/\[4\] River Flow\<CR>m4/\[5\] River Quality\<CR>m5/\[F\] Effluent Flow & Quality\<CR>mf/\[6\] River Quality Targets\<CR>m6/\[7\] Features\<CR>m7gg"
    autocmd BufNewFile,BufRead *.dat normal! @q
augroup END