如何使用命令或本地vimrc文件在多个vim配置之间切换?
我在几个小组,每个都有自己的选项卡/缩进/间距标准在C.
有一种方法可以为每个单独的可选VIM配置,因此,当我编辑文件,要么: >我做类似set group = 1来选择一个配置
综上所述
有几种方法可以做到这一点,其中大多数已经建议,但我想我会总结他们两个额外的: >每个目录vimrc – 缺点是Vim必须在正确的目录中启动:如果你的项目在?/ project1,你有?/ project1 / .vim.custom和做cd? vim project1 / file.c,将无法找到自定义设置。 扫描标题 在许多组织中,在每个源文件的顶部都有一个标准头(带有版权声明和项目名称等)。如果是这种情况,您可以让Vim自动扫描查找关键字的文件的第一行(例如10行)。如果找到它,它可以更改您的设置。我修改了它,使它比我使用的形式(它做很多其他事情)更简单,但创建一个?/ .vim / after / filetype.vim(如果你还没有),并添加类似这个: au FileType * call <SID>ConfigureFiletypes(expand("<amatch>")) " List of file types to customise let s:GROUPNAMETypes = ['c','cpp','vhdl','c.doxygen'] func! <SID>CheckForGROUPNAMECode() " Check if any of the first ten lines contain "GROUPNAME". " Read the first ten lines into a variable let header = getline(1) for i in range(2,10) let header = header . getline(i) endfor if header =~ '&;GROUPNAME&;' " Change the status line to make it clear which " group we're using setlocal statusline=%<%f (GROUPNAME) %h%m%r%=%-14.(%l,%c%V%) %P " Do other customisation here setlocal et " etc endif endfunc func! <SID>ConfigureFiletypes(filetype) if index(s:GROUPNAMETypes,a:filetype) != -1 call <SID>CheckForGROUPNAMECode() endif endfunc 每当打开任何类型的文件并设置文件类型(au FileType *行)时,将调用ConfigureFiletypes函数。这将检查文件类型是否在与当前组(GROUPNAME)相关联的文件类型列表中,在本例中为’c’,’cpp’,’vhdl’或’c.doxygen’。如果是,它调用CheckForGROUPNAMECode(),它读取文件的前10行,如果它们包含GROUPNAME,它做一些自定义。除了设置expandtabs或其他,这也改变状态栏以显示组名称,所以你知道它的工作一目了然。 打开时检查配置 很像JS Bangs的建议,有一个自定义配置文件可能是有用的。然而,不是加载它在vimrc,考虑类似这样,这将检查.c文件是否为与.c文件相同的目录中的.vim.custom打开。 au BufNewFile,BufRead *.c call CheckForCustomConfiguration() function! CheckForCustomConfiguration() " Check for .vim.custom in the directory containing the newly opened file let custom_config_file = expand('%:p:h') . '/.vim.custom' if filereadable(custom_config_file) exe 'source' custom_config_file endif endfunction (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |