为什么无法将 Windows 7 复制到 VIM?

为什么无法将 Windows 7 复制到 VIM?

哪些命令可以在 gVim 上执行 CTRL + V?

在 OS XI 中可以将文本复制到 vim 中,但在 Windows 上却无法做到。

答案1

我建议采取以下措施之一,而不是设置自定义快捷方式:

  1. 从寄存器粘贴:

    "+ ++p

  2. 使用鼠标中键粘贴

  3. 使用上下文菜单粘贴

编辑:

根据回答您可能需要将剪贴板设置为未命名才能使寄存器粘贴功能正常工作。

set clipboard=unnamed

答案2

从 vim文档

微软视窗

要使用标准的 MS-Windows 方式 CTRL-X、CTRL-C 和 CTRL-V,请使用 $VIMRUNTIME/mswin.vim 脚本。您可以将此行添加到 _vimrc 文件中:source $VIMRUNTIME/mswin.vim

答案3

虽然您可以按照 Otiel 的建议设置键绑定,但我认为了解 Vim 中的复制和粘贴工作方式以及了解这些命令的实际含义可能会更有用。

Vim 中的剪切、复制和粘贴命令(dyp)与所谓的寄存器保存上次剪切或复制的文本。默认情况下,它们使用未命名的寄存器"",而系统剪贴板是"+寄存器。

您可以将寄存器作为命令的前缀。因此,要从 Vim 复制到 Windows,请使用"+y,要从 Windows 粘贴,请使用"+p

您还有 26 个寄存器,您可以"a根据"z需要使用它们。这在执行复杂的编辑操作时非常有用。

还有更多特殊寄存器,有关更多信息,请参阅:help registers

答案4

在您的文件中添加以下内容vimrc(应位于C:\Program Files\Vim\_vimrc):

" CTRL-X = cut
vnoremap <C-X> "+x
" CTRL-C = copy
vnoremap <C-C> "+y
" CTRL-V = paste
map <C-V> "+gP
cmap <C-V> <C-R>+
exe 'inoremap <script> <C-V>' paste#paste_cmd['i']
exe 'vnoremap <script> <C-V>' paste#paste_cmd['v']
imap <S-Insert> <C-V>
vmap <S-Insert> <C-V>

或者使用pvim中的命令粘贴剪贴板的内容。

相关内容