我自己的配置中存在大量快捷键,时常会因为忘记快捷键而又要反复打开 vimrc 查看,一来一回浪费不少时间, 因此我为 Vim 开发了一个弹出菜单,保证既好看又方便的同时用 UI 逻辑来解决遗忘问题:
运行演示:
项目地址:
https://github.com/skywind3000/quickmenu.vim
使用说明:
function quickmenu#append(text, action [, help = ''])
添加目录内容,text 是显示在菜单里的文字,action 是被选中时执行的 VimScript,help 是光标移动到具体项目上面时,显示在 cmdline 上的帮助信息。如果 action 是一个空字符串的话,表示一行静态说明文本(不可选择)。
function quickmenu#toggle(menuid)
弹出 /隐藏 quickmenu,同时有无限个目录存在,用 menuid 表示,默认为 0.
简单配置:
" 允许显示命令行帮助( H ),以及 cursorline ( L )
let g:quickmenu_options = "LH"
" 清除当前目录中所有内容
call g:quickmenu#reset()
" 设置 F12 为:显示 /隐藏 目录
noremap <silent><F12> :call quickmenu#toggle(0)<cr>
" section 1, 由井号开始的字符串表示一个 section
call g:quickmenu#append('# Develop', '')
call g:quickmenu#append('item 1.1', 'echo "1.1 is selected"', 'select item 1.1')
call g:quickmenu#append('item 1.2', 'echo "1.2 is selected"', 'select item 1.2')
call g:quickmenu#append('item 1.3', 'echo "1.3 is selected"', 'select item 1.3')
" section 2
call g:quickmenu#append('# Misc', '')
call g:quickmenu#append('item 2.1', 'echo "2.1 is selected"', 'select item 2.1')
call g:quickmenu#append('item 2.2', 'echo "2.2 is selected"', 'select item 2.2')
call g:quickmenu#append('item 2.3', 'echo "2.3 is selected"', 'select item 2.3')
call g:quickmenu#append('item 2.4', 'echo "2.4 is selected"', 'select item 2.4')
其实就是 append 一堆可以选择的项目就能工作了,多目录操作见项目文档。
Vim 缺乏各种基础 UI 组件,对熟手没问题,对新人却很痛苦。我经常把自己的配置分享给别人,但是发现别人根本没有耐心去记忆我配置里面的快捷键,后来有了这个 quickmenu 以后,发现我的同事们相比枯燥的快捷键,更容易接受这个有界面操作的东西。
--
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.