Tab key == 4 spaces and auto-indent after curly braces in Vim
如何使ViVim从不使用制表符(将空格转换为制表符,坏!),使tab键==4个空格,并像Emacs那样在大括号块后自动缩进代码?
另外,如何保存这些设置,这样就不必再输入它们了?
我见过其他与此相关的问题,但似乎总是有点偏离我想要的。
正如下面几个答案中指出的,现在首选的方法不是使用smartindent,而是使用以下方法(在.vimrc中):
1 2 3 4 5 6 7 | filetype plugin indent on " show existing tab with 4 spaces width set tabstop=4 " when indenting with '>', use 4 spaces width set shiftwidth=4 " On pressing tab, insert 4 spaces set expandtab |
<罢工>在.vimrc:文件中:
1 2 3 4 | set smartindent set tabstop=4 set shiftwidth=4 set expandtab |
帮助文件需要一点时间来适应,但是你读得越多,VIM就越能:
1 | :help smartindent |
更好的是,您可以在源代码中嵌入这些设置以实现可移植性:
1 | :help auto-setting |
要查看当前设置:
1 | :set all |
正如GrayWh在评论中指出的那样,smartindent已经被cident所取代,cident"更聪明地工作",尽管它仍然主要用于具有C类语法的语言:
1 | :help C-indenting |
< /打击>
相关,如果打开同时使用制表符和空格的文件,假设
1 | set expandtab ts=4 sw=4 ai |
您可以用整个文件中的空格替换所有选项卡
1 | :%retab |
获得文件类型特定缩进的最佳方法是在VIMRC中使用
在大多数文件中有4个空间选项卡,在AcMcfile中包含8个真正的Tabar char,在包括C/C++的各种文件中自动缩进,将其放入EDOCX1×3文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | " Only do this part when compiled with support for autocommands. if has("autocmd") " Use filetype detection and file-based automatic indenting. filetype plugin indent on " Use actual tab chars in Makefiles. autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab endif " For everything else, use a tab width of 4 space chars. 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. |
在许多Linux系统(如Ubuntu)上,默认情况下不存在
不要使用主目录中的
步骤1:转到主目录
步骤2:创建文件
步骤3:添加上述配置
1 2 3 4 | filetype plugin indent on set tabstop=4 set shiftwidth=4 set expandtab |
第三步:保存文件,按SHIFT+ZZ。
推荐的方法是使用基于文件类型的缩进,如果还不够的话,只使用smartindent和cindent。
将以下内容添加到.vimrc中
1 2 3 4 | set expandtab set shiftwidth=2 set softtabstop=2 filetype plugin indent on |
希望它能成为一个不同的答案。
编辑您的~/.vimrc
1 | $ vim ~/.vimrc |
添加以下行:
1 2 3 4 | set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab |
从vim wiki:
1 2 3 | :set tabstop=4 :set shiftwidth=4 :set expandtab |
自动缩进基于当前语法模式。我知道,如果您正在编辑foo.java,那么输入
对于选项卡,有两种设置。在vim中,输入冒号,然后输入"set tabstop=4",将选项卡设置为四个空格。再次单击冒号并键入"set expandtab",这将为选项卡插入空格。
您可以将这些设置放在主目录中的.vimrc(或Windows上的vimrc)中,因此只需键入一次即可。