关于vim中所有不同类型的选项卡相关设置,我读到的一个很好的答案是:将选项卡重新定义为4个空格。但是,有没有办法真正了解这些设置是如何应用和影响文件的?我用过类似的东西:
:set list
但它实际上只显示了一堆$
(换行符(,而且我在文件中看不到任何空格或制表符。有没有一种方法可以查看vim
中所有类似空格的字符,这样我就可以玩了,例如,tabstop
可能如何工作,softtabstop
可能如何工作以及它们如何一起工作,等等
vim中有四件事与选项卡相关:
- tabstop
- expandtab
- 移位宽度
- softtabstop
参考vim 中制表位的有用参考
tabstop设置tabstop来告诉vim一个选项卡的列数。Linux内核代码期望每个选项卡有八列宽。视力的Studio希望每个选项卡有四列宽。这是唯一的命令,该命令将影响现有文本的显示方式。
expandtab设置expandtab后,在插入模式下点击Tab键将产生适当数量的空格。
shiftwidth设置shiftwidth以控制使用缩进操作(<<和>>(和自动缩进文本的列数C样式缩进。
softtabstop设置softtabstop以控制在插入模式下点击Tab时vim使用的列数。如果softtabstop小于tabstop如果未设置expandtab,vim将使用tab和空间来构成所需的间距。如果softtabstop等于tabstop如果未设置expandtab,vim将始终使用制表符。当expandtab为设置,vim将始终使用适当数量的空格。
您可以在命令模式下使用以下命令查看vim中的当前设置:
:set tabstop?
:set expandtab?
:set shiftwidth?
:set softtabstop?
您可以在命令模式下使用以下命令设置当前会话的值:
:set tabstop=4
:set expandtab #if you want to remove expand tab, set noexpandtab
:set shiftwidth=4
:set softtabstop=4
或者,如果您想使更改永久化,您可以对vimrc文件进行更改:
它位于以下路径:
~/.vimrc on Unix;
$HOME/_vimrc on Windows
对于gvim,您可以转到编辑->启动设置来查看当前的vimrc设置并进行编辑。
您需要向vimrc添加一行,如下所示:
set tabstop=4 softtabstop=4 shiftwidth=4 expandtab
这应该有效:
:set lcs=space:_,tab:>~ list