当我在这里有vimrc时:
set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
而且我已经安装了supertab插件。每当我处于插入模式时,我都按Tab键,它会显示自动完成功能,但有时我想在字符串文字中插入一个真实的Tab字符,例如 所以我的意思是,每当我在双引号字符串文字中按tab时,它都应该输入一个真实的tab字符。
Answers:
在插入模式或命令模式下(:
编辑器底部的提示),键入CTRL+V然后TAB。
使用CTRL+V表示Vim应该从字面上接受下一个字符。即使在插入模式下。
更新:
如Herbert Sitz所述,如果gVim处于Windows模式(默认),则必须使用CRTL+Q代替CTRL+ V。
@Samnang:我的设置与您相似;不幸的是,对我来说,杰森的答案没有用。
这是一种解决方法:
选择文本(可视模式)并进行搜索/替换,
:'s /`/ \ t / g
更新的答案受@ Cyryl1972的评论启发。
在所有行的开头插入制表符(另请注意:对于以下任何代码,无需选择行,因为该行包含在表达式的行匹配部分中):
:1,$s/^/\t\1/
在所有行的前10个字符后插入Inert标签:
:1,$s/^\(.\{10}\)/\1\t/
说明-第一部分:
:1,$ Match from line 1 to end of file
^(.{10} Collect (preserve) all text from beginning of line to position 10
(you need to escape the parentheses, \( and \), as well the FIRST
(left) curly brace, only: \{ -- as it, { , appears to have special
meaning in regex when used for this purpose
说明-第二部分:
/1 Add back the preserved text
\t Insert a tab
...,并且该行的其余部分也会自动恢复。
当前行,仅:
:s/^/\t\1/
示例:在第2-4行的位置10(0索引)处插入制表符:
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
1234567890abcdefghij
:2,4s/^\(.\{10}\)/\1\t/
1234567890abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890 abcdefghij
1234567890abcdefghij
参考(StackOverflow):
参考文献(其他):
CTRL
+Q
thenTAB
。