【问题标题】:how to copy codes in vi to clipboard如何将vi中的代码复制到剪贴板
【发布时间】:2011-04-03 22:08:10
【问题描述】:

我知道如何在 VI 中复制。但我未能将其复制到其他应用程序中。这意味着我无法将它们复制到剪贴板中。 我该怎么做?

附:为了更瘦。我也想问一下如何将剪贴板中的内容复制到vi。

编辑: 我正在使用 MacOs。运行 Vim。

似乎 *yy 在这里不起作用。还有其他方法吗?

【问题讨论】:

  • 如果您使用的是 MacOS,您是否尝试过 MacVim?这是一个非常棒的 Vim 端口,可以让您使用标准的 cmnd+C、cmnd+V 作为剪贴板,因为 cmnd 键不会以任何方式干扰 Vim。 MacVim 几乎是我一直以来最喜欢的编辑器 :)

标签: vi


【解决方案1】:

需要用到剪贴板寄存器,即*,所以要复制一行文本到剪贴板:

"*yy

从剪贴板粘贴一行文本:

 "*p

【讨论】:

  • 这适用于 vi,但不适用于 libre office 或记事本。如果 VI 将其放入缓冲区,这是否适用于任何应用程序?
  • 是的,* 缓冲区是系统范围的,它与 Ctrl-C 和 Ctrl-V 使用的缓冲区相同。你用的是 Vim,还是普通的 vi?
  • 对不起,我试过这个方法,当你的文件在你的系统中时它有效,但是当你使用远程机器时它不起作用。你有什么比scp更简单的想法吗?
【解决方案2】:

"+y"*y 仅在您的 vim 支持 xterm_clipboard 时有效。 Xterm 是 X11 的终端仿真器。试试vim --version 看看是否支持。如果您看到+xterm_clipboard 它应该可以工作,如果您看到-xterm_clipboard 它不会。现在有许多 Linux 版本的存储库中仍然禁用了 xterm_clipboard 支持。然后不可能通过剪贴板进行猛拉。请注意,您仍然具有良好的旧 unix 风格的 yank/paste,即选择您想要 yank 的文本并在您要粘贴的位置上单击鼠标中键。这应该始终有效,并且是 vim 中首选的 yank/paste 样式。确保处于插入模式并键入set paste,如果它搞砸了缩进。 set nopaste 退出粘贴模式。

要使用 xterm_clipboard 获取 vim,只需下载源代码,创建一个 ./configure --with-x,然后创建一个 make。现在 vim 应该支持 xterm_clipboard 并且在剪贴板中也应该可以完美地进行复制和粘贴。

【讨论】:

    【解决方案3】:
    "+yy or "*yy to copy to clipboard
    "+p or "*p to paste from clipboard
    

    " 会将其放入+ 寄存器中。

    比您想知道的还要多: http://vim.wikia.com/wiki/Accessing_the_system_clipboard

    【讨论】:

      【解决方案4】:

      vi 的复制是在 vi 自己的内部剪贴板中完成的,因为它源自 unix 命令行,其中 windows 样式剪贴板不存在。后来出现了用于命令行的鼠标指针,这意味着您可以使用它作为更像 Windows 的样式进行复制,但是如果您想从 vi 复制到 Windows 剪贴板,则需要使用 *yy 和 *p,而不是 yy 和 p,它们是vi 中的内部剪贴板(这也是为什么 yanking 和 paste 不会影响你的 windows 剪贴板)

      【讨论】:

        猜你喜欢
        • 2015-08-27
        • 2018-08-13
        • 1970-01-01
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多