如何在VIM中获得鼠标移动和鼠标位置?

时间:2017-08-07 19:29:25

标签: vim

我正在考虑一个自动显示和隐藏nerdtree的插件。当鼠标位于前5列时显示nerdtree,当鼠标离开前10列时隐藏。但是,我无法在vim中找到鼠标移动事件和鼠标位置api。有没有办法让vim或vim-python中的鼠标移动?

PS:我指的是鼠标移动而不是光标移动。要通过光标位置切换NerdTree,我认为这不是一个好主意。

1 个答案:

答案 0 :(得分:2)

您可以通过:nnoremap <LeftMouse> ...挂钩鼠标点击,但由于应该设置当前光标位置,因此通过以下方式挂钩到等效的光标位置更改会更加一致键盘。但是根据缓冲区中的光标位置让NerdTree侧面板滑入和滑出感觉非常奇怪......我想说的是:这对于Vim来说是一个糟糕的方法。

Vim(甚至是图形GVIM)是一个带有单元寻址的文本编辑器。在终端中,无法获得当前鼠标位置(不点击);它不是协议的一部分:终端发明时鼠标不存在;并且它的支持在很晚之后被嫁接了。现在,GVIM理论上可以实现这一点,但它选择尽可能靠近终端(cp。:help design-not)。

替代方法

在Vim中,一切都是基于密钥的,不同的模式使得键映射简短,令人难忘,并且通常没有修饰键,如 Ctrl Alt 。我会映射(未使用的)功能键(<F3>)或组合(<Leader>t):

:nnoremap <Leader>t :NERDTreeToggle<CR>