在 vim 中缩进 X 行

在 vim 中缩进 X 行

我最近一直在用 Java 编写代码来工作,我注意到我会编写一些代码,然后确定我需要将代码包装在 try/catch 块中。

我刚刚移动到行首并添加了一个制表符。

0 i <tab> <esc> k (repeat process until at beginning or end of block)

现在,前三四次缩进都没问题,但现在它变得乏味,而且我是一个懒惰的人。

有没有更简单的方法可以解决这个问题?

答案1

Shift另一个选项是按照 Ignacio 的建议使用+选择行V,然后按>(大于号)。这将根据您的缩进设置(shiftwidth、expandtab 等)进行缩进。

您还可以使用以下方法缩进多个级别数字>,例如2>缩进两级。

最后,如果 Vim 识别出文件类型(类型:set filetype?,它应该打印filetype=java),那么您可以选择上述任何代码并按=,它将使用该文件类型的规则修复缩进。

答案2

使用视觉 ( V) 或视觉线 ( ShiftV) 模式选择要缩进的行,按:,然后输入s/^/CtrlVTab/

答案3

另一种方式:
CTRL+ v(这将启动可视块模式)
xj或 x k(其中 x 代表向下或向上的行数)
>(又名shift+ .

这与上面的答案没有太大区别,但引入了块模式,这对于编辑多行非常有用。

答案4

Vim 比其他答案让你想象的要聪明得多:它能够自动重新缩进代码区域。通常,在尝试块,您只需键入=i{- 实际上这适用于任何花括号块。就这样...只要您的缩进选项(cindent, expandtab, sw)根据您的需要和喜好正确设置即可。

下一步是使用一个映射,它知道如何用你的尝试块(并且不会忘记在流程结束时重新缩进)。我有这样的事情对于 C++,将它适配到 Java 中并不会太复杂。(它只是需要另外两个库插件:lh-vim-liblh-地图工具

相关内容