在Vim中粘贴代码时自动禁用缩写扩展

在Vim中粘贴代码时自动禁用缩写扩展,vim,Vim,在Vim的终端实例中,如何在粘贴代码时自动禁用缩写扩展 注意:此处的关键字是自动的,而不是通过:set pasteVim没有标准方法来区分输入是否正确 字符实际上是由用户键入的,或者是由 通过剪贴板或选择缓冲区打开X窗口系统。那个 这就是为什么会有粘贴模式手动将Vim切换到状态 当所有输入未解释为交互式键入时 因此,您有两种选择: 从“*或”+寄存器(表示剪贴板)粘贴 和X选择),如果您使用的是GVim或Vim是 使用X11功能编译(或至少使用 xterm\u剪贴板one) 如果Vim在终端中

在Vim的终端实例中,如何在粘贴代码时自动禁用缩写扩展


注意:此处的关键字是自动的,而不是通过
:set paste

Vim没有标准方法来区分输入是否正确 字符实际上是由用户键入的,或者是由 通过剪贴板或选择缓冲区打开X窗口系统。那个 这就是为什么会有粘贴模式手动将Vim切换到状态 当所有输入未解释为交互式键入时

因此,您有两种选择:

  • “*
    ”+
    寄存器(表示剪贴板)粘贴 和X选择),如果您使用的是GVim或Vim是 使用
    X11
    功能编译(或至少使用
    xterm\u剪贴板
    one)

  • 如果Vim在终端中运行,您可以手动 同步其中一个寄存器(例如,未命名的寄存器,
    “”
    ) 使用剪贴板或X选择。例如,因为我只使用Vim 在终端中,我为自己定义了以下映射:

     nmap <silent> <leader>y :call system('xclip', @")<cr>
     nmap <silent> <leader>p :call XClipRead()<cr>
    
     function! XClipRead()
         let s = system('xclip -o')
         if v:shell_error
             return
         endif
         call setreg('"', s)
     endfunction
    

  • Vim没有标准的方法来区分输入 字符实际上是由用户键入的,或者是由 通过剪贴板或选择缓冲区打开X窗口系统。那个 这就是为什么会有粘贴模式手动将Vim切换到状态 当所有输入未解释为交互式键入时

    因此,您有两种选择:

  • “*
    ”+
    寄存器(表示剪贴板)粘贴 和X选择),如果您使用的是GVim或Vim是 使用
    X11
    功能编译(或至少使用
    xterm\u剪贴板
    one)

  • 如果Vim在终端中运行,您可以手动 同步其中一个寄存器(例如,未命名的寄存器,
    “”
    ) 使用剪贴板或X选择。例如,因为我只使用Vim 在终端中,我为自己定义了以下映射:

     nmap <silent> <leader>y :call system('xclip', @")<cr>
     nmap <silent> <leader>p :call XClipRead()<cr>
    
     function! XClipRead()
         let s = system('xclip -o')
         if v:shell_error
             return
         endif
         call setreg('"', s)
     endfunction
    

  • “粘贴代码”的确切含义是什么?粘贴其中一个Vim寄存器的内容?或者从外部X剪贴板或X选择粘贴?您所说的“粘贴代码”的确切含义是什么?粘贴其中一个Vim寄存器的内容?或者从外部X剪贴板或X选择粘贴?终端vim可以使用X11剪贴板寄存器支持进行编译。我不知道有哪个发行版在编译非微型控制台vim时没有它。@ZyX vim有两个与剪贴板支持相关的功能:
    X11
    xterm_剪贴板
    。前者提供X剪贴板和选择缓冲区寄存器,而后者仅提供XTerm剪贴板支持。在很多情况下,这些特性被禁用(或者用它们重新编译Vim是不合适的)。关于分布,这种情况一点也不罕见。例如,Arch Linux中的
    vim
    (而不是
    gvim
    )包在编译vim时既没有
    X11
    也没有
    xterm_剪贴板
    。可以使用X11剪贴板寄存器支持编译终端vim。我不知道有哪个发行版在编译非微型控制台vim时没有它。@ZyX vim有两个与剪贴板支持相关的功能:
    X11
    xterm_剪贴板
    。前者提供X剪贴板和选择缓冲区寄存器,而后者仅提供XTerm剪贴板支持。在很多情况下,这些特性被禁用(或者用它们重新编译Vim是不合适的)。关于分布,这种情况一点也不罕见。例如,Arch Linux中的
    vim
    (而不是
    gvim
    )包在编译vim时没有
    X11
    xterm_剪贴板