如何在Vim中更改选项卡大小?
每次我在CSS中添加选择器并按下如何在Vim中更改选项卡大小?,vim,tabs,Vim,Tabs,每次我在CSS中添加选择器并按下Enter来定义属性时,结果如下所示: #选择器{ 财产:价值; } (8-空格选项卡) 我如何配置Vim使其如下所示: #选择器{ 财产:价值; } (4个空格选项卡) 这将插入四个空格而不是制表符。空格更“稳定”,这意味着带有空格的缩进文本在浏览器和任何其他应用程序中都会显示相同的内容。扩展zoul的答案: 如果要将Vim设置为在编辑特定文件类型时使用特定设置,则需要使用自动命令: autocmd Filetype css setlocal tabstop
Enter
来定义属性时,结果如下所示:
#选择器{
财产:价值;
}
(8-空格选项卡)
我如何配置Vim使其如下所示:
#选择器{
财产:价值;
}
(4个空格选项卡)
这将插入四个空格而不是制表符。空格更“稳定”,这意味着带有空格的缩进文本在浏览器和任何其他应用程序中都会显示相同的内容。扩展zoul的答案: 如果要将Vim设置为在编辑特定文件类型时使用特定设置,则需要使用自动命令:
autocmd Filetype css setlocal tabstop=4
这将使选项卡显示为4个空格。设置expandtab
将导致Vim在您按tab键时实际插入空格(空格数量由tabstop
控制);您可能希望使用softtabstop
使backspace正常工作(也就是说,如果使用制表符,将减少缩进,而不是每次删除一个字符)
要做出关于如何设置的全面决策,您需要阅读tabstop
、shiftwidth
、softtabstop
和expandtab
上的Vim文档。最有趣的一位位于expandtab
(:help'expandtab
)下:
Vim中有四种主要的选项卡使用方式:
更新 如果您在一个特定的项目中工作,我强烈建议您使用 它允许您在存储库的根目录下定义一个
.editorconfig
文件,定义要在存储库中为每种文件类型使用的缩进
例如:
root = true
[*.css]
charset = utf-8
indent_style = space
indent_size = 4
[*.js]
charset = utf-8
indent_style = space
indent_size = 2
有一个根据您打开的文件的配置文件自动配置vim的程序
除此之外,许多其他IDE和编辑器都自动支持.editorconfig
文件,因此它是具有不同环境的用户之间协作的最佳选择
原始答案
如果您需要经常更改大小,并且不想将其绑定到特定的文件类型,则可以在.vimrc文件上使用预定义命令来快速切换首选项:
nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>
nmap t:set expandtab tabstop=4 shiftwidth=4 softtabstop=4
nmap m:设置expandtab tabstop=2 shiftwidth=2 softtabstop=2
这将两组不同的大小映射到键\t和\m。您可以将其重新绑定到所需的任何键。要对一个会话进行更改,请使用以下命令:
:set tabstop=4
要使更改永久化,请将其添加到~/.vimrc
或~/.vim/vimrc
:
set tabstop=4
这将影响所有文件,而不仅仅是css。要仅影响css文件,请执行以下操作:
autocmd Filetype css setlocal tabstop=4
如中所述 本页中的几个答案是对所述问题的“一次性”修复。也就是说,下次使用vim打开文档时,将返回以前的选项卡设置 如果有人想永久更改选项卡设置:
- 查找/打开您的.vimrc-
- 添加以下行:()
- 然后保存文件并进行测试
:set tabstop=4 shiftwidth=4
set tabstop=4
set shiftwidth=4
对于永久设置,将这些行添加到~/.vimrc:
:set tabstop=4 shiftwidth=4
set tabstop=4
set shiftwidth=4
注意:添加
设置expandtab
如果你喜欢4个空格的缩进,而不是制表符缩进。在我的中。vim/vimrc
(ubuntu bionic下的vim 8.0),我有
因此,添加了如下行:
autocmd文件类型css setlocal tabstop=2
不起作用
我创建了.vim/indent
文件夹并添加到:
css.vim
with
set tabstop=2
set shiftwidth=2
set softtabstop=2
而且它有效我试着在另一台装有ubuntu focal和vim 8.1的计算机上运行,它不工作-(您想要一个4格宽的制表符?四个空格?还是四个1格宽的制表符?它们是不同的东西,您不清楚。在任何情况下,请先阅读:he ts、:he sw和:he expandtYes,但制表符是语义的(每个制表符表示一层缩进),而空格纯粹是表示性的。或者换句话说,使用制表符可以让其他人查看您的代码,无论他们喜欢多宽,而空格不允许。请注意,如果您更喜欢“>”和“另外”,不要太担心以后可能会改变主意……请参见
:help retab
(检查!变体).autocmd的使用是对.vimrc的补充,还是一种替代方法?如果您希望tab用作四个空格,则有必要将@Zoul答案中的其他行也添加到.vimrc中;也就是说,将'set-shiftwidth=4'和'set-expandtab'添加到.vimrc中。问题是“如何在Vim中更改选项卡大小?”我就是这样做的。为了确保总是备份~/.vimrc
,我通常将文件保存在我的Dropbox文件夹中,然后创建一个指向桌面的sym链接:ln-s/home/myfolder/Dropbox/.vimrc
set tabstop=2
set shiftwidth=2
set softtabstop=2