17

谁能帮我解决这个问题:我试图弄清楚如何在不同终端(使用 iterm2 或 mac 终端)上的 2 个不同 vim 实例之间复制和粘贴文本。如果我执行“:set mouse=a”,我可以使用鼠标执行此操作,但我希望能够使用键盘执行此操作。

我用谷歌搜索了一下,它说你可以使用“* 或”+ 寄存器来复制/粘贴到/从系统剪贴板,但是当我在 vim 中输入 * 或 + 时,mac 会发出它发出的声音之一不能做某事。我也做过 ":set clipboard=unnamed" 但这也没有用。

我正在使用 Mac OSX 10.7 (Lion) 和 iTerm2 或 Mac 终端。

谢谢您的帮助

4

2 回答 2

17

您可以添加的输出:version吗?

我可以在 Terminal.app 窗口 A 中运行的一个 Vim 实例中yyy在其中一个 Vim 实例中拉动,并在 Terminal.app 窗口 B 中运行的另一个 Vim 实例中或在其中放入p以下P~/.vimrc

set clipboard+=unnamed

不使用特定的剪贴板寄存器(*+)。

为什么你有两个 Vim 实例在不同的终端上运行?SSH/本地?如果一个在 SSH 会话中,则拉/放将不起作用,因为两台机器(本地/远程)不共享相同的剪贴板。

编辑

我怀疑 Vim 没有使用正确的标志编译。显然是这样的。

由于您使用的是 Mac OS X 的默认 Vim,我认为您不需要重新编译它甚至编译任何东西,因为它通常会导致更多的问题而不是它的价值。

相反,下载最新的 MacVim 构建并使用 MacVim 捆绑包中的 (CLI) Vim 可执行文件:它具有与 MacVim 相同的功能(当然,在 CLI 的约束范围内)。

将此行添加到您的~/.bashrc~/.profile用于放置别名和自定义 bash 函数的任何位置:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim'
于 2011-11-15T10:41:54.390 回答
0

如果要将整个文件复制到目标文件中。

在 vim 中打开你的目标文件。

将光标放在您想要的位置并键入以下内容:

:r /p​​ath_to_file/file.ext

这会将整个文件复制到光标所在的位置...

于 2013-01-15T22:15:36.987 回答