Vim 将选项卡重新定义为4个空格
我当前的设置假定为8个空格;我怎样才能重新定义它呢?这取决于你的意思。您希望文件中的实际制表符显示为4个空格宽,还是“制表符”实际上是指通过按制表键生成的缩进,这将导致文件中的每个“制表符”都包含(最多)4个空格字符 根据您的回答,请选择以下选项之一: 设置应适用于您:Vim 将选项卡重新定义为4个空格,vim,Vim,我当前的设置假定为8个空格;我怎样才能重新定义它呢?这取决于你的意思。您希望文件中的实际制表符显示为4个空格宽,还是“制表符”实际上是指通过按制表键生成的缩进,这将导致文件中的每个“制表符”都包含(最多)4个空格字符 根据您的回答,请选择以下选项之一: 设置应适用于您: 对于显示为4空格宽的制表符: set tabstop=4 如果您在源代码中使用实际制表符,您可能还需要这些设置(这些实际上是默认设置,但您可能需要防御性地进行设置): 最后,如果希望缩进对应于单个选项卡,还应使用: set
- 对于显示为4空格宽的制表符:
如果您在源代码中使用实际制表符,您可能还需要这些设置(这些实际上是默认设置,但您可能需要防御性地进行设置): 最后,如果希望缩进对应于单个选项卡,还应使用:set tabstop=4
set shiftwidth=4
- 对于由4个空格字符组成但使用tab键输入的缩进:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
tabstop
以“空格”度量的硬制表符的宽度——实际上是实际制表符字符的(最大)宽度
shiftwidth
“缩进”的大小。它也以空格表示,因此如果代码基缩进了制表符,那么您希望
shiftwidth
等于制表符的数量乘以tabstop
。这也被=
、
和等东西所使用,要为当前用户永久性地定义它,请创建(或编辑).vimrc
文件:
$ vim ~/.vimrc
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
然后,将下面的配置粘贴到文件中。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
请参见vim modeline的缩写:
vim :set ts=4 sw=4 sts=4 et :
我将其复制并粘贴到我的.vimrc文件中:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
前两个设置意味着当我按Tab键时,我得到4个空格。
第三个设置意味着当我执行V>
(即视觉和缩进)时,我也会得到4个空格
虽然没有公认的答案那么全面,但它可能会帮助那些只想复制和粘贴某些内容的人。将您所需的设置放入~/.vimrc文件中——有关一些指导原则和最佳做法,请参阅下文
Vim中有四种主要的选项卡使用方式:
始终将“tabstop”设置为8,将“softtabstop”和“shiftwidth”设置为4(或3或任何您喜欢的值),并使用“noexpandtab”。然后Vim将混合使用制表符和空格,但键入和将表现为每4(或3)个字符出现一个制表符
注意:将“tabstop”设置为8以外的任何其他值都会使文件在许多地方出现错误(例如,打印文件时)
将“tabstop”和“shiftwidth”设置为您喜欢的值,并使用“expandtab”。这样,您将始终插入空格。更改“tabstop”时,格式将永远不会混乱
将“tabstop”和“shiftwidth”设置为您喜欢的值,并在再次编辑文件时使用| modeline |设置这些值。仅在使用Vim编辑文件时有效
始终将“tabstop”和“shiftwidth”设置为相同的值,并将“noexpandtab”设置为相同的值。然后,对于人们使用的任何tabstop设置,这都应该有效(仅适用于初始缩进)。如果您这样做的话,在第一个非空的标签后面插入空格可能会更好。更改“tabstop”时,否则对齐的注释将是错误的
资料来源:
:帮助选项卡停止
添加行
设置ts=4
在
每个用户的~/.vimrc
文件
或
/etc/vimrc
文件用于系统范围还有一件事,请使用
:重新标记
将现有的选项卡转换为空间
很少有设置定义是使用空格还是制表符
下面是一些可以在~/.vimrc
文件中定义的方便函数:
$ vim ~/.vimrc
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
要按文件扩展名使用它,可以使用以下语法(添加到.vimrc
):
另见:
以下是Wikia的另一个片段,可用于:
“虚拟选项卡停止使用空格
设置shiftwidth=4
设置softtabstop=4
设置扩展选项卡
“允许在本地模式和默认模式之间切换
函数TabToggle()
if&expandtab
设置shiftwidth=8
设置softtabstop=0
设置noexpandtab
其他的
设置shiftwidth=4
设置softtabstop=4
设置扩展选项卡
恩迪夫
端功能
nmap mz:执行TabToggle()'z
它允许每个选项卡使用4个空格,并映射到F9以切换设置。My basic~/.vimrc带注释:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
所有用户的永久性(当您单独在服务器上时):
在配置文件中追加该设置。
通常在新服务器上apt获得purge nano mc
和所有其他功能以节省您的时间。否则,您将在git
,crontab
等中重新定义编辑器。确保vartabstop
未设置
set vartabstop=
将tabstop
设置为4
set tabstop=4
确保makefile始终使用硬制表符也很重要,否则构建将失败!我已经展示了如何在@Undefined时,这是系统vim设置<代码>~/.vimrc
是用户的vim设置。大多数人将系统设置放在一边,只编辑用户设置。请注意,~/.vimrc
在大多数系统上创建之前将不存在。Vim用户请注意设置softtabstop=4
功能!我厌倦了用less
或除vim
之外的任何其他编辑器来阅读代码,结果却看到奇怪的缩进,因为您将tab重新定义为任意数量的空格(即使系统的其他部分不这么认为)!:-)有人能帮我理解为什么这个答案说对包含4个空格的缩进使用tabstop=8
?我找不到它
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
# echo "set tabstop=4" >> /etc/vim/vimrc
set vartabstop=
set tabstop=4