13

在 vi 中增加或减少大块代码的缩进最简单的方法是什么?

4

11 回答 11

14

在 vim 中(不确定这是否也适用于你),你>>习惯缩进一行。与 vim 中的几乎所有命令一样,在要执行的命令多次之前输入一个数字。因此,要缩进接下来的 50 行,请键入50>>

于 2008-10-31T01:44:33.560 回答
9

自动识别:

对于 { } 块,我使用命令:=iB(将光标置于块内以识别)

为了重新识别一个完整的文件,我使用gg=G

现在要增加或减少块上的标识,您必须选择它(我使用viB命令),然后执行>><<,如果您想重复标识,只需使用 dot

还记得设置您的身份设置

:set shiftwidth=NUMOFSPACES

:set softtabstop=NUMOFSPACES

于 2008-10-31T01:50:16.543 回答
3

标记它,然后使用 > 和 <。

于 2008-10-31T01:39:40.107 回答
3

如果您的代码在花括号之间,则将光标放在其中一个花括号上并使用>%or <%

于 2008-10-31T01:41:18.417 回答
2

默认情况下,在插入模式下,您可以使用Ctrl-TCtrl-D取消/意图当前行。

于 2008-10-31T02:28:39.337 回答
2

另一个有用的命令是,一旦你使用 '<' 或 '>' 缩进,使用 '.' 重复该命令,直到它按您想要的方式排列。

于 2008-10-31T04:03:29.537 回答
2

此外,您可以查看http://vim.wikia.com/以获取有关此类事情的提示。

于 2008-10-31T04:11:47.960 回答
1

点击 v 进入可视模式并向下箭头,因此选择整个块然后 12>>

于 2008-10-31T02:56:26.410 回答
0

将两个尖括号(“<<”或“>>”)用于向左或向右的一行 shiftwidth 字符。您可以使用常用的行范围指示符 - ":m,n"、大括号/括号/括号匹配等来做到这一点。

或“<”,然后是运动指示器,然后是另一个“<”。

或 "<12<" 将接下来的 12 行左移。

于 2008-10-31T01:44:11.143 回答
0

:50,100>

将第 50 到 100 行缩进一次

:50,100>>

将第 50 到 100 行缩进两次

也适用于 < 和 << 等。

于 2009-02-14T23:09:33.087 回答
0

首先使用 Control-g 命令找到开始行和结束行的行号。让这些是mn。假设我们希望将行号mn缩进5 个空格。然后,以下命令完成这项工作,

:m,ns/^/     /g 

要减少缩进,首先将所有制表符转换为(例如 4 个)空格。

:m,ns/\t/    /g

然后假设我们希望从编号为mn的行中删除 3 个空格。

:m,ns/^   //g
于 2012-07-11T18:06:52.807 回答