Vim的粘贴快捷方式
我正在尝试在我的Vim的粘贴快捷方式,vim,rc,Vim,Rc,我正在尝试在我的.vimrc中设置粘贴快捷方式 到目前为止,我已尝试重新映射Shift+Insert: noremap <S-Insert> <ESC>:paste<CR><S-Insert><ESC>:nopaste<CR> noremap:paste:nopaste …这不起作用。我还尝试映射系统剪贴板粘贴: noremap ´v <ESC>:set paste<CR>"*p<ESC&g
.vimrc
中设置粘贴快捷方式
到目前为止,我已尝试重新映射Shift+Insert
:
noremap <S-Insert> <ESC>:paste<CR><S-Insert><ESC>:nopaste<CR>
noremap:paste:nopaste
…这不起作用。我还尝试映射系统剪贴板粘贴:
noremap ´v <ESC>:set paste<CR>"*p<ESC>:set nopaste<CR>
noremap'v:set-paste“*p:set-nopaste
…但它也不起作用。backtick`
是我个人的leader键,用于几个自定义映射。我有一个德语键盘,可以轻松访问它
我做错了什么?我想,“*p
是用来粘贴系统的剪贴板的……我希望
可以作为命令正常工作
非常感谢您的帮助。如果您的Vim不是使用剪贴板支持构建的(:echo拥有(“剪贴板”)
返回0
),请使用更好的Vim
如果您的Vim是使用剪贴板支持构建的(:echo具有(“剪贴板”)
返回1
),请使用“+p
或”*p
,而无需设置粘贴
如果“+{command}
和“*{command}
对您来说太多,您可以将未命名寄存器与*
寄存器同步,方法是:
set clipboard^=unnamed
set clipboard^=unnamedplus
或使用*
注册:
set clipboard^=unnamed
set clipboard^=unnamedplus
或使用两个寄存器:
set clipboard^=unnamed,unnamedplus
只需使用p
如果仍然需要自定义映射,请执行以下操作:
nnoremap <key> "*p
nnoremap <key> "*P
xnoremap <key> "*p
xnoremap <key> "*P
nnoremap“*p
nnoremap“*P
xnoremap“*p
xnoremap“*P
如果您的Vim不是使用剪贴板支持构建的(:echo具有(“剪贴板”)
返回0
),请使用更好的Vim
如果您的Vim是使用剪贴板支持构建的(:echo具有(“剪贴板”)
返回1
),请使用“+p
或”*p
,而无需设置粘贴
如果“+{command}
和“*{command}
对您来说太多,您可以将未命名寄存器与*
寄存器同步,方法是:
set clipboard^=unnamed
set clipboard^=unnamedplus
或使用*
注册:
set clipboard^=unnamed
set clipboard^=unnamedplus
或使用两个寄存器:
set clipboard^=unnamed,unnamedplus
只需使用p
如果仍然需要自定义映射,请执行以下操作:
nnoremap <key> "*p
nnoremap <key> "*P
xnoremap <key> "*p
xnoremap <key> "*P
nnoremap“*p
nnoremap“*P
xnoremap“*p
xnoremap“*P
出于某种原因,和“*p
以及“+p
始终手动工作,但从不在任何映射中为我工作-尽管我的“原始”vim没有剪贴板支持::echo有('clipboard')
返回0
我刚刚测试了gVim,遇到了同样的问题,尽管这个gVim有剪贴板支持::echo有(“剪贴板”)
返回1
但是,我找到了一些解决方法来获得所需的行为:
nnoremap `v <ESC>:set paste<CR><ESC>:r!xclip -o<CR>:set nopaste<CR><ESC>
nnoremap`v:设置粘贴:r!xclip-o:设置nopaste
你只需要安装xclip
,这是一个剪贴板实用程序,存在于Manjaro、Arch、Debian和UbuntuUniverse中。我想它也适用于许多其他发行版,但我刚刚用命名的发行版进行了测试
此命令将vim设置为粘贴模式(禁用自动缩进和填充,以便粘贴时某些代码的格式不会弄乱),通过相应的xclip命令读取剪贴板缓冲区,并使用:set nopaste
重置为正常缩进行为,原因是
和“*p
以及”+p
始终手动工作,但从不在任何映射中为我工作-尽管我的“原始”vim没有剪贴板支持::echo有('clipboard')
返回0
我刚刚测试了gVim,遇到了同样的问题,尽管这个gVim有剪贴板支持::echo有(“剪贴板”)
返回1
但是,我找到了一些解决方法来获得所需的行为:
nnoremap `v <ESC>:set paste<CR><ESC>:r!xclip -o<CR>:set nopaste<CR><ESC>
nnoremap`v:set-paste:r!xclip-o:set-nopaste
你只需要安装xclip
,这是一个剪贴板实用程序,存在于Manjaro、Arch、Debian和UbuntuUniverse中。我想它也适用于许多其他发行版,但我刚刚用命名的发行版进行了测试
此命令将vim设置为粘贴模式(禁用自动缩进和填充,以便粘贴时某些代码的格式不会弄乱),通过相应的xclip命令读取剪贴板缓冲区,并使用:set nopaste
重置为正常缩进行为您尝试过noremap`v吗*p
?在任何映射之外,“*p
自身是否工作?是的,它确实工作…但映射不工作:/I是否有其他方法可以将粘贴行为映射到vim?包括粘贴前后的:set paste
和:set nopaste
(否则索引会出错):set paste
仅用于来自终端的文本,而不是从vim内部粘贴。哦,是的,可能我应该提到这一点:我说的是从剪贴板粘贴,因此我从其他地方复制了代码(终端、stackoverflow,…),因此,如果没有:set paste
,我的缩进总是一团糟。由于手动调用:set paste
,进入插入模式,点击Shift+insert
等等,真是烦人和浪费时间。我想为此创建一些映射…您尝试过noremap`v'*p
?是否“*p
在任何映射之外可以自己工作?是的,它可以工作…但映射不工作:/I是否有其他方法可以将粘贴行为映射到vim?包括粘贴前后的:set paste
和:set nopaste
?(否则索引会被搞砸):设置粘贴
仅用于来自终端的文本,而不是从vim内部粘贴。哦,是的,可能我应该提到这一点:我说的是从剪贴板粘贴,因此我从其他地方复制了代码(终端、stackoverflow,…),因此,如果没有:set paste
,我的缩进总是一团糟。硅