我目前的设置是8个空格;我该如何重新定义它呢?


当前回答

添加一行 将ts = 4 在 ~ /。每个用户的Vimrc文件 或 /etc/vimrc文件用于整个系统

其他回答

对于永久的更改,创建文件~/.vim/plugin/tab_expander。用内容进行Vim

set tabstop=4 softtabstop=4 expandtab shiftwidth=4 smarttab

防止碰~/。Vimrc,从而保持其他默认设置不变。

:set sw=4

参见掌握VI编辑器

这取决于你的意思。你的意思是:

您希望文件中的制表符显示为4个字符单元格宽? 您希望TAB键生成由4个空格字符组成的缩进

根据您需要的行为,以下设置之一应该工作:

如果你想要文件中的制表符显示为4个字符单元格宽:

set tabstop=4

如果你的代码需要使用实际的制表符,这些设置可以防止无意插入空格(这些是默认值,但你可能想要防御性地设置它们):

set softtabstop=0 noexpandtab

如果你还想使用制表符进行缩进,你还应该将shiftwidth设置为与tabstop相同:

set shiftwidth=4

要使这些设置永久存在,请将它们添加到vimrc中。

如果你想按tab键缩进4个空格字符:

首先,告诉vim使用4空格缩进,并智能地使用tab键进行缩进,而不是插入制表符(当在一行的开头时):

set shiftwidth=4 smarttab

如果你也想让vim只使用空格字符,而不是制表符:

set expandtab

最后,我还建议设置制表位与缩进宽度不同,以减少制表符伪装成适当缩进的机会:

set tabstop=8 softtabstop=0

要使这些设置永久存在,请将它们添加到vimrc中。

更多的细节

如果你需要做出调整,或者只是想了解这些选项的含义,下面是每个选项的含义:

tabstop The width of a hard tabstop measured in "spaces" -- effectively the (maximum) width of an actual tab character. shiftwidth The size of an "indent". It's also measured in spaces, so if your code base indents with tab characters then you want shiftwidth to equal the number of tab characters times tabstop. This is also used by things like the =, > and < commands. softtabstop Setting this to a non-zero value other than tabstop will make the tab key (in insert mode) insert a combination of spaces (and possibly tabs) to simulate tab stops at this width. expandtab Enabling this will make the tab key (in insert mode) insert spaces instead of tab characters. This also affects the behavior of the retab command. smarttab Enabling this will make the tab key (in insert mode) insert spaces or tabs to go to the next indent of the next tabstop when the cursor is at the beginning of a line (i.e. the only preceding characters are whitespace).

更多细节请参见:help 'optionname' in vim(例如:help 'tabstop')

添加一行 将ts = 4 在 ~ /。每个用户的Vimrc文件 或 /etc/vimrc文件用于整个系统

要为当前用户永久地定义此属性,请创建(或编辑).vimrc文件:

$ vim ~/.vimrc

然后,将下面的配置粘贴到文件中。重新启动vim后,将应用选项卡设置。

set tabstop=4       " The width of a TAB is set to 4.
                    " Still it is a \t. It is just that
                    " Vim will interpret it to be having
                    " a width of 4.

set shiftwidth=4    " Indents will have a width of 4

set softtabstop=4   " Sets the number of columns for a TAB

set expandtab       " Expand TABs to spaces