当光标前面有非空白字符时,是否可以让VIM使用制表符空格?
例如:
(假设TAB为--->
,•
为空格。)
--->function(arg);••••••/* comment */
// ^ use spaces when pressing TAB after non-whitespace chars.
否则我在按Tab键时需要真正的标签。
当标签用于初始缩进时,这很有用,但是在使用空格后所有文本的对齐方式。
答案 0 :(得分:2)
如果没有脚本或插件,则无法自动执行此操作。
“Smart Tabs”插件专为此任务而设计。 http://www.vim.org/scripts/script.php?script_id=231
为了让问题少发生,我们会提供内置的preserveindent
和copyindent
选项,以防止在设置expandtab
时丢失现有的标签缩进。
答案 1 :(得分:1)
使用:set expandtab
。
这将在插入期间将所有制表符扩展到空格,甚至是行开头的那些(可能是最好的)
使用CTRL-V<Tab>
插入标签。
来自vim
帮助(:help expandtab
)
'expandtab' 'et' boolean (default off)
local to buffer
{not in Vi}
In Insert mode: Use the appropriate number of spaces to insert a
<Tab>. Spaces are used in indents with the '>' and '<' commands and
when 'autoindent' is on. To insert a real tab when 'expandtab' is
on, use CTRL-V<Tab>. See also :retab and ins-expandtab.
NOTE: This option is reset when 'compatible' is set.
使用:set shiftwidth=4
(或:set shiftwidth=8
)来控制每个缩进添加的空格数。
'shiftwidth' 'sw' number (default 8)
local to buffer
Number of spaces to use for each step of (auto)indent. Used for
'cindent', >>, <<, etc.
其他感兴趣的设置包括softtabstop
,tabstop
和autoindent
。