[英]vi VIM How to append line to itself?
我想将行的整个内容(不包括结尾换行符)附加到行本身。 我看到了这个解决方案:%s/$/\\*/g
这里: 如何在Vim中每行的末尾添加一个字符串?
但它将字符*附加到行上。 我尝试了两个:%s/$/*/g
和:%s/$/\\*/g
但结果相同。
我正在使用VIM - Vi IMproved版本7.3.46
PS:看来,作为新用户,我不允许将此问题作为评论发布。 谢谢。
再一次,命令模式被大大低估了:
:t.|-j
DONE
更新我在另一条评论中看到你想要为一个范围做这个。 这也很容易。 见下文
这基本上是防爆相当于yyPJx
除
:%s
基于:%s
的答案) @:
立即重复@:
- 没有宏,没有映射:) yyPJx
方法将导致3个单独的撤消步骤) 说明:
:t
是同义词:copy
:j
是:join
缩写 :-j
是:-1join
,意思是:将前一行与它的后继者连接起来 注意:如果要保留前导空格(如yyPgJx
而不是yyPgJx
),请使用:
:t.|-j!
使用视觉选择类型更新重复
:'<,'>g/^/t.|-j
对于视觉选择中的每一行重复它。 (当然, :'<,'>
会自动插入可视模式)。 此方法的另一个好处是您可以轻松指定要复制行的过滤器:
:g/foo/t.|-j
将'复制'当前缓冲区中包含'foo'的所有行(请参阅windo,bufdo,argdo以将其扩展到过多的缓冲区而不会出汗)。
您可以使用此替换:
:s/^.*$/&&
^.*$
表示“任何( .*
)在行的开头( ^
)和结束( $
)之间”。 &
表示匹配的文本,因此我们用自己替换整行,然后再次替换自己。 编辑
Ingo的评论是正确的:s/.*/&&
做同样的打字。
转到要附加到自己的行。 然后输入: 0y$$p
说明:
0 - 用于到达行的开头
y $ - 从光标到行尾的所有内容
$ - 用于到达终点
p - 用于“放置”猛拉缓冲区
你为什么不试试: yyPJx
。
这会将当前行的副本附加到它的自身。
你甚至可以:
noremap ,l yyPJx
在.vimrc
如果要映射击键来完成此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.