我的一些部分.vimrc看起来像这样:
autocmd Filetype ruby setlocal ts=2
autocmd Filetype ruby setlocal sts=2
autocmd Filetype ruby setlocal sw=2
Run Code Online (Sandbox Code Playgroud)
现在看来我可以把它们转换成这个:
autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
Run Code Online (Sandbox Code Playgroud)
但这是我的问题:有没有像这样的结构的vim方式?
<something mentioning Filetype ruby>
setlocal ts=2
setlocal sts=2
...
<end>
Run Code Online (Sandbox Code Playgroud)
也就是说,autocmd Filetype某种程度上可以用来解决一组行动?(这是一个简单的例子,我真的要求更复杂的情况.)
Luc*_*man 70
如果您愿意,可以调用函数:
autocmd Filetype ruby call SetRubyOptions()
function SetRubyOptions()
setlocal ts=2
...
endfunction
Run Code Online (Sandbox Code Playgroud)
Bri*_*per 54
你可以用大多数命令链接|:
au Filetype ruby
\ setlocal ts=2 |
\ setlocal sts=2 |
\ ...
Run Code Online (Sandbox Code Playgroud)
不确定这种语法是否比编写函数更好或更差.有些命令不能像这样链接,但你可以用它execute来解决这个问题; 看:h :bar.
另请参阅行开头:h line-continuation的奇怪语法解释\.
Luc*_*tte 21
ftplugins是你问题的巧妙答案.
.vimrc有一条线,如:filetype plugin on{rtp}/ftplugin/{thefiletype}.vimor 的文件{rtp}/ftplugin/{thefiletype}/whatever.vim(:h rtp有关详细信息,请参阅参考资料):setlocal命令确保仅针对该文件的文件类型特定设置(例如,不要在所有文件类型中将所有注释变为紫色)可能是个好主意 .如果您计划覆盖默认设置,请参阅vim发行版中的示例; 或者其中许多ftplugins我写的其他方式),只写下来你的:setlocal,:*map <buffer>等定义.
它代表了更多的线型,但至少,它确实可以扩展.