vim - vi选项卡key == 4空间和自动缩进大括号后

  显示原文与译文双语对照的内容

花括号后块像 Emacs does,我怎样 vi - Vim 绝不使用制表符( 将空格转换为制表符,错误),使处理程序可以关键 == 4空格,并自动缩进代码? !

另外,如何保存这些设置,这样我就再也不用再输入它们了?

我看到了与这个相关的其他问题,但它似乎有点偏离我想要的。

时间:

就像下面的几个答案所指出的,现在的首选方法不是使用 smartindent,而是使用以下( 在你的.vimrc 中):


filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab


。vimrc: file: 中


set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

帮助文件需要花一点时间来适应,但是你阅读的更多,更好的Vim得到:

 
:help smartindent

 

更好的是,你可以将这些设置嵌入到你的源代码中,以便进行可移植性:

 
:help auto-setting

 

要查看当前设置:

 
:set all

 

就像 graywh 在注释中指出的那样,smartindent已经被cindent替换,尽管它仍然主要用于具有C-like语法的语言:

 
:help C-indenting

 

如果你打开一个使用了制表符和空格的文件,假设你有


set expandtab ts=4 sw=4 ai

你可以用整个文件中的空格替换所有的制表符

 
:%retab

 

获取filetype-specific缩进的最佳方法是使用 filetype plugin indent on 你可以指定类似于 set sw=4 sts=4 et 例如在. vim/ftplugin/c.vim, 中,不需要对所有正在编辑的文件和其他non-C类型语法进行全局修改,就会得到正确的缩进。 ( 甚至 lisps ) 。

要在大多数文件中包含 4个-space选项卡,在makefile中真正的8 -wide选项卡字符,以及在包括 C/C++ 在内的各种文件中自动缩进,这将在 ~/.vimrc file: 中


" 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.

推荐的方法是使用基于文件类型的缩进,仅使用smartindent和cindent如果还不够。

将以下内容添加到你的。vimrc


set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on

希望它能作为一个不同的答案。

在许多Linux系统上,比如 Ubuntu,.vimrc 文件默认不存在,所以建议你首先创建它,然后添加用户Simucal上面的配置信息。

不使用主目录中的.viminfo 文件。 它用于不同用途。

步骤 1: 转到主目录

cd ~

步骤 2: 创建文件

vim. vimrc

步骤 3: 添加上面所述的配置


set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

保存文件时,通过按步骤 3: 移位 + 到商都信息港

auto-indent基于当前语法模式。 我知道,如果你正在编辑 Foo.java,,然后输入一个 { 并点击回车输入以下行。

至于标签,有两个设置。 在Vim中,输入一个冒号,然后输入"设置 tabstop=4",将标签设置为四个空格。 再次点击冒号并键入"设置 expandtab",这将为制表符插入空格。

你可以将这些设置放在主目录中的. vimrc ( 或者_vimrc上的) 中,所以只需键入一次。

...