Att*_* O. 259
首先,确保您处于编辑模式(按i)。然后,你可以用粘贴Ctrl+ Shift+ V,如果你像一个终端仿真器gnome-terminal(或选择右键菜单中的“粘贴”)。
您还可以:set paste在粘贴之前输入vim 以禁用自动缩进等。然后:set nopaste在粘贴内容之后。
另请在 stackoverflow.com 上查看此问题以获取更多信息。
如果您想复制/粘贴行vim(而不是粘贴剪贴板内容),您需要查看yank命令。这是一个可能有帮助的备忘单。
Dan*_*son 76
Vi(和 Vim)与 Gedit 等普通文本编辑器的工作方式大不相同。它也有一个非常陡峭的学习曲线。如果您想学习一些基本命令,请从这个交互式教程开始。
然而,回答你的问题。系统剪贴板的内容可以通过加号寄存器访问。因此,要从系统剪贴板粘贴某些内容,您可以在正常模式下按:("+p不是同时,而是一个接一个)。
小智 33
当我想将文本粘贴到终端时,我总是使用Shift+ Insert,适用于所有终端程序。
(这也是为什么我从来没有买到Insert不按辅助键就不能按的笔记本电脑的原因)
47d*_*ull 32
如果要在同一文件中复制粘贴内容,请使用yank和paste。
如果您想跨终端复制粘贴内容,请打开第一个文件,拉取您想要的文本,然后在 vim 中打开第二个文件(例如:tabnew /path/to/second/file)并按下p以粘贴它。
如果要将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。
如果要将外部程序中的粘贴内容复制到 vim 中,首先通过Ctrl+将文本复制到系统剪贴板C,然后在 vim 编辑器插入模式下,单击鼠标中键(通常是滚轮)或按Ctrl+ Shift+V进行粘贴。
这些是与 vim 相关的4 个基本复制和粘贴条件。我希望这有帮助。
在 vi 中使用yank和复制/粘贴文本行的详细说明put
(在vi的命令模式下使用如下)
复制(扬克)
在 vi 中复制一行:
yy或键入Y在 vi 中复制 2 行:
2yy或键入2Y(同样,可以复制任意数量的行)
将当前位置的所有行复制到文件末尾:
yG将所有文本从当前位置复制到当前单词的末尾:
yw要将所有文本从当前位置复制到行尾:
y$粘贴 (PUT)
在剪贴板中粘贴文本 -在光标位置之后:
p在剪贴板中粘贴文本 -在光标位置之前:
P使用 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