Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为几种语言创建多个.vimrc?_Vim_Vim Plugin - Fatal编程技术网

如何为几种语言创建多个.vimrc?

如何为几种语言创建多个.vimrc?,vim,vim-plugin,Vim,Vim Plugin,我正在学习Vim,并很快发现它有多么棒。我已经为python设置了.vimrc,但现在我想将我的生活与vim完全集成。那么如何为每种语言创建一个单独的.vimrc呢? 我已经下载了emmet for html并将其放在我的.vim中,我现在也无法使用emmet 我尝试了~/.vim/ftplugin/java.vim,但无法创建新的.vim文件 我确实有埃米特,我只是不知道如何让它工作。如果您对使用不同的设置、键映射等感兴趣,这是我发现的最好的东西。您可以通过使用autocmd在单个.vimrc

我正在学习Vim,并很快发现它有多么棒。我已经为python设置了.vimrc,但现在我想将我的生活与vim完全集成。那么如何为每种语言创建一个单独的.vimrc呢? 我已经下载了emmet for html并将其放在我的.vim中,我现在也无法使用emmet

我尝试了~/.vim/ftplugin/java.vim,但无法创建新的.vim文件


我确实有埃米特,我只是不知道如何让它工作。如果您对使用不同的设置、键映射等感兴趣,这是我发现的最好的东西。您可以通过使用
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
)。