Vim提供了一种不依赖鼠标的快速高效的编辑体验,通过大量的键盘快捷键,可以快速地进行文本移动、编辑、修改等操作。然而如何记忆和使用种类繁多的快捷键,也形成了另一种挑战。
打开vimrc配置文件,然后使用以下命令,可以列示所有F功能键的当前定义:
:for i in range(1, 12) | execute("map <F".i.">") | endfor
使用以下命令,可以将键盘映射(和修改过的选项),写入到当前目录下的_exrc文件:
:mk
更高效的方式,则是使用vim-which-key插件,可以在弹出窗口(popup)中列示当前所有快捷键的定义,大大减轻了记忆各种快捷键的负担。
安装配置
推荐使用minpac等插件管理器,来安装GitHub上的vim-which-key插件。(请参阅官方安装文档)
假设使用逗号键,作为前缀键(leader):
let mapleader=","
在vimrc配置文件中设置timeoutlen选项,指定在按下leader键后,如果在约定时间后没有进一步的按键操作,则会在弹出窗口中显示快捷键绑定信息:
set timeoutlen=500
nnoremap <silent> <leader> :<c-u>WhichKey '<Space>'<CR>
nnoremap <silent> <localleader> :<c-u>WhichKey ','<CR>
定义快捷键字典
首先,需要创建一个空字典:
let g:which_key_map = {}
vim-which-key插件能够自动识别已经存在的leader快捷键,你可以为其添加文字描述;使用'name'关键字,可以定义二级字典组,以便于为捷键分类显示。
let g:which_key_map.s = { 'name' : '+source' }
let g:which_key_map.s.v = 'Source-vimrc'
let g:which_key_map.t = { 'name' : '+tab' }
let g:which_key_map.t.v = 'Tab-vimrc'
对于尚不存在的快捷键,也可以直接定义命令和描述:
let g:which_key_map.f = {
\ 'name' : '+file' ,
\ 'n' : ['fn' , 'File Name to Clipboard'] ,
\ 'p' : ['fp' , 'Path Name to Clipboard'] ,
\ }
更多vim-which-key插件配置代码,请参阅实例。
显示快捷键列表
在常规模式下点击前缀键(leader),将在弹出窗口(popup)中显示一级菜单,其中“+”开头的菜单项表示包含子菜单:
点击“+”后的首字母,比如",b"将显示缓冲区(buffer)子菜单下的快捷键信息:
点击退格键<BACKSPACE>,将返回上一级菜单;点击<ESC>键,将关闭弹出窗口并返回常规模式。
没有评论:
发表评论