仅在特定回购中工作时才在 vim 中加载 functions/mappings 等
Load functions/mappings etc in vim only when working in a specific repo
我想知道是否可以设置 vim 的方式,当我在某个 repo 中工作时,它会加载额外的 functions/mappings 等
类似于文件类型的 ftplugin,但类型不是由文件本身定义,而是由其位置定义(或由命令的结果定义,例如 hg path default)。
这可能会满足您的需要,但这只是一个示例。
augroup repo
autocmd!
autocmd BufReadPost * call RepoMappings()
augroup END
function! RepoMappings()
let repo = '^/tmp/test/'
if expand('%:p') =~# repo
nnoremap <buffer> <f7> :echo 'yohoo'<cr>
endif
endfunction
您更改 let repo = '^/tmp/test/'
,这将是您的回购路径的 prefix
。在上面的示例中,仅对于 "repo" 中的文件,<f7>
映射有效。
您可以将 repo
变量扩展到一个列表,或者为不同的 repo 调用不同的函数...
有一件事没有处理,如果你打开一个新的缓冲区,没有文件名,你可能想检查pwd
看它是否在"repo"中。但是你有想法,你可以暗示。如果需要,请自行处理。
试试吧。
中央配置
如果可以集中配置特定命令/本地异常,您可以将此类自动命令放入您的 ~/.vimrc
:
:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4
使用 :setlocal
而不是 :set
很重要,同样 :map <buffer> ...
和 :command! -buffer ...
.
另一方面,如果您希望将特定配置与项目一起存储(并且不想通过 modelines 将其嵌入到所有文件中),您有以下内容两个选项:
具有内置功能的本地配置
如果你总是从项目根目录启动Vim,内置的
:set exrc
允许从当前目录读取 .vimrc
文件。您可以将 :set ts=4 sw=4
命令放在那里。
通过插件进行本地配置
否则,你需要一个插件的帮助; vim.org 上有几个;我可以推荐 localrc plugin,它甚至允许本地文件类型特定的配置。
请注意,从文件系统读取配置具有安全隐患;你可能想要 :set secure
.
我想知道是否可以设置 vim 的方式,当我在某个 repo 中工作时,它会加载额外的 functions/mappings 等
类似于文件类型的 ftplugin,但类型不是由文件本身定义,而是由其位置定义(或由命令的结果定义,例如 hg path default)。
这可能会满足您的需要,但这只是一个示例。
augroup repo
autocmd!
autocmd BufReadPost * call RepoMappings()
augroup END
function! RepoMappings()
let repo = '^/tmp/test/'
if expand('%:p') =~# repo
nnoremap <buffer> <f7> :echo 'yohoo'<cr>
endif
endfunction
您更改 let repo = '^/tmp/test/'
,这将是您的回购路径的 prefix
。在上面的示例中,仅对于 "repo" 中的文件,<f7>
映射有效。
您可以将 repo
变量扩展到一个列表,或者为不同的 repo 调用不同的函数...
有一件事没有处理,如果你打开一个新的缓冲区,没有文件名,你可能想检查pwd
看它是否在"repo"中。但是你有想法,你可以暗示。如果需要,请自行处理。
试试吧。
中央配置
如果可以集中配置特定命令/本地异常,您可以将此类自动命令放入您的 ~/.vimrc
:
:autocmd BufRead,BufNewFile /path/to/dir/* setlocal ts=4 sw=4
使用 :setlocal
而不是 :set
很重要,同样 :map <buffer> ...
和 :command! -buffer ...
.
另一方面,如果您希望将特定配置与项目一起存储(并且不想通过 modelines 将其嵌入到所有文件中),您有以下内容两个选项:
具有内置功能的本地配置
如果你总是从项目根目录启动Vim,内置的
:set exrc
允许从当前目录读取 .vimrc
文件。您可以将 :set ts=4 sw=4
命令放在那里。
通过插件进行本地配置
否则,你需要一个插件的帮助; vim.org 上有几个;我可以推荐 localrc plugin,它甚至允许本地文件类型特定的配置。
请注意,从文件系统读取配置具有安全隐患;你可能想要 :set secure
.