当前位置: 首页>>技术问答>>正文


如何在VI编辑器中复制粘贴内容?

, ,

问题描述

我尝试使用CTRL + V粘贴VI编辑器文档中的内容,但CTRL + V不被解释为粘贴。

最佳解决思路

首先,确保您处于编辑模式(按i)。然后,如果您使用的是gnome-terminal等终端模拟器(或从right-click菜单中选择”Paste”),则可以粘贴Ctrl + Shift + V

您也可以在粘贴之前在vim中键入:set paste以禁用自动缩进等,然后在粘贴内容后粘贴:set nopaste

另请参阅stackoverflow.com上的this question以获取更多信息。

如果要复制/粘贴vim中的行(而不是粘贴剪贴板内容),则需要查看yank命令。这可能有助于cheat sheet

次佳解决思路

与普通文本编辑器(如Gedit)相比,Vi(和Vim)的工作方式非常不同。它也有一个非常陡峭的学习曲线。如果您想学习一些基本命令,请从this interactive tutorial开始。

但是,要回答你的问题。系统剪贴板的内容可以通过加号寄存器进行访问。因此,要从系统剪贴板粘贴某些东西,您可以在正常模式下按下:"+p(不是同时,而是一个接一个地)。

第三种解决思路

  1. 如果要将粘贴内容复制到同一文件中,请使用yankpaste

  2. 如果要在终端间复制粘贴内容,请打开第一个文件,取出所需文本,然后在vim中打开第二个文件(例如:tabnew /path/to/second/file),然后按p将其粘贴。

  3. 如果你想从vim复制粘贴内容到外部程序,你需要访问系统剪贴板。我假设你使用Ubuntu。 vim的GUI版本总是支持剪贴板,但是,如果您想从终端使用Vim,则必须检查X11剪贴板支持。

    在控制台中输入:

    $ vim --version | grep xterm
    

    如果您发现-xterm_clipboard,您有两个选择:

    1)自己编译vim,打开xterm_clipboard标志

    2)卸载vim,改为安装gvim(vim-gtk或vim-gnome)。您可以通过从终端调用vim来坚持non-gui vim,就像以前一样。这一次当你检查你应该找到+ xterm_clipborad。

    现在,当您在vim编辑器(例如“+ yy)中的+寄存器中抽取一些文本时,它也会被复制到系统剪贴板,您可以使用Ctrl + V从外部程序(如gedit编辑器)中检索该剪贴板。

  4. 如果要从外部程序将粘贴内容复制到vim,首先通过Ctrl + C将文本复制到系统剪贴板,然后在vim编辑器插入模式下,单击鼠标中间按钮(通常是滚轮)或按Ctrl + Shift + V + V粘贴。这些是4个基本的复制&粘贴与vim相关的条件。我希望这有帮助。

第四种思路

当我想将文本粘贴到终端中时,我总是使用Shift + Insert,可以在所有终端程序中使用。

(这也是为什么我从来没有拿到笔记本电脑的原因,你不能按下Insert键而没有按下辅助键)

第五种思路

使用鼠标的中心按钮插入您在其他地方突出显示的文字。

当您无法访问系统剪贴板时(例如在远程ssh会话中)

必须在vim的编辑/插入模式下

第六种思路

一旦你输入vi,按i进入插入模式,右键单击终端,点击粘贴。

第七种思路

使用yankput在vi中复制/粘贴文本行的详细说明

(在vi的命令模式下使用以下命令)

复制(YANK)

在vi中复制一行:

  • 在命令模式下,将光标移动到需要复制的行并键入yy或键入Y

在vi中复制2行:

  • 在命令模式下,将光标移动到需要复制的第一行并键入2yy或键入2Y

(同样,可以复制任意数量的行)

要将当前位置的所有行复制到文件末尾:

  • 在命令模式下,将光标移动到需要复制的第一行并键入yG

要将当前位置的所有文本复制到当前单词的结尾:

  • 在命令模式下,将光标移动到需要复制文本的位置,然后键入yw

要将当前位置的所有文本复制到行尾:

  • 在命令模式下,将光标移动到需要复制文本的位置,然后键入y$

粘贴(PUT)

在剪贴板中粘贴文本 – 在光标位置之后:

  • 在命令模式下,键入p

在剪贴板中粘贴文本 – 在光标位置之前:

  • 在命令模式下,键入P

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/569.html,未经允许,请勿转载。