在Vim中重新加载文件时保持标记

时间:2018-09-11 11:20:04

标签: vim

我有一个针对源文件的自动命令,该命令在保存时运行自动格式化程序。如果自动格式化程序修改了文件,我的所有标记都将丢失。在这种情况下,有没有办法保存商标?我相关的.vimrc配置是这样的:

function! s:FormatCode()
    if (s:formatOnSave == 1)
        Autoformat
    endif
endfunction

然后在augroup中输入

if (executable("clang-format"))
    autocmd FileType c,cpp,objc,objcpp autocmd BufWritePre <buffer> silent! call s:FormatCode()
endif

1 个答案:

答案 0 :(得分:0)

假设自动格式化程序正在使用 filter 命令,可以通过在命令前加上:help :keepmarks来完成此操作:

example: 'He is my uncle's son.and he is a programmer' 
output: He is my uncle's son.and he is a programmer

阅读帮助中的警告。如果这样不起作用,则必须手动保存和恢复标记,例如使用keepmarks Autoformat getpos()