启用自动缩进后,如何防止vim用制表符替换空格?
一个例子:如果我在行的开头有两个制表符和7个空格tabstop=3
,然后按Enter键,那么下一行在行的开头有四个制表符和1个空格,但是我不希望这样...
启用自动缩进后,如何防止vim用制表符替换空格?
一个例子:如果我在行的开头有两个制表符和7个空格tabstop=3
,然后按Enter键,那么下一行在行的开头有四个制表符和1个空格,但是我不希望这样...
Answers:
根本不使用标签可能是个好主意。
:set expandtab
如果您要将文件中的所有标签替换为3个空格(看起来与相似tabstop=3
):
:%s/^I/ /
(其中,^I
是在TAB字符)
从VIM联机帮助中:
'tabstop' 'ts' number (default 8)
local to buffer
Number of spaces that a <Tab> in the file counts for. Also see
|:retab| command, and 'softtabstop' option.
Note: Setting 'tabstop' to any other value than 8 can make your file
appear wrong in many places (e.g., when printing it).
There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
(or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim
will use a mix of tabs and spaces, but typing <Tab> and <BS> will
behave like a tab appears every 4 (or 3) characters.
2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
'expandtab'. This way you will always insert spaces. The
formatting will never be messed up when 'tabstop' is changed.
3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
|modeline| to set these values when editing the file again. Only
works when using Vim to edit the file.
4. Always set 'tabstop' and 'shiftwidth' to the same value, and
'noexpandtab'. This should then work (for initial indents only)
for any tabstop setting that people use. It might be nice to have
tabs after the first non-blank inserted as spaces if you do this
though. Otherwise aligned comments will be wrong when 'tabstop' is
changed.
我想要的只是自动缩进的行具有与上一行完全相同的缩进字符。
:help copyindent
'copyindent''ci ' 布尔值 (缺省关闭); 本地缓冲 {Vi无此功能}
自动缩进新行时,复制现有行缩进的结构。通常,新缩进由一系列制表符和所需的空格组成(除非“ expandtab”启用了,在这种情况下仅使用空格)。启用此选项会使新行复制用于在现有行上缩进的任何字符。如果新的缩进大于现有的行,则剩余空间将以正常方式填充。
注意:设置为“兼容”时,将重置“ copyindent”。 另请参见'preserveindent'。
:help preserveindent
“preserveindent” “P1” 布尔 (缺省关闭); 本地缓冲 {Vi无此功能}
更改当前行的缩进时,请保留尽可能多的缩进结构。通常,缩进由一系列制表符替换,后接空格(除非需要'expandtab')启用了,在这种情况下,仅使用空格)。启用此选项意味着缩进将保留尽可能多的现有字符以进行缩进,并且仅根据需要添加其他制表符或空格。
注意:多次使用“ >>”时,结果缩进是制表符和空格的混合。您可能不喜欢这样。
注意:设置为“兼容”时,将重置“ preserveindent”。 另请参见'copyindent'。 使用:retab清理空白。