如何在Vim中插入一个真实的的制表符?

46scxncf  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(162)

当我有我的vimrc在这里:

set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab

我安装了超级制表符插件。每当我在插入模式下按下制表符,它会显示自动完成,但有时我想在字符串中插入一个真实的的制表符,如。所以我的意思是,每当我在双引号字符串中按下制表符时,它应该输入一个真正的制表符。

eaf3rand

eaf3rand1#

在插入模式或命令模式下(编辑器底部的:提示符),键入Ctrl + V,然后键入Tab。
使用CTRL + V向Vim发出信号,让它按照字面意思来处理下一个字符,即使在插入模式下也是如此。
最新消息:
正如赫伯特Sitz所指出的,如果gVim处于Windows模式(默认),则必须使用CRTL + Q来代替CTRL + V。

wmtdaxz3

wmtdaxz32#

@Samnang:我和你的设置差不多;不幸是,杰森的回答对我来说不起作用。
这是一个解决方法:

  • 替换某些字符(例如反勾号:')或字符(例如唯一的字母数字字符串:zzz)选项卡的位置
  • 选择文本(可视模式)并执行搜索/替换,
:'s/`/\t/g

更新的答案,灵感来自@Cyryl1972的评论。
要在所有行的开头插入制表符(另请注意:对于以下任何代码,都不需要选择行,因为它包含在表达式的行匹配部分中):

:1,$s/^/\t\1/

在所有行的前10个字符后插入制表符:

: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

引用(堆栈溢出):

参考文献(其他):

相关问题