我正在考虑一个自动显示和隐藏nerdtree的插件。当鼠标位于前5列时显示nerdtree,当鼠标离开前10列时隐藏。但是,我无法在vim中找到鼠标移动事件和鼠标位置api。有没有办法让vim或vim-python中的鼠标移动?
PS:我指的是鼠标移动而不是光标移动。要通过光标位置切换NerdTree,我认为这不是一个好主意。
答案 0 :(得分:2)
您可以通过:nnoremap <LeftMouse> ...
挂钩鼠标点击,但由于应该设置当前光标位置,因此通过以下方式挂钩到等效的光标位置更改会更加一致键盘。但是根据缓冲区中的光标位置让NerdTree侧面板滑入和滑出感觉非常奇怪......我想说的是:这对于Vim来说是一个糟糕的方法。
Vim(甚至是图形GVIM)是一个带有单元寻址的文本编辑器。在终端中,无法获得当前鼠标位置(不点击);它不是协议的一部分:终端发明时鼠标不存在;并且它的支持在很晚之后被嫁接了。现在,GVIM理论上可以实现这一点,但它选择尽可能靠近终端(cp。:help design-not
)。
在Vim中,一切都是基于密钥的,不同的模式使得键映射简短,令人难忘,并且通常没有修饰键,如 Ctrl 或 Alt 。我会映射(未使用的)功能键(<F3>
)或组合(<Leader>t
):
:nnoremap <Leader>t :NERDTreeToggle<CR>