我想将行的全部内容(不包括结束换行符) append 到行本身。
我看到了这个解决方案 :%s/$/\*/g
这里:
How can I add a string to the end of each line in Vim?
但它将字符 * append 到行中。我都试过了 :%s/$/*/g
和 :%s/$/\*/g
但同样的结果。
我在用
VIM - Vi 改进版 7.3.46
PS:看来,作为一个新用户,我不允许在那里发表这个问题作为评论。
谢谢。
最佳答案
再一次,命令模式被大大低估了:
:t.|-j
完毕
更新 我在另一条评论中看到,您想针对某个范围执行此操作。这也很容易。见下文
这基本上是
yyPJx
的 Ex 等价物除了 :%s
的答案)@:
立即重复- 没有宏,没有映射:) yyPJx
方法将导致 3 个单独的撤消步骤)解释:
:t
是 :copy
的同义词:j
:join
的缩写:-j
:-1join
的缩写, 意思是:将上一行与其后继者 注意:如果你想保留前导空格(比如
yyPgJx
而不是 yyPgJx
)使用::t.|-j!
更新 用于重复,具有视觉选择类型
:'<,'>g/^/t.|-j
对视觉选择中的每一行重复它。 (当然,
:'<,'>
是在可视模式下自动插入的)。这种方法的另一个好处是您可以轻松指定要复制的行的过滤器::g/foo/t.|-j
将“复制”当前缓冲区中包含 'foo' 的所有行(请参阅 windo、bufdo、argdo 以将其扩展到过多的缓冲区而不会出汗)。
关于regex - vi VIM 如何将行 append 到自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272855/