如何从行首返回vim的“智能缩进”

4
当我按下键盘上的 o 或者 O 键时,由于开启了智能缩进(smartindent),它会缩进到所需的级别。然而,当我在一行的开头并想要跳转到该行的“智能缩进”位置时,该怎么办呢?是否有一种方法可以做到这一点呢?以下是我正在尝试做的事情的示例视频:https://gyazo.com/da4351def5a0af93df5f7fff0d462adb
我想到的最好的方法可能是使用键盘快捷键 dd ShiftO

1
b o怎么样?我猜它只在你视频中所示的行正下方有效,而不适用于任意行... - ggorlen
2
这个回答解决了你的问题吗?Vim:在空行进入插入模式时智能缩进? - ggorlen
@ggorlen谢谢你,是的,我认为ccddO / bo选项更好。 - David542
1
cc或S根据缩进返回已翻译的文本。 - Matt
@Matt 謝謝,這個更好。S 是最簡單/最好的選擇。奇怪的是,被接受的答案沒有提到這一點(不過另一個答案有)。 - David542
2个回答

5
最简单的方法是按下S,它的作用就像按下cc一样。

如果你的目标是给一个空行添加悬挂缩进以修复防止vim折叠包含没有缩进空格的缩进部分的bug,那么这种方法行不通。在一个空行上按下S键确实会导致vim在与上一行对齐的自动缩进级别上进入“插入”模式。但是按下Esc键离开缩进模式并留下带有悬挂缩进的空行时,缩进空格将再次消失。 - markling

3
在插入模式下,CTRL-F 是重新缩进当前行的默认键。有关更多信息,请参见 :h i_ctrl-f

1
哦,看起来今天我学到了一些新东西。原来只有在打开cindent时才会使用<kbr>CTRL-F</kbr>。我不确定你使用的是什么语言,但你可以通过输入:set cindent?来检查它是否已经打开。如果已经打开,只需在行首按下<kbr>CTRL-F</kbr>即可。如果没有打开,你可以通过输入:set cindent来打开cindent并根据需要进行自定义。另外,我看到一些帖子建议不要使用smartindent,因为它已经过时了。我建议要么只使用autoindent,要么根据你使用的语言找一个文件类型插件,或者使用cindent - doopNudles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接