我如何制作vi - Vim从不使用制表符(将空格转换为制表符,不好!),制作Tab键== 4个空格,并在像Emacs这样的大括号块之后自动缩进代码?
另外,如何保存这些设置,以便我再也不必输入它们?
我已经看到了与此相关的其他问题,但它似乎总是与我想要的有点不同.
正如下面的几个答案中所指出的,现在首选的方法不是使用smartindent,而是使用以下(在你的.vimrc中):
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:文件中:
set smartindent set tabstop=4 set shiftwidth=4 set expandtab
帮助文件需要一些时间来习惯,但是你读的越多,Vim就越好:
:help smartindent
更好的是,您可以在源代码中嵌入这些设置以实现可移植性:
:help auto-setting
要查看您当前的设置:
:set all
作为graywh在评论中指出,smartindent已取代cindent其中"作品更巧妙",但主要还是与类似C的语法的语言:
:help C-indenting
相关的,如果你打开一个同时使用制表符和空格的文件,假设你已经有了
set expandtab ts=4 sw=4 ai
您可以使用整个文件中的空格替换所有选项卡
:%retab
获取特定于文件类型的缩进的最佳方法是filetype plugin indent on
在vimrc中使用.然后你可以指定像set sw=4 sts=4 et
.vim/ftplugin/c.vim 这样的东西,例如,不必为正在编辑的所有文件创建全局文件,其他非C类型语法也将正确缩进(甚至是lisps).
要在大多数文件中使用4个空格的选项卡,在Makefile中使用真正的8宽Tab键,并在包括C/C++在内的各种文件中自动缩进,请将其放在您的~/.vimrc
文件中:
" 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 shift 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,.vimrc
默认情况下该文件不存在,因此建议您先创建它.
不要使用.viminfo
主目录中存在的文件.它用于不同的目的.
第1步:转到您的主目录
cd ~
第2步:创建文件
vim .vimrc
第3步:添加上述配置
filetype plugin indent on set tabstop=4 set shiftwidth=4 set expandtab
第3步:按Shift+ 保存文件ZZ.
建议的方法是使用基于文件类型的缩进,并且只使用smartindent和cindent,如果这还不够.
将以下内容添加到.vimrc中
set expandtab set shiftwidth=2 set softtabstop=2 filetype plugin indent on
希望它有助于作为一个不同的答案.
编辑你的〜/ .vimrc
$ vim ~/.vimrc
添加以下行:
set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab
来自VIM维基:
:set tabstop=4 :set shiftwidth=4 :set expandtab
自动缩进基于当前语法模式.我知道如果你正在编辑Foo.java,那么输入一个{
并点击Enter下一行的缩进.
至于标签,有两种设置.在Vim中,键入冒号然后"设置tabstop = 4",这将设置选项卡显示为四个空格.再次点击冒号并输入"set expandtab",它将为制表符插入空格.
您可以将这些设置放在主目录中的.vimrc(或Windows上的_vimrc)中,这样您只需键入一次即可.