它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?
当前回答
Vim UI的优点在于其一致性。编辑命令由命令和光标移动组成。光标移动始终相同:
H到屏幕顶部,L到底部,M到中间nG到第n行,G单独到文件底部,gg到顶部n移动到下一个搜索匹配,n移动到上一个}至段落末尾%到下一个匹配的括号,括号或标记类型进入下一行“x标记x,其中x是字母或其他字母”。还有很多,包括单词的w和w、行尖的$或0等,这些都不适用于这里,因为它们不是行移动。
因此,为了使用vim,您必须学会移动光标并记住一系列命令,例如,>to indent(和<to“outdent”)。
因此,要将光标位置的行缩进到屏幕顶部,请执行>H,>G以缩进到文件底部。
如果不是键入>H,而是键入dH,则删除相同的行块,cH替换它,等等。
某些光标移动更适合特定命令。特别是,%命令可以方便地缩进整个HTML或XML块。如果文件突出显示了语法(:syn on),则在标记的文本中设置光标(例如,在<div>的“i”中,输入>%将缩进到最后的</div>标记。
这就是Vim的工作原理:只需要记住光标移动和命令,以及如何混合它们。因此,我对这个问题的回答是:如果缩进被解释为移动行,=如果缩进被理解为在漂亮的打印中,那么“转到要缩进的行块的一端,然后键入>命令并移动到块的另一端”。
其他回答
对于C缩进缩进,也可以尝试此操作。Do:help=了解更多信息:
={
这将自动缩进当前代码块。
或者只是:
==
自动缩进当前行。
按“SHIFT+v”键进入VISUAL LINE模式。使用光标键或“j”和“k”键选择要缩进的文本。要向右缩进,请按“SHIFT+点”(>字符)。要向左缩进,请按“SHIFT+逗号”(<字符)。
资料来源:https://www.fir3net.com/UNIX/General/how-do-i-tab-multiple-lines-within-vi.html
除了提供的解决方案之外,我喜欢用>}一段一段地做事情
所有命令的主人是=G
这会缩进整个文件!
下面是一些用于在Vim或gVim中快速缩进行的简单而优雅的命令。
缩进当前行==
缩进当前行下的所有行
=G
在当前行下方缩进n行
n==
例如,在当前行下方缩进4行
4==
要缩进代码块,请转到大括号之一并使用命令
=%
这些是缩进多行的最简单但功能强大的命令。
我没有在评论中找到我使用的方法,所以我将分享它(我认为只有Vim):
按Esc键进入命令模式移动到要缩进的最后一行的第一个字符Ctrl+V开始块选择移动到要缩进的第一行的第一个字符Shift+I进入特殊插入模式键入需要缩进的空格/制表符(例如两个按Esc键,所有行中将显示空格
当您不想在vimrc中更改缩进/制表符设置或在编辑时记住它们来更改时,这非常有用。
为了取消缩进,我使用相同的Ctrl+V块选择来选择空间,然后用D删除它。
推荐文章
- 在Python中格式化多行字典的正确方法是什么?
- 是否有Eclipse行宽标记?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- git可以自动在空格和制表符之间切换吗?
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 如何在编辑器(Atom, notepad++, Kate, VIM, Sublime, Textpad等)和ide (NetBeans, IntelliJ IDEA, Eclipse, Visual Studio等)中选择列
- 使用Emacs递归地查找和替换尚未打开的文本文件
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?
- 如何复制一个选择到OS X剪贴板