vim-固定宽度标签

vim-固定宽度标签,vim,Vim,在这种情况下,第一个制表符的宽度为tabstop字符,而第二个制表符的宽度为tabstop-1字符。如何使所有制表符始终为制表符宽?制表符的定义特征是它们“捕捉”到特定位置(在Vim中,是'tabstop'设置的倍数)。您想要的是不同的东西,并且不能用\t==ASCII 0x09字符(在我所知道的任何编辑器中)实现 您可以定义一个映射,当您按Tab键时,该映射将插入'tabstop'大量的空格: :inoremap repeat(“”,&tabstop) (当然,您也可以为此选择另一个键,或者

在这种情况下,第一个制表符的宽度为tabstop字符,而第二个制表符的宽度为tabstop-1字符。如何使所有制表符始终为制表符宽?

制表符的定义特征是它们“捕捉”到特定位置(在Vim中,是
'tabstop'
设置的倍数)。您想要的是不同的东西,并且不能用
\t
=
=ASCII 0x09字符(在我所知道的任何编辑器中)实现

您可以定义一个映射,当您按Tab键时,该映射将插入
'tabstop'
大量的空格:

:inoremap repeat(“”,&tabstop)

(当然,您也可以为此选择另一个键,或者使用
将此缓冲区设为本地)

选项卡Stop spaces不是一个选项卡。@HristoVenev:我的回答解释了为什么物理选项卡的行为不符合您的要求;您最好将其扩展到空间。你的评论是否意味着你对此不满意?!如何使制表符看起来像一个固定数量的空格,但实际上是制表符?(使用
:设置tabstop=1
,每个制表符的宽度都是1,但这对任何其他值都不起作用。)你很顽强!我只能想到U+3000表意空间,它是双倍宽度。使用
u3000
IS
输入。
<Tab>
<Space><Tab>
:inoremap <expr> <Tab> repeat(' ', &tabstop)