regex - vi VIM 如何将行 append 到自身?

标签 regex vim replace append match

我想将行的全部内容(不包括结束换行符) 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 等价物除了
  • 它不会破坏任何寄存器
  • 不会移动“0-”9 寄存器
  • 不会影响当前的搜索和/或搜索历史(如基于 :%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/

    相关文章:

    c++ - 在 .vimrc 中执行映射命令后 vim 不会暂停

    string - 如何在golang中替换字符串中的所有字符

    mysql - 在sql中的表中用不同的字符串替换字符串

    python - 如何从右侧按单词/数字和符号模式拆分字符串

    c# - 使用正则表达式识别字符序列并用它构建字符串

    Python正则表达式提取 token

    unix - OS X 上的 vim 和 vim 帮助文件在哪里? — 它们未列在我的主文件夹中

    mysql - 如何从 MySQL 中的文本字段中提取两个连续的数字?

    vim - 如何在 Vim 中正确启用 Mathematica 的语法高亮?

    python - 请问,为什么我的代码中 "Popcorn"没有被 "Coke"替换?