
In Vim, what is the best way to select, delete, or comment out large portions of multi-screen text?由于可以使用鼠标,因此在Eclipse之类的IDE中选择在多个屏幕上扩展的大量文本是相当容易的,因为这是最好的方法,例如 选择和删除多屏文字块或写例如 三种大方法导出到另一个文件,然后通过腻子/ ssh在无法使用鼠标的情况下在Vim中删除它们以进行测试。 我可以轻松地将其拖到行尾或将其拖到代码块末尾,但是如果文本在许多屏幕上延伸,或者其中有很多空白行,我会感觉像 双手绑在Vim中。 有什么办法吗? 还有一个相关的问题:是否有办法以某种方式选择40行,然后将它们全部注释掉(使用"#"或" //"),就像大多数IDE一样?
好吧,首先,您可以将
默认情况下,您还可以使用可视选择-v。选择后,您可以
至于注释掉该块,我通常用
用 使用标记。 转到要删除的文本块的顶部,然后输入
在那条线上的任何地方。不需要冒号。 然后转到块的末尾并输入以下内容:
输入
移至文本块底部后输入的命令说:"从包含标记 这种事情也可以用于其他事情。
注: 要插入注释,请使用CTRL-v选择行的开头字符(逐行可视,而不是'v'字符明智或'V'逐行可视)。然后使用" I"进入插入模式,在第一行输入您的注释字符(例如"#"),最后使用" Esc"转至正常模式。瞧! 要删除注释,请使用逐块可视方式选择注释,然后使用" x"将其删除。 使用可视块命令v(或V表示整行,C-V表示矩形块)。在可视块模式下,您可以使用任何运动命令,包括搜索;我经常使用}跳到下一个空白行。标记该块后,您可以将它:w到文件,删除,拉动或其他任何方式。如果执行命令并且可视块消失了,请使用gv重新选择同一块。有关更多信息,请参见:help visual-change。 我认为vim随附了特定于语言的脚本,这些脚本以适合您选择的语言的方式进行注释,例如注释代码块。 可视模式是解决您的主要问题的方法。至于注释部分代码,vim.org上有许多用于此目的的插件,目前我正在使用tComment.vim。 还有一种简洁的方法可以注释掉没有插件的块。假设您使用python工作,并且#是注释字符。对希望使用井号的列进行可视的块选择,然后键入I#ESCAPE。要进入可视块模式,请在Windows上按C-q或在Linux上按C-v。
按 我的区块注释技术: Ctrl + V启动逐块可视模式。 进行选择。 在选择仍处于活动状态的情况下,请输入Shift + I。这使您进入列插入模式。 输入您要注释的字符"#"或" //"或其他内容。 退出。 或者您可能想尝试一下此脚本... http://www.vim.org/scripts/script.php?script_id=23 如果要对一定范围的行执行操作,并且知道行号,则可以将该范围放在命令行上。例如,要删除第20至200行,您可以执行以下操作:
要将20到200行移动到300行所在的位置,可以使用:
等等。 对于注释行,我建议使用以下插件之一: EnhancedCommentify 书呆子评论员 这些天,我发现自己更多地使用NERD,但是多年来我一直使用EnhancedCommentify。 使用Shift + V进入可视模式,然后可以选择行并删除/更改它们。
您应该注意普通模式命令[count] CTRL-D。 所以尝试输入
CTRL-U以相同的方式工作,但向上滚动。 我注释掉40行的通常方法是将光标放在第一行并输入命令: :。,+ 40s / ^ /#/
(对于这里,通过40行,用哈希,空格代替行首)
目前第一个答案不太正确? (" <,'>-会自动出现) 标记将是您要开始的最简单的mb,而我要结束的最简单的mb。完成此操作后,您几乎可以做任何想做的事情
从标记b删除到标记e 注释掉您可以在可视模式下执行的40行
将从您开始序列的位置注释掉40行 v进入可视块模式,在该模式下,您可以像大多数普通编辑器中的shift一样进行选择,稍后您可以使用普通命令执行通常可以执行的任何操作(替换:'<,'> s / ^ /#/加上注释(例如)),其中" <,">表示选定的可视块,而不是所有文本。 |