【问题标题】:vim copy/paste from system clipboardvim 从系统剪贴板复制/粘贴
【发布时间】:2018-01-29 20:51:54
【问题描述】:

嗨,我有 macOS High Sierra,vim 版本为 VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jul 26 2017 19:10:24)

我以前可以将:%s/abc//g之类的文本复制到系统剪贴板中,然后转到vim当前正在编辑文件的终端,然后通过cmd+v进行粘贴,然后它将以正常模式运行进行全文替换。

但是,我现在发现此过程只会将文本 :%s/abc//g 粘贴到当前正在编辑的文件中,看似处于插入模式。

如何恢复正常模式的行为?尝试:set nopaste 没有任何运气。

【问题讨论】:

  • :let @+=@: ?如果要将最后输入的命令复制到剪贴板?但是问题不清楚,如果要将每个匹配添加到剪贴板(+寄存器),使用\=替换来评估匹配并将其添加到@+

标签: vim


【解决方案1】:

方法一

  1. 输入:进入命令模式。
  2. 现在执行<C-r>+ 从剪贴板粘贴。
  3. 回车。

方法二

  1. 在普通模式下,输入q:进入命令历史模式。
  2. 使用"+p粘贴。
  3. 回车。

您甚至可以考虑创建映射。

" Paste to command mode while in insert mode.
inoremap <C-v> <C-o>:<C-r>+

" Not recommended. You can't go into Visual Block mode anymore.
nnoremap <C-v> <C-o>:<C-r>+

【讨论】:

  • 您可能没有得到我的要求:我想恢复到以前不需要键入任何内容的状态,并且它已经自动处于正常模式。我在问是否有开关。
  • 重新映射是否更接近您要查找的内容?
  • 使用方法一只会导致 Vim 冻结。如果不终止 SSH 会话,我将无法更改模式或退出。
【解决方案2】:

试试插头vim-system-copy。我发现它对我很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 2023-04-08
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多