0

我目前在我的.vimrc文件中使用这个键映射来模拟 Windows Cut 键盘快捷键。剪切,意思是复制和删除选定的文本。

vnoremap <C-X> "+x

这个键映射是mswin.vimVim 附带的脚本的一部分,我不使用它,我只使用该文件中的几个键映射。

然后,当我在插入模式下从 Vim 中选择文本并按下CtrlX时,文本被复制和删除,但光标向后移动几个字符并执行 Vim 的正常CtrlX按下行为,即减少光标下的数字!

例如,如果我想更改以下代码以减少单词的第二次出现,Renderer我会以这个开头:

Renderer.setClearColorHex(0x7DB6D5, 1.0);
Renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);

最后得到这个:

Renderer.setClearColorHex(0x7DB6D5, 1.-1);  // <--- oh dear!
.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);

这会导致多个错误!

有没有办法通过这个键盘映射来避免这种不需​​要的行为,或者是否有另一种更安全的方法来在插入(SELECT)模式下剪切文本?

4

2 回答 2

1

这与 file 中的 Snipmate 插件冲突snipmate\after\plugin\snipMate.vim

我注释掉了这些行,一切都很好。

" snor <bs> b<bs>
" snor <right> <esc>a
" snor <left> <esc>bi
" snor ' b<bs>'
" snor ` b<bs>`
" snor % b<bs>%
" snor U b<bs>U
" snor ^ b<bs>^
" snor \ b<bs>\
" snor <c-x> b<bs><c-x>
于 2012-02-15T19:30:59.763 回答
0

你真的使用mswin.vim还是不使用?AFAIK,为了允许在INSERT模式下进行编辑和所有类似的怪物,在那里做了很多事情;如果您只取出一小部分,则无法保证它会正常工作。

如果你使用 MSWIN 兼容性并且这个映射已经存在mswin.vim,你为什么要把它放在你的vimrc.

如果不使用MSWIN兼容,这里有很多错误的地方:

  • “编辑”文本未在INSERT模式下完成,您必须返回NORMAL模式并在那里进行编辑
  • NORMAL模式下,dCtrl+的正确等价物,X因为它会删除您要删除的内容并将其放入默认寄存器中,准备粘贴到其他地方。
  • 你不需要选择一个单词来删除它,假设你在Rof 上Renderer,你应该dw删除直到当前单词的结尾
于 2012-02-15T06:59:02.417 回答