在终端中,如何在粘贴代码时自动禁用iab
替换?
我不明白这是怎么可能的,但你永远都不知道......我知道的一件事是它很烦人。
注意:此处的关键字自动,而非手动通过:set paste
答案 0 :(得分:1)
Vim没有标准的方法来区分输入字符是否是 实际上由用户输入或由X从剪贴板或他/她生成 选择缓冲区。这就是为什么有粘贴模式手动切换Vim的原因 所有输入都不被解释为交互式输入的状态。
因此,您有两种选择。
从"*
或"+
伪缓冲区粘贴(代表剪贴板和
分别选择X),如果你正在使用GVim或你的Vim编译
使用X11
功能(或至少xterm_clipboard
)。就是这样
简单。
如果控制台Vim在终端中运行,您可以手动同步
其中一个缓冲区(例如,未命名的寄存器""
)与剪贴板或
X选择。例如,因为我只使用终端Vim,所以我有
在我的.vimrc
文件中进行以下映射:
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
要使用这些映射粘贴X选择缓冲区内容,您需要键入
您是领导者密钥p
,然后是适当的Vim粘贴命令。如果你
同意失去使用不同粘贴命令的机会(例如
P
,gp
,]p
等),您可以定义执行这两项操作的映射。
例如,
nmap <silent> <leader>P :call XClipRead()<cr>p