我刚刚发现我可以在Vi中使用:<<和>>

轻松地缩进和缩进默认情况下,它会添加一个tab字符。现在我想知道,这是否可以通过我的.vimrc中的配置扩展到多个空格?那我该怎么办呢?

评论

1)制表符实际上是\ t字符值得多少列空白。 2)shiftwidth是“缩进级别”值得多少空白行。 >动作缩进1级。 3)softtabstop是选项卡按键或退格键按键需要多少空白行。 ...更多关于vim标签设置的文章,我写了medium.com/@arisweedler/tab-settings-in-vim-1ea0863c5990

#1 楼

几个设置可以控制行为:

第一个set expandtab允许用空格字符:h 'expandtab'替换制表符。

然后set shiftwidth=4使制表符成为4个空格:h 'shiftwidth'

:h 'tabstop'也可能引起您的兴趣,它定义了文件中制表符所占的空格数。

另外,请参见:h 'smartindent':h 'autoindent',它们非常有用。
/>

#2 楼

实际上,除了其他答案外,还可以使用autoindent(自动缩进换行符)和smartindent(对代码的合成句法做出反应)。然后我想要的shiftwidth2

我通过修改$HOME/.vimrc来满足我的需要,如下所示:

:set shiftwidth=2
:set autoindent
:set smartindent


评论


也:set tabstop = 2

–员工
18年2月2日在20:11

我认为添加更多关于不同行的功能的解释将非常有帮助

– Vic Seedoubleyew
20年4月9日在15:23

@ J.Chomelmeta.stackoverflow.com/questions/300837/…

– Vic Seedoubleyew
20年4月12日在12:05

@ J.Chomel实际上,这里没有其他答案可以解释autoindent或smartindent的作用。我认为即使是这种情况,您的答案也可以是注释(在这种情况下可以免于解释),也可以是完全无效的答案,在这种情况下,仅当其不言自明时才不应将其作为代码

– Vic Seedoubleyew
20年4月12日在12:06

@ J.Chomel我只是想让每个人都更容易学习。在编辑答案方面做得很好,我认为它现在会更有帮助

– Vic Seedoubleyew
20年4月15日在9:01

#3 楼

是的。

可以将shiftwidth设置为任意数量的空格。
vivim中都可以使用。

:set shiftwidth=2


现在,则每个>><<的宽度偏移为2。

#4 楼

touch ~/.vimrc
echo "set ts=4 sw=4" >> ~/.vimrc


简·乔默尔的答案的速记。 touch将在您的主目录中创建文件.vimrc(如果尚不存在)。
接下来,将带有首选项的tabstop和shiftwidth附加到.vimrc文件中。

评论


请注意,在vimrc中使用选项长名称(即tabstop和shiftwidth)被认为是一种最佳实践,它通常更具可读性,并且由于您不需要经常在配置文件中键入它们,因此使用起来没有太多好处简称。

–statox♦
19年8月22日在7:18