如何在 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 + v
和M
但我不确定这是否是最好的方法,而且它需要 运行 打开文档后的宏。
有更好的方法吗?
使用双引号记录宏,这样您就可以执行以下操作:
: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
我经常需要使用文本文件作为水质科学模型的输入。这些文件很长,并且始终具有相同的命名标题部分,因此可以搜索它们并设置标记以便能够轻松地在 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 + v
和M
但我不确定这是否是最好的方法,而且它需要 运行 打开文档后的宏。
有更好的方法吗?
使用双引号记录宏,这样您就可以执行以下操作:
: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