如果启用“ ai”,vim会用tabstop填充领先空间。 我可以用'et'填充空格。我不喜欢将C和空格和Tabstop混在一起。

我的vimrc: 通用标签

但是,在某些情况下,我确实需要在敲击键盘上的“ TAB”时输入tabstop,例如在makefile和其他文件中。 'autocmd FileType'命令不好:我无法在vimrc中添加所有文件类型。

我想要的很简单

  1. 自动缩进以填充领先区域 空间;
  2. 在键盘上按“ 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键时确实想要一个标签,则可以使用以下方法: 通用标签

但是我不明白这一点,使用此版本,您将永远无法从插入模式手动缩进。

一种方法是

  1. :set sw= 4(或您想要的任何内容)
  2. :set ts= 46(或一些大数字)

    然后自动缩进将不会插入制表符,除非您达到46个空格,在这种情况下,您可以输入更大的数字。

    唯一的麻烦是,如果其他人正在使用选项卡,则必须重置ts才能与正在编辑的文件一致。另一方面,这将使选项卡立即可见,这也是理想的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top