我已经使用vim很长一段时间了,我意识到在可视模式下选择文本块就像SHIFT+V和逐行向上或向下移动箭头键一样简单,直到我到达我想选择的文本块的末尾。
我的问题是-在可视模式下是否有更快的方法来选择一个文本块,例如通过SHIFT+V,然后指定我希望停止选择的行号?(例如,通过:35,其中35是我想要选择的行号-这显然是行不通的,所以我的问题是,如果类似的事情可以做到…)
我已经使用vim很长一段时间了,我意识到在可视模式下选择文本块就像SHIFT+V和逐行向上或向下移动箭头键一样简单,直到我到达我想选择的文本块的末尾。
我的问题是-在可视模式下是否有更快的方法来选择一个文本块,例如通过SHIFT+V,然后指定我希望停止选择的行号?(例如,通过:35,其中35是我想要选择的行号-这显然是行不通的,所以我的问题是,如果类似的事情可以做到…)
当前回答
Vim是一种语言。要真正理解Vim,您必须了解这种语言。许多命令都是动词,vim也有宾语和介词。
V100G
V100gg
这意味着“选择当前行直到并包括第100行。”
文本对象是很大的力量所在。他们用介词引入更多宾语。
Vap
这意味着“围绕当前段落进行选择”,即选择当前段落及其后面的空行。
V2ap
这意味着“围绕当前段落和下一段进行选择”。
}V-2ap
这意味着“转到当前段落的末尾,然后在视觉上选择它和前一段。”
将Vim理解为一种语言将帮助您最大限度地利用它。
向下选择后,可以与其他命令组合:
Vapd
使用上面的命令,您可以围绕一个段落进行选择并删除它。把d改成y来复制,把c改成p来粘贴。
一旦您掌握了所有这些命令是如何一起工作的,那么您最终将不需要在视觉上选择任何东西。您可以使用dap命令删除段落,而不是直观地选择然后删除段落。
其他回答
选择行数:
Shift +v 9j -选择10行
除了其他人说过的内容,您还可以使用模式搜索来扩大选择范围。
例如,v/foo将从你的当前位置选择到“foo”的下一个实例。如果您实际上想展开到“foo”的下一个实例,例如在第35行,只需按n将选择展开到下一个实例,依此类推。
更新
我不经常这样做,但我知道有些人广泛地使用标记来进行视觉选择。例如,如果我在第5行,我想选择第35行,我可以按ma在第5行上放置标记a,然后按:35移动到第35行。Shift + v进入直线可视模式,最后' a选择回标记a。
}表示将光标移动到下一段。因此,使用v}选择整个段落。
Vim是一种语言。要真正理解Vim,您必须了解这种语言。许多命令都是动词,vim也有宾语和介词。
V100G
V100gg
这意味着“选择当前行直到并包括第100行。”
文本对象是很大的力量所在。他们用介词引入更多宾语。
Vap
这意味着“围绕当前段落进行选择”,即选择当前段落及其后面的空行。
V2ap
这意味着“围绕当前段落和下一段进行选择”。
}V-2ap
这意味着“转到当前段落的末尾,然后在视觉上选择它和前一段。”
将Vim理解为一种语言将帮助您最大限度地利用它。
向下选择后,可以与其他命令组合:
Vapd
使用上面的命令,您可以围绕一个段落进行选择并删除它。把d改成y来复制,把c改成p来粘贴。
一旦您掌握了所有这些命令是如何一起工作的,那么您最终将不需要在视觉上选择任何东西。您可以使用dap命令删除段落,而不是直观地选择然后删除段落。
文本对象:http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects