在 vim 中复制条件语句
Copy conditional statements in vim
是否有简单的键盘快捷键来复制 vim 中的条件语句?我有这样的 if 条件
1: if (some condition) {
2: // do many things in multiple lines
100: }
通过将光标放在第 1 行键入 y%
,将第 2 行复制到第 100 行。有没有办法从第 1 行复制到第 100 行?我尝试了 ya%
、yi%
但没有任何帮助。我也可以使用标记或记下行号进行复制,但这是一项耗时的任务。其他条件语句也有类似要求。
您可以 va{
或 vaB
,然后 :'<,'>y
(自动为您插入范围)。
或vaB
,然后V
把"visual"选区变成"visual-line"选区,然后y
.
坚持使用 ex 命令,您可以从 if
行执行 :,/^}/y
或从条件中的某处执行 :?if?,/^}/y
。
此外,如果您可以将该条件折叠成一行,则可以使用简单的 yy
.
将闭合折叠内的所有行抽出
通常我所做的是将光标放在 {
上,然后执行 V%y
(注意大写字母 'V')。
如果周围有空行,但 if 语句中没有,您可以对段落进行 yap
抽取。这是一个很大的'if'。
虽然这可能不是最好的方法。
是否有简单的键盘快捷键来复制 vim 中的条件语句?我有这样的 if 条件
1: if (some condition) {
2: // do many things in multiple lines
100: }
通过将光标放在第 1 行键入 y%
,将第 2 行复制到第 100 行。有没有办法从第 1 行复制到第 100 行?我尝试了 ya%
、yi%
但没有任何帮助。我也可以使用标记或记下行号进行复制,但这是一项耗时的任务。其他条件语句也有类似要求。
您可以 va{
或 vaB
,然后 :'<,'>y
(自动为您插入范围)。
或vaB
,然后V
把"visual"选区变成"visual-line"选区,然后y
.
坚持使用 ex 命令,您可以从 if
行执行 :,/^}/y
或从条件中的某处执行 :?if?,/^}/y
。
此外,如果您可以将该条件折叠成一行,则可以使用简单的 yy
.
通常我所做的是将光标放在 {
上,然后执行 V%y
(注意大写字母 'V')。
如果周围有空行,但 if 语句中没有,您可以对段落进行 yap
抽取。这是一个很大的'if'。
虽然这可能不是最好的方法。