是否可以在Vim中以插入模式粘贴?
当前回答
还可以使用鼠标中间按钮在插入模式下粘贴(仅适用于Linux)。
其他回答
不,不直接。你能做的是快速退出插入模式,使用Ctrl-O进行一个普通模式的操作,然后从那里粘贴,这将使你回到插入模式。
组合键:Ctrl-O p
编辑:有趣。正如其他几个人所列出的那样,似乎是有办法的。
还可以使用鼠标中间按钮在插入模式下粘贴(仅适用于Linux)。
将此添加到vimrc或init文件中:
imap <silent> PP <ESC>pa . imap <silent> PP <ESC>pa . imap <silent> PP
..在插入模式下粘贴“PP”并保持插入模式。
如果你设置Vim使用系统剪贴板(:set clipboard= named),那么你在Vim中复制的任何文本都可以使用Shift + Insert进行粘贴。Shift + Insert只是一个操作系统范围内的粘贴键组合(Ctrl + Insert是对应的“复制”)。
你可以用ctrl - lv从剪贴板粘贴:
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
这是用Ctrlc将视觉选择拉到剪贴板:
vnoremap <C-c> "+y
如果你也想在正常模式下默认使用剪贴板进行经典的vim拉拽/粘贴(y/p),这里有一个配置选项:
set clipboard=unnamedplus
有了这个配置,你可以先在正常模式下猛拉,然后在插入模式下用ctrl + lv粘贴。此外,还可以粘贴来自不同vim实例和不同应用程序的文本。
另一种选择是:
set clipboard=unnamed
然后,您就可以在X环境中通过鼠标拖动选择一些东西,然后将其粘贴到vim中。但是(出于某种原因),你不能在Vim中拉出某个东西(y),然后在其他地方插入它,这可能是非常有限的。
关于这个的Vim文档:http://vim.wikia.com/wiki/Accessing_the_system_clipboard
对于从自定义寄存器粘贴,您可以遵循其他答案:)。这个答案主要是关于如何将Vim与您的系统剪贴板集成。
注意,要使set clipboard=unnamedplus和set clipboard= named生效,你需要使用gvim或vimx (vim-X11):它们是用+xterm_clipboard编译的。你可以选择把它放在你的。bashrc中,用vimx来别名vim:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
你可以在vim——version提供的信息中找到你的vim是否有+xterm_clipboard。
推荐文章
- 如何在Vim注释掉一个Python代码块
- 如何在可视块模式插入?
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?