选择大量的文本,这些文本扩展到像Eclipse这样的IDE中的许多屏幕上,因为你可以使用鼠标,这是很容易的,但是最好的方法是什么?选择并删除多屏幕文本块或写入例如将三个大方法输出到另一个文件,然后在通过putty / ssh使用鼠标时在Vim中将它们删除以便进行测试?
我可以很容易地对行结束行动或者从代码块中抽取,但如果文本扩展到许多屏幕,或者其中有很多空行,我觉得我的手被捆绑在Vim。任何解决方案?
还有一个相关的问题:有没有办法以某种方式选择40行,然后将它们全部注释掉(用“#”或“//”),这在大多数IDE中很常见?
答案 0 :(得分:23)
首先,您可以将vim
设置为使用鼠标,这样您就可以像在Eclipse
中一样选择文字。
默认情况下,您还可以使用Visual选择 - v 。选择后,您可以yank
,cut
等
就评论区块而言,我通常选择VISUAL
,然后选择
:'<,'>s/^/# /
用#
替换每一行的开头。 ('<
和'>
标记是视觉选择的开始和。
答案 1 :(得分:19)
使用标记。
转到要删除的文本块的顶部,然后输入
ma
该行的任何地方。不需要结肠。
然后转到块的末尾并输入以下内容:
:'a,.d
输入ma
已为光标下的字符设置了标记a
。
移动到文本块底部后输入的命令“从包含标记a
描述的字符的行开始(' a )到当前行(。)d
elete。“
这种东西也可以用于其他事情。
:'a,.ya b - yank from 'a to current line and put in buffer 'b'
:'a,.ya B - yank from 'a to current line and append to buffer 'b'
:'a,.s/^/#/ - from 'a to current line, substitute '#' for line begin
(i.e. comment out in Perl)
:'s,.s#^#//# - from 'a to current line, substitute '//' for line begin
(i.e. comment out in C++)
N.B。 'a
(撇号-a)是指包含a
标记的字符的行。 ``一个(backtick-a) refers to the character marked by
A`。
答案 2 :(得分:17)
要插入注释,请使用 CTRL - v 选择行的开头字符(blockwise-visual,而不是'v'字符明智 - 视觉或'V'linewise-视觉)。然后使用'I'进入插入模式,在第一行输入注释字符(例如'#'),最后使用'Esc'转到正常模式。瞧!
要删除评论,请使用blockwise-visual选择评论,然后使用“ x ”将其删除。
答案 3 :(得分:8)
对于矩形块,使用可视块命令v(或V表示整行, C - V )。在可视块模式下,您可以使用任何运动命令,包括搜索;我经常使用}跳到下一个空白行。标记块后,您可以:将其添加到文件,删除,抽取或其他任何内容。如果执行命令并且可视块消失,请使用gv重新选择相同的块。请参阅:帮助进行视觉变化以获取更多信息。
我认为vim附带了特定于语言的脚本,可以按照适合您选择的语言的方式注释掉代码块。
答案 4 :(得分:4)
按V
(大写V),然后按40j
选择40行,然后按d
将其删除。或者@zigdon回复说,你可以评论它们。
答案 5 :(得分:4)
可视模式是您主要问题的解决方案。至于评论代码的各个部分,在vim.org上有很多插件,我现在正在使用tComment.vim。
还有一种简洁的方法可以在没有插件的情况下注释掉一个块。让我们说你在python中工作,而#是注释字符。对要使用井号的列进行可视块选择,然后键入I#ESCAPE。要进入可视块模式,请按Windows上的C-q或Linux上的C-v。
答案 6 :(得分:3)
或者你可能想尝试一下这个脚本......
答案 7 :(得分:3)
我的块评论技巧:
Ctrl + V 以启动逐块可视模式。
进行选择。
选择仍然有效, Shift + I 。这使您进入列插入模式。
键入您对“#”或“//”等字符进行注释。
ESC。
答案 8 :(得分:2)
使用 Shift + V 进入可视模式,然后您可以选择行并删除/更改它们。
答案 9 :(得分:2)
如果要对一系列行执行操作,并且您知道行号,则可以将该范围放在命令行上。例如,要删除第20行到第200行,您可以执行以下操作:
:20,200d
要将第20行到第200行移动到第300行,您可以使用:
:20,200m300
等等。
答案 10 :(得分:2)
答案 11 :(得分:1)
我常用的评论40行的方法是将光标放在第一行并输入命令:
:。,+ 40s / ^ /#/
(这里通过40行前进,用散列,空格代替行首) 看起来比建议的其他方法要长一些,但我喜欢用键盘而不是鼠标来做事。
答案 12 :(得分:1)
您应该知道正常模式命令[count] CTRL - D 。 它可以选择将'scroll'选项从10更改为[count],然后向下滚动那么多行。再次按 CTRL - D 将再次向下滚动相同的行。
所以尝试输入
V "visual line selection mode
30 "optionally set scroll value to 30
CTRL-D "jump down a screen, repeated as necessary
y " yank your selection
CTRL-U以相同的方式工作,但向上滚动。
答案 13 :(得分:1)
第一个答案目前不太正确? 要注释掉选择,请按':'并键入命令 :'&lt;,'&gt; s / ^ /#/ g
('&lt;,'&gt; - 会自动出现)
答案 14 :(得分:0)
v进入视觉区块模式,您可以选择好像在大多数常见编辑器中使用shift,稍后您可以执行通常使用普通命令执行的任何操作(替换:'&lt;,'&gt; s / ^ /#/例如,在'&lt;,'&gt;之前加上评论。表示所选的可视块而不是所有文本。
答案 15 :(得分:0)
标记将是最简单的 mb ,你想要开始和我你希望在完成后你可以做任何你想做的事情
:'b,'ed
从标记 b 删除标记 e
在视觉模式中评论出你可以做的40行
V40j:s/^/#/
将从你开始序列的地方注释掉40行