题
在像 Eclipse 这样的 IDE 中选择延伸到多个屏幕的大量文本相当容易,因为您可以使用鼠标,但是最好的方法是什么,例如:选择并删除多屏幕文本块或写入例如三个大方法导出到另一个文件,然后在 Vim 中删除它们以进行测试,当通过 putty/ssh 使用它时,您无法使用鼠标?
我可以轻松地拉到行尾或拉到代码块末尾,但如果文本延伸到多个屏幕,或者其中有很多空行,我觉得我的在 Vim 中,双手被束缚。有什么解决办法吗?
还有一个相关问题:有没有办法以某种方式选择 40 行,然后将它们全部注释掉(用“#”或“//”),就像大多数 IDE 中常见的那样?
解决方案
嗯,首先,你可以设置 vim
使用鼠标,这将允许您选择文本,就像在 Eclipse
.
您还可以使用视觉选择 - v, , 默认情况下。选择后,您可以 yank
, cut
, , ETC。
至于注释掉该块,我通常选择它 VISUAL
, , 然后做
:'<,'>s/^/# /
将每行的开头替换为 #
. 。(这 '<
和 '>
标记是视觉选择的开始和结束。
其他提示
使用标记。
转到要删除的文本块的顶部并输入
ma
该线上的任何地方。不需要冒号。
然后转到块的末尾并输入以下内容:
:'a,.d
进入 ma
已设置标记 a
对于光标下的字符。
移动到文本块底部后输入的命令显示“从包含标记描述的字符的行 a
('A) 到当前行 (.) d
埃莱特。”
这种东西也可以用于其他事情。
:'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++)
注意: 'a
(撇号-a) 指的是包含由 标记的字符的行 a
. 。``一个(backtick-a) refers to the character marked by
一个`。
要插入注释,请使用以下命令选择行的开头字符 控制键-v (块视觉,不是“v”字符视觉或“V”行视觉)。然后使用“I”进入插入模式,在第一行输入注释字符(例如“#”),最后使用“Esc”转义到正常模式。瞧!
要删除评论,请使用 blockwise-visual 选择评论,然后使用 ' 删除它们X'.
使用可视块命令 v(或 V 表示整行, C-V 对于矩形块)。在视觉块模式下,您可以使用任何运动命令,包括搜索;我经常使用 } 跳到下一个空行。标记块后,您可以将其添加到文件、删除、复制或其他操作。如果执行命令并且可视块消失,请使用 gv 重新选择同一块。有关更多信息,请参阅:help Visual-Change。
我认为 vim 附带了一些特定于语言的脚本,可以以适合您选择的语言的方式注释代码块之类的事情。
按 V
(大写 V),然后按 40j
选择 40 行,然后按 d
删除它们。或者正如@zigdon 回复的那样,您可以将它们注释掉。
视觉模式是您主要问题的解决方案。至于注释掉代码片段,vim.org 上有很多插件,我目前使用的是 tComment.vim。
还有一种无需插件即可注释掉块的巧妙方法。假设你在 python 中工作,# 是注释字符。对您想要散列符号所在的列进行可视化块选择,然后输入 I#ESCAPE。要进入可视块模式,请在 Windows 上按 C-q 或在 Linux 上按 C-v。
或者您可能想尝试一下这个脚本......
我的块评论技术:
控制键+V 启动块视觉模式。
做出您的选择。
在评选活动仍在进行的情况下, 转移+我. 。这将使您进入列插入模式。
输入注释字符“#”或“//”或其他字符。
ESC键。
如果您想对一系列行执行操作,并且您知道行号,则可以将该范围放在命令行上。例如,要删除第 20 到 200 行,您可以执行以下操作:
:20,200d
要将第 20 行到第 200 行移动到第 300 行,您可以使用:
:20,200m300
等等。
使用 转移+V 进入视觉模式,然后您可以选择行并删除/更改它们。
我注释掉 40 行的常用方法是将光标放在第一行并输入命令:
:.,+40s/^/#/
(在这里通过40行前进,用哈希替换启动,空间)似乎比其他一些方法更长,但我喜欢用键盘而不是鼠标做事。
目前第一个答案不太正确?要评论选择按':'和键入命令:'<,'> s/^/#/g
('<, '> - 将自动出现)
您应该了解正常模式命令 [count]控制键-D。它可以选择将“滚动”选项从 10 更改为 [count],然后向下滚动那么多行。紧迫 控制键-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 的工作方式相同,但向上滚动。
v 进入可视块模式,您可以像在大多数常见编辑器中使用 Shift 一样进行选择,稍后您可以执行通常使用普通命令执行的任何操作(替换 :'<,'>s/^/#/ 以在前面加上注释,例如),其中“<,”>表示选定的视觉块而不是所有文本。
标记将是最简单的 MB 你想从哪里开始 我 一旦完成,你就可以做任何你想做的事情
:'b,'ed
从标记中删除 乙 标记 e
注释掉在可视模式下可以做的 40 行
V40j:s/^/#/
将从序列开始处注释掉 40 行