我如何使vi-Vim从来不使用制表符(将空格转换为制表符,坏!),使制表键== 4个空格,并自动缩进代码花括号块后像Emacs ?
此外,我如何保存这些设置,这样我就不必再次输入它们了?
我见过其他与此相关的问题,但它似乎总是有点偏离我想要的。
我如何使vi-Vim从来不使用制表符(将空格转换为制表符,坏!),使制表键== 4个空格,并自动缩进代码花括号块后像Emacs ?
此外,我如何保存这些设置,这样我就不必再次输入它们了?
我见过其他与此相关的问题,但它似乎总是有点偏离我想要的。
当前回答
毕竟,您可以编辑.vimrc,然后添加conf
set tabstop=4
或者执行命令
其他回答
正如在其他几个回答中指出的那样,现在首选的方法不是使用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:][1]文件: 设置smartindent 设置制表符= 4 设置shiftwidth = 4 设置expandtab 帮助文件需要一些时间来适应,但你读得越多,Vim就会变得越好: :帮助smartindent 更好的是,你可以将这些设置嵌入到你的源代码中以实现可移植性: :帮助自动对焦功能 查看当前设置: :设置所有 正如graywh在评论中指出的那样,smartindent已经被“工作更聪明”的cindent所取代,尽管它仍然主要用于类似c语言的语法: :帮助C-indenting
自动缩进基于当前语法模式。我知道如果您正在编辑Foo.java,那么输入{并按Enter将下面的行缩进。
对于选项卡,有两种设置。在Vim中,键入冒号,然后“set tabstop=4”,这将设置制表符显示为四个空格。再次点击冒号,输入“set expandtab”,这将为制表符插入空格。
您可以将这些设置放在主目录的.vimrc(或Windows上的_vimrc)中,因此您只需键入一次。
相关的,如果你打开一个同时使用制表符和空格的文件,假设你有
set expandtab ts=4 sw=4 ai
可以将整个文件中的所有制表符替换为空格
:%retab
编辑~/.vimrc
$ vim ~/.vimrc
增加如下行:
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
在许多Linux系统上,如Ubuntu,默认情况下.vimrc文件不存在,因此建议您先创建它。
不要使用主目录中存在的.viminfo文件。它有不同的用途。
步骤1:进入主目录
cd ~
步骤2:创建文件
vim . vimrc
步骤3:添加上述配置
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
第三步:保存文件,按Shift + ZZ键。