这应该很简单,甚至可能在帮助文档中提到,但我不知道如何在vi中快速缩进多行。请问应该怎么做?
我喜欢为缩进做标记:
附注:您可以使用:'a,'z技术为任何操作(d、y、s///等)标记范围,在这些操作中您可能会使用行、数字或%。
:help left
在 ex 模式
中,你可以使用 :left
或者 :le
命令来使一段代码左对齐。
具体来说,:left
命令会将指定范围内的行进行左对齐,并且设置这些行的缩进量为 [indent](默认值为0)。
:%le3
、:%le 3
、:%left3
或者 :%left 3
命令可以将整个文件的内容左对齐,并且通过添加三个空格进行填充。
:5,7 le 3
命令则会将第5到第7行的内容进行左对齐,并且通过添加三个空格进行填充。
:le
命令如果不带参数或者带参数 :le 0
,则会将代码左对齐并且没有填充。
以上命令均适用于 Vim 和 gVim。
我不知道为什么很难找到像这样简单的答案...
我自己也曾经费了很多力气才知道这个。其实很简单:
.vimrc
file under the home directory.Add this line
set cindent
in your file where you want to indent properly.
In normal/command mode type
10== (This will indent 10 lines from the current cursor location)
gg=G (Complete file will be properly indented)
5==
将从当前光标位置缩进五行。
因此,您可以在 ==
前键入任何数字。它将缩进相应数量的行。这是在命令模式下进行的。
gg=G
将从顶部到底部缩进整个文件。
我经常使用Python,发现自己需要经常移动多个缩进块。你可以使用任何块选择方法,并在 >
前输入您想要跳转的缩进数目,来完成这个操作。
例如,V5j3>
会将五行向右缩进三次——如果您使用四个空格作为缩进,则相当于12个空格。
我使用块模式的可视选择:
I
(Shift+I)进入插入模式。这不是一个单一的任务。它可以:
c
而不是I
)。vim-prettier
而不是默认的缩进引擎),那么这就是正确的方法。否则,使用>
将会彻底破坏Prettier所做的格式化。 - oligofren对于一个代码块,使用{}: = + %
对于选定的行: Shift + v 使用上下箭头键进行选择,然后按=。
对于整个文件: gg + = + G
注意:'gg' 表示跳转到第一行,'=' 是缩进命令,'G' 将光标移动到文件末尾。
对于喜欢现代编辑器使用 Tab 键缩进选定行的人,以及使用 Shift+Tab 键将其减少缩进的人:
vnoremap <TAB> >gv
vnoremap <S-TAB> <gv
使用方法:
按下V
进入行选择模式,选择需要操作的行,然后按下Tab(可能需要同时按下shift),缩进就会应用到你想要的位置,选择的内容也会保留...
Shift
+.
= :
,这具有其他功能。因此,其他解决方案无法使用。 - Frederic Leitenbergervimrc
文件中。要获取更多信息,请执行此命令::h vimrc
。 - Mamrezo选项1:使用可视块模式在vi中将一段代码缩进三个空格:
选择要缩进的代码块。在正常模式下使用 Ctrl+V 并向下箭头选择文本来完成此操作。当其被选中时,输入 :
以给所选文本块发送命令。
在命令行中会出现以下内容::'<,'>
要将缩进设置为三个空格,请键入 le 3
并按下回车键。这是出现的内容::'<,'>le 3
所选的文本立即缩进三个空格。
选项2:使用可视行模式在vi中将一段代码缩进三个空格:
Be in normal mode and press the following keys:
Vjjjj:le 3
Interpretation of what you did:
V
means start selecting text.
jjjj
arrows down four lines, highlighting four lines.
:
tells vi you will enter an instruction for the highlighted text.
le 3
means indent highlighted text three lines.
The selected code is immediately increased or decreased to three spaces indentation.
Be in normal mode press the following keys:
Ctrl+V
jjjj
(press the spacebar five times)
Esc Shift+i
All the highlighted text is indented an additional five spaces.
:'<,'>le4
插入空格。谢谢! - Subfuzion