【问题标题】:How to yank the text on a line and paste it inline in Vim?如何拉出一行中的文本并将其粘贴到 Vim 中?
【发布时间】:2021-01-05 10:50:16
【问题描述】:

说,我有以下几行:

thing();
getStuff();

我想使用yy 命令获取getStuff(),前进到thing(),将光标放在(,然后通过p 命令粘贴,但由于我拉动了整行,@ 987654327@ 会将getStuff() 粘贴回原来的位置。

我知道你可以先将光标移动到 getStuff() 行的开头,然后通过 ^D 命令从那里剪切字符直到它的结尾——然后 p 会做我想做的事.但是,我发现输入^D 比输入yy 更乏味。

有没有办法yy,但改为粘贴 inline 行?

【问题讨论】:

  • 有人提到,yy,然后在插入模式下:<C-r>*,但如果这去掉制表符和换行符会很棒..
  • 在插入模式下,将光标准确地放在您想要的位置,使用Ctrl + r,然后使用"。现在,EsckShift + j。最后一个组合将去掉制表符和换行符。

标签: vim


【解决方案1】:

问题是 yy 正在复制整行,包括换行符。另一种方法是从行首复制到行尾,然后粘贴。

^y$

  • ^ 转到该行的第一个字符。
  • y 一直拉到
  • $ 行尾。

//感谢:测试员和 Idan Arye 对 Vim 高尔夫的改进。

【讨论】:

  • 虽然这很好并且解决了我的换行问题,但假设我在getStuff().. 之前有一堆标签。我最终复制了\t\t\t\tgetStuff().. 我最终不得不回去无论如何都要编辑出来..我希望有一种方法可以使用粘贴命令去除标签和换行符..
  • 啊看来你可以去^y$这很短,但我仍然想找到一个标签删除功能,所以我不必^
  • 您可以使用_y$_ 所做的是[count] - 1 lines downward, on the first non-blank character |linewise|.。没有[count],它与^ 相同,但_ 在键盘上更容易到达。
  • ^ 和 _ 转到行上的第一个非空白字符,因此他们不会拿起制表符。如果您想要前导空格,请改用 0,如 0y$
  • 我的 vimrc 中有nnoremap Y y$,所以Y 拉到当前行的末尾(类似于CD)。这将在上述解决方案中节省一次击键。
【解决方案2】:

使用 yiw (“拉动内部单词”)而不是 yy 拉出你想要的东西:

yy 是逐行 yank 并将抓取包括回车在内的整行,如果您查看未命名的寄存器("" ) 在:registers 中用作粘贴的来源。见:help "":

Vim 将未命名寄存器的内容用于任何 put 命令(pP) 它没有指定一个寄存器。此外,您可以使用 姓名"。这意味着您必须键入两个双引号。写入“” 寄存器写入寄存器"0

yiw 的另一个好处是您不必在“单词”的前面拉扯!

【讨论】:

  • 啊,这太好了,因为即使您的光标位于单词的中间,它也会将整个单词拉入内联。谢谢
【解决方案3】:

一种简化对相同文本模式进行操作的例程的方法 是定义模拟文本对象选择命令的映射。

下面的两对映射——一个用于可视模式,另一个用于 Operator-pending 模式——提供一种选择当前所有内容的方法 除了换行符 (al) 之外的行,以及来自 当前行的第一个非空白字符到最后一个非空白字符 字符,包括 (il)。

:vnoremap <silent> al :<c-u>norm!0v$h<cr>
:vnoremap <silent> il :<c-u>norm!^vg_<cr>
:onoremap <silent> al :norm val<cr>
:onoremap <silent> il :norm vil<cr>

因此,而不是使用yy 来复制行的内容 是按字符(而不是按行)粘贴的,然后可以 使用 yalyil 命令进行 yank,然后使用 p 命令 像往常一样粘贴。

【讨论】:

    【解决方案4】:

    一种效率较低但简单的方法:

    • v 突出显示单词,
    • y 拉出突出显示的单词,
    • p(在行尾)你要粘贴

    【讨论】:

      猜你喜欢
      • 2011-04-29
      • 2012-09-24
      • 2019-01-31
      • 2013-06-05
      • 2013-06-11
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多