【问题标题】:In Vim, is there a way to paste text in the search line?在 Vim 中,有没有办法在搜索行中粘贴文本?
【发布时间】:2010-09-11 04:53:44
【问题描述】:

我想搜索$maximumTotalAllowedAfterFinish 并将其替换为$minimumTotalAllowedAfterFinish。而不是输入长文本:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

有没有办法将这些长变量名复制到搜索行中,因为在命令行上我无法键入“p”进行粘贴?

【问题讨论】:

  • 我猜你也需要转义第一个$,因为这个字符意味着行尾。
  • @LucM OP 还可以在搜索模式中的任何位置使用\V 来禁用“魔法”字符。

标签: vim


【解决方案1】:

您可以将光标放在要添加到模式中的单词上,然后按 /: 进入搜索或命令模式,然后然后按 CtrlRCtrlW 复制单词。 Source

【讨论】:

    【解决方案2】:

    复制:
    1)v(或用鼠标突出显示,在可视模式下)
    2)y(猛拉)

    粘贴:
    1)/(搜索模式)
    2) Ctrl + R + 0(从被抽出的寄存器中粘贴)

    【讨论】:

    • 我在谷歌搜索这个问题时正在寻找这个答案,我想知道为什么这有反对票。
    【解决方案3】:

    通常,您可以通过鼠标选择来执行此操作(选择后可能是 CtrlInsCtrlC)然后,在命令/搜索行中,单击中键(或 ShiftInsCtrlV) .

    另一种方法是在文本缓冲区中写入您的命令/搜索行,并在文本缓冲区中进行所有可用的编辑,从 : 开始,然后,就行了:

    "add@a
    

    它将整个命令行存储在缓冲区a中,然后执行它。不过,它不会存储在命令历史记录中。

    尝试在文本缓冲区中创建以下行作为上述按键的示例:

    :%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
    

    最后,您可以输入q: 进入文本缓冲区中的历史编辑。

    【讨论】:

      【解决方案4】:

      照常复制,然后按CtrlR"粘贴。还有很多其他的Ctrl R 快捷方式(例如,计算器、当前文件名、剪贴板内容)。输入 :help c_<C-R> 以查看完整列表。

      【讨论】:

        【解决方案5】:

        您可以通过键入 CTRLR {0-9a-z"%#:-=.} 插入编号或命名寄存器的内容。通过键入 CTRL-R CTRL-W 您可以将当前单词粘贴到光标下。见:

        :he cmdline-editing
        

        了解更多信息。

        【讨论】:

        • 感谢您的回答,对我来说最常见的是:CTRL + R +(用于剪贴板内容)
        • 0 寄存器包含最后提取的字符串。
        【解决方案6】:

        键入q: 以在新缓冲区中进入历史编辑模式。然后编辑缓冲区的最后一行并按Enter 执行。

        【讨论】:

        • 这就是缓冲区的用途!谢谢(我总是在输入 :q 时偶然发现它并感到困惑)
        • q/ 对于访问搜索历史和粘贴新搜索也很有用。
        【解决方案7】:

        或者在 vim 缓冲区中创建命令,例如在缓冲区中输入:

        s/foo/bar/gci
        

        然后用"ayy 将它复制到一个命名寄存器(如果光标在该行上!)。

        现在你可以从 Vim 的 Ex 命令行执行“a”寄存器的内容了:

        :[OPTIONAL_RANGE]@a
        

        我一直在使用它。

        【讨论】:

        • 你的 "ayy" 要么被引用(因此不正确)要么没有被引用(因此最后有一个错误的 ")
        猜你喜欢
        • 2013-06-11
        • 2023-04-10
        • 2012-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-24
        • 2023-01-27
        • 1970-01-01
        相关资源
        最近更新 更多