vim-设置自动缩进以用空格或制表符填充前导空间
-
28-10-2019 - |
题
如果启用“ ai”,vim会用tabstop填充领先空间。 我可以用'et'填充空格。我不喜欢将C和空格和Tabstop混在一起。
我的vimrc: 通用标签
但是,在某些情况下,我确实需要在敲击键盘上的“ TAB”时输入tabstop,例如在makefile和其他文件中。 'autocmd FileType'命令不好:我无法在vimrc中添加所有文件类型。
我想要的很简单:
- 自动缩进以填充领先区域 空间;
- 在键盘上按“ TAB”时,制表键
输入,而不是空格(因此不要输入“ et”)
如何做到?
解决方案
如果我正确阅读,它的作用与@Lynch答案相同。
您还可以使用<C-v><Tab>
:这将在不调用任何映射的情况下插入<Tab>
,除非您出于某种原因重新映射了<C-v>
或<C-v><Tab>
,否则将忽略expandtab。
如果您只想插入制表符, 通用标签
它将忽略expandtab设置。
其他提示
我使用一个函数来做到这一点。我已经对其进行了测试,但是在某些特定情况下,您可能必须修复一些错误。尝试将其添加到您的vimrc中: 通用标签
基本上,它确实将可视模式下的键重新映射到功能Inserttab()。另外请注意,如果将ts更改为4以外的值,由于该值是硬编码的,因此仍将输出4个空格而不是2个空格。
我也不是很熟悉vim脚本,但是我认为使用的所有变量都是全局变量,这是一件坏事。
我忘了提到要“看到”空白,您可以使用set list
。您可以使用set nolist
禁用此功能。同样在普通模式下,您可以使用ga
查看有关光标所处字符的信息。
修改 我意识到您可能想在该行的开头插入制表符。我的脚本在开头处插入空格,并在其他任何位置插入标签。
如果每次按Tab键时确实想要一个标签,则可以使用以下方法: 通用标签
但是我不明白这一点,使用此版本,您将永远无法从插入模式手动缩进。
一种方法是
- :set sw= 4(或您想要的任何内容)
- :set ts= 46(或一些大数字)
然后自动缩进将不会插入制表符,除非您达到46个空格,在这种情况下,您可以输入更大的数字。
唯一的麻烦是,如果其他人正在使用选项卡,则必须重置ts才能与正在编辑的文件一致。另一方面,这将使选项卡立即可见,这也是理想的选择。