Ruby 如何为两种不同的语言配置Vim?
我目前正在使用Vim for Python,并希望在学习Ruby的同时开始使用它 是否有办法配置vimrc文件,以便根据当前正在处理的文件类型应用不同的设置 例如,我的vimrc当前设置为缩进4个空格,对于Ruby文件,我希望缩进为2个空格。此外,我希望在处理Ruby文件时启用语法Ruby语法突出显示,并为Python文件启用Python语法突出显示 我在定义选项卡空间时偶然发现了以下内容:Ruby 如何为两种不同的语言配置Vim?,ruby,vim,indentation,file-type,vim-syntax-highlighting,Ruby,Vim,Indentation,File Type,Vim Syntax Highlighting,我目前正在使用Vim for Python,并希望在学习Ruby的同时开始使用它 是否有办法配置vimrc文件,以便根据当前正在处理的文件类型应用不同的设置 例如,我的vimrc当前设置为缩进4个空格,对于Ruby文件,我希望缩进为2个空格。此外,我希望在处理Ruby文件时启用语法Ruby语法突出显示,并为Python文件启用Python语法突出显示 我在定义选项卡空间时偶然发现了以下内容: autocmd FileType python set tabstop=8|set shiftwidth
autocmd FileType python set tabstop=8|set shiftwidth=4|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
语法突出显示有类似的功能吗?augroupruby
自动驾驶!
autocmd文件类型ruby set tabstop=8 | set shiftwidth=2 | set expandtab
... 任何其他特定于ruby的设置
螺旋端
augrouppython
自动驾驶!
autocmd文件类型python set tabstop=8 | set shiftwidth=4 | set expandtab
... 任何其他特定于python的设置
螺旋端
在语法高亮显示的情况下,它应该自动发生。如果vim没有检测到您的文件类型,则当您在文件中时,
:setf ruby
或:setf python
应该可以工作。首先,
确保在vimrc
顶部附近有以下几行:
filetype plugin indent on
syntax on
秒,
此代码段在技术上是正确的:
autocmd FileType python set tabstop=8|set shiftwidth=4|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
但可以这样做:
- 通过删除条形图和冗余的
s,更简单、更可读集合
- 将其余的选项更改为
,以便将选项限制在目标缓冲区内,从而更加安全:setlocal
autocmd FileType python setlocal tabstop=8 shiftwidth=4 expandtab autocmd FileType ruby setlocal tabstop=8 shiftwidth=2 expandtab
vimrc
编写源代码时,这些自动命令不会自动替换:它们只会堆积起来,堆积起来,堆积起来……直到你的Vim变得无法忍受的缓慢和无响应
如果您坚持将这些设置保留在vimrc
中,则明智的做法是使用Cody在其回答中描述的模式:
augroup python
autocmd!
autocmd FileType python setlocal tabstop=8 shiftwidth=4 expandtab
augroup END
augroup ruby
autocmd!
autocmd FileType ruby setlocal tabstop=8 shiftwidth=2 expandtab
augroup END
第四,
Vim的文件类型检测机制已经为您完成了大部分工作,每次用值python
触发filetype
事件时,在&runtimepath
中查找ftplugin/python.Vim
和之后的/ftplugin/python.Vim
,这使得添加filetype
自动命令您的vimrc
基本上是冗余的
通过在/ftplugin/python.vim之后创建文件vimrc
来保持您的vimrc
整洁:
setlocal tabstop=8
setlocal shiftwidth=4
setlocal expandtab
等等,对于ruby和其他文件类型
注意:如果您想完全覆盖默认的python文件类型插件,请使用ftplugin/python.vim
;如果您只想添加/更改一些内容,请在/ftplugin/python.vim之后使用
注意:在类unix系统上,路径与~/.vim
有关,在Windows上,路径与%userprofile%\vimfiles
有关。语法突出显示应使用出厂设置。试着把你的.vimrc移到一边去检查一下,并可能把库存/usr/share/vim/vim/vim74/vimrc_example.vim
复制到~/.vimrc
。autocmd!删除组的所有自动命令,这样在重新加载.vimrc时不会受到污染。:h autocmd将在Vim中为您提供更多信息。感谢您提供的信息,帮助很大!感谢您的详细回复,非常有帮助。请注意,虽然知道#1-#3很好,但是#4才是您真正应该注意的。