如何为几种语言创建多个.vimrc?
我正在学习Vim,并很快发现它有多么棒。我已经为python设置了.vimrc,但现在我想将我的生活与vim完全集成。那么如何为每种语言创建一个单独的.vimrc呢? 我已经下载了emmet for html并将其放在我的.vim中,我现在也无法使用emmet 我尝试了~/.vim/ftplugin/java.vim,但无法创建新的.vim文件如何为几种语言创建多个.vimrc?,vim,vim-plugin,Vim,Vim Plugin,我正在学习Vim,并很快发现它有多么棒。我已经为python设置了.vimrc,但现在我想将我的生活与vim完全集成。那么如何为每种语言创建一个单独的.vimrc呢? 我已经下载了emmet for html并将其放在我的.vim中,我现在也无法使用emmet 我尝试了~/.vim/ftplugin/java.vim,但无法创建新的.vim文件 我确实有埃米特,我只是不知道如何让它工作。如果您对使用不同的设置、键映射等感兴趣,这是我发现的最好的东西。您可以通过使用autocmd在单个.vimrc
我确实有埃米特,我只是不知道如何让它工作。如果您对使用不同的设置、键映射等感兴趣,这是我发现的最好的东西。您可以通过使用
autocmd
在单个.vimrc中实现这一点。(特定于语言的插件应自行处理此问题。例如,Python插件仅在编辑Python文件时生效。)
发件人:
您可以指定在读取或写入时自动执行的命令
当进入或离开缓冲区或窗口以及退出Vim时的文件
例如,这里是my.vimrc的一部分:
" set shiftwidth and softtabstops to 2 when working with Clojure, Ruby, HAML, etc.
autocmd FileType clojure,ruby,haml,eruby,yaml,cucumber set ai sw=2 sts=2 et
" map ctrl-e to vim-fireplace's Eval function when working with Clojure files
autocmd FileType clojure nnoremap <C-e> :Eval<CR>
使用Clojure、Ruby、HAML等时,将shiftwidth和softtabstops设置为2。
autocmd文件类型clojure、ruby、haml、eruby、yaml、cucumber set ai sw=2 sts=2 et
“使用Clojure文件时,将ctrl-e映射到vim fireplace的评估功能
autocmd文件类型clojure nnoremap:Eval
如果您对使用不同的设置、键映射等感兴趣,可以通过使用
autocmd
在单个.vimrc中实现这一点。(特定于语言的插件应自行处理此问题。例如,Python插件仅在编辑Python文件时生效。)
发件人:
您可以指定在读取或写入时自动执行的命令
当进入或离开缓冲区或窗口以及退出Vim时的文件
例如,这里是my.vimrc的一部分:
" set shiftwidth and softtabstops to 2 when working with Clojure, Ruby, HAML, etc.
autocmd FileType clojure,ruby,haml,eruby,yaml,cucumber set ai sw=2 sts=2 et
" map ctrl-e to vim-fireplace's Eval function when working with Clojure files
autocmd FileType clojure nnoremap <C-e> :Eval<CR>
使用Clojure、Ruby、HAML等时,将shiftwidth和softtabstops设置为2。
autocmd文件类型clojure、ruby、haml、eruby、yaml、cucumber set ai sw=2 sts=2 et
“使用Clojure文件时,将ctrl-e映射到vim fireplace的评估功能
autocmd文件类型clojure nnoremap:Eval
Vim有文件类型插件的概念。您可以通过
上的:filetype plugin(在您的~/.vimrc
中)启用它们。然后,每当您编辑Python/Java/which文件时,Vim都会加载该特定编程语言的相应设置。您可以使用自己的设置来调整/覆盖/扩展这些设置,并根据需要添加(缓冲区本地)映射和命令。阅读更多信息,请访问:help ftplugin
因此,我建议将设置和映射放到~/.vim/after/ftplugin/{filetype}.vim
中,而不是像@pdoherty926的回答所建议的那样定义大量的:autocmd filetype{filetype}
。这是正确的机制,它不会让你的~/.vimrc
被特定于语言的东西弄得乱七八糟。Vim有文件类型插件的概念。您可以通过
上的:filetype plugin(在您的~/.vimrc
中)启用它们。然后,每当您编辑Python/Java/which文件时,Vim都会加载该特定编程语言的相应设置。您可以使用自己的设置来调整/覆盖/扩展这些设置,并根据需要添加(缓冲区本地)映射和命令。阅读更多信息,请访问:help ftplugin
因此,我建议将设置和映射放到~/.vim/after/ftplugin/{filetype}.vim
中,而不是像@pdoherty926的回答所建议的那样定义大量的:autocmd filetype{filetype}
。这是正确的机制,它不会让你的~/.vimrc
被特定于语言的东西弄得乱七八糟。使用插件管理器会让事情变得更简单,我个人使用病原体,安装新插件就像克隆git repo一样简单。试试看。使用插件管理器会让事情变得简单得多,我个人使用的是病原体,安装新插件就像克隆git repo一样简单。试试看。这就是ftplugin
文件的用途(参见:h ftplugin
)。这就是ftplugin
文件的用途(参见:h ftplugin
)。