如何在Vim中使用制表符(向后、向前)来缩进一段代码块?

26

如何在 Vim 中将一块代码向右或向左缩进?


https://dev59.com/UnRC5IYBdhLWcg3wAcM3 - Sam Saffron
3
你的意思是什么,"up and down" 是什么意思? - Sam Saffron
假设我有一段代码,我想将它向下移动几行。 - vehomzzz
将块下面的行移到上面插入? - Sam Saffron
是的,不是一行,而是一块代码或文本。在可视化模式下,您可以通过Ctrl-v选择一个块...然后将该块向上或向下移动以将其制表到右侧或制表到左侧 - - vehomzzz
8个回答

69

简短回答:

  • V 使用 选择行,然后按 >

    如果需要缩进3个制表符:

  • V3,然后按 >


我最喜欢的方法是使用 [V]isual line 模式选择代码块,然后按 > 或者如果你需要缩进多次,可以按 2> 或 3> 来重复操作。

如果你没有缩进足够(或者缩进过多),可以键入“gv”重新选择你的选择并重试。

要移动代码块,请使用 [V]isual line 模式选择它,然后按 “d”。这是“剪切”操作。

然后将光标移动到您想要放置的位置,按“p”。这是“粘贴”操作。

您也可以尝试通过使用 [V]isual line 模式选择代码块,并按“=”来自动进行缩进。


9
如果代码缩进不够,你可以使用点号 . 命令来重复最后一次的缩进... - Christian C. Salvadó
1
这节省了我的时间,谢谢。 - jokermt235
听起来像是一件非常麻烦的事情,而其他编辑器只需要让你选中一堆行并按下Tab键就可以了... - airtonix

6

4
要缩进包含光标的内部块,请执行:>iB要缩进包含封闭括号的内部块,请执行:>aB 您可以将“>”替换为“<”以向左缩进。
要自动缩进,请按==(或如果已突出显示文本,则为=)。

4

我使用一个方便的重映射工具来进行可视模式缩进文本,可以多次缩进而不影响你已选中的文本。类似于一些集成开发环境允许你选择并按tab键(或shift-tab键)进行缩进。

将以下内容添加到你的.vimrc文件中:

" Pressing < or > will let you indent/unident selected lines
vnoremap < <gv
vnoremap > >gv

你也可以使用 == 来让 Vim 尝试自动确定正确的缩进。只需将光标放在任何一行上,然后按下 == 即可。或者,您还可以选择整个文件并按下 == 来修复所有缩进(对 wysiwyg 编辑器生成的 HTML 代码非常有效)。


1
在命令模式下:

>

像其他命令一样,您可以在要应用它的行号前面添加:

2+2+>

将“制表符”22行。

如果要“重新制表”,请按


1

(来自learnbyexample.github.io)

"v" - 可视化选择当前字符,使用任何运动命令扩展选择


即先按 "v" 进入可视化模式,然后使用箭头键向上或向下选择需要的行数,最后按下 'shift + >' 来向右缩进整个代码块。


0

将光标放置在块的开头/结尾

按住Shift+Alt(macOS上为Shift+Option)进入可视模式

使用上/下箭头选择块

>(添加制表符)或<(删除制表符)


0

只需进入可视化模式,输入“v”,然后使用<或>字符即可 :)


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