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

Rpj*_*Rpj 221 editor vi

我尝试使用Ctrl+V在 vi 编辑器文档中粘贴内容,但Ctrl+V不会被解释为粘贴。

Att*_* O. 259

首先,确保您处于编辑模式(按i)。然后,你可以用粘贴Ctrl+ Shift+ V,如果你像一个终端仿真器gnome-terminal(或选择右键菜单中的“粘贴”)。

您还可以:set paste在粘贴之前输入vim 以禁用自动缩进等。然后:set nopaste在粘贴内容之后。

另请在 stackoverflow.com 上查看此问题以获取更多信息。

如果您想复制/粘贴行vim(而不是粘贴剪贴板内容),您需要查看yank命令。这是一个可能有帮助的备忘单

  • 请注意,“I”区分大小写。小写的“i”是进入插入模式的正常方式。大写的“I”将光标移到行首,然后进入插入模式。 (14认同)

Dan*_*son 76

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

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

  • 说到编辑器的学习曲线,有“一些常见编辑器的经典学习曲线”,http://blog.thilelli.net/public/store/attached/curves.jpg。 (21认同)
  • 这是我直到现在都不知道的事情。另外,+1 用于链接另一个很棒的 vim 教程。 (3认同)

小智 33

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

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

  • `Vi`/`Vim` != 终端 ;) (3认同)
  • 最佳解决方案。首先打开文件。然后按 I 进入插入模式,然后按 Shift + Insert,然后按 Esc,然后按 :wq! 保存并退出文件。完毕 :) (2认同)

47d*_*ull 32

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

  2. 如果您想跨终端复制粘贴内容,请打开第一个文件,拉取您想要的文本,然后在 vim 中打开第二个文件(例如:tabnew /path/to/second/file)并按下p以粘贴它。

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

    从控制台输入:

    $ vim --version | grep xterm
    
    Run Code Online (Sandbox Code Playgroud)

    如果您找到-xterm_clipboard,您有两个选择:

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

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

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

  4. 如果要将外部程序中的粘贴内容复制到 vim 中,首先通过Ctrl+将文本复制到系统剪贴板C,然后在 vim 编辑器插入模式下,单击鼠标中键(通常是滚轮)或按Ctrl+ Shift+V进行粘贴。

    这些是与 vim 相关的4 个基本复制和粘贴条件。我希望这有帮助。


wil*_*ted 10

使用鼠标中心按钮插入您在别处突出显示的文本。

当您无权访问系统剪贴板时(例如,在远程 SSH 会话中),它很有用。

Vim 必须处于编辑/插入模式。


小智 8

输入vi后,按i进入插入模式,右键单击终端,单击粘贴。


sla*_*oah 7

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

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

复制(扬克)

在 vi 中复制一行:

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

在 vi 中复制 2 行:

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

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

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

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

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

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

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

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

粘贴 (PUT)

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

  • 在命令模式下,键入 p

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

  • 在命令模式下,键入 P


wis*_*cky 6

使用 Linux 或 Mac 上的 Vim 8+,您现在可以简单地使用操作系统的本机粘贴(ctrl+shift+V在 Linux 上,cmd+V在 Mac 上)。不要按i插入模式。

它将粘贴操作系统剪贴板的内容,保留空格和制表符而不添加自动缩进。它相当于旧的:set paste, i, ctrl+shift+V, esc,:set nopaste方法。

您甚至不再需要安装 vim+clipboard+xterm_clipboardvim 功能。此功能称为“带括号的粘贴”。有关更多详细信息,请参阅/sf/ask/176011181/#56781763