Vim按键映射
一、按键映射
Vim 中的快捷键绑定可以通过以下命令配置:
:imap
:只在 Insert 模式下生效的快捷键:cmap
:只在 Command-line 模式下生效:nmap
:只在 Normal 模式下生效:vmap
:只在 Visual 模式下生效:map
:在以上所有模式下生效:noremap
:包含:inoremap
、:nnoremap
等,非递归映射
PS:关于递归映射,如 :map a b
,:map b c
。根据按键映射之间的传递,则有 a -> c
的关系。而 nore
则用于禁止这种递归行为。
做快捷键映射时,各功能按键在 Vim 中的名称如下:
名称 | 对应按键 |
---|---|
<BS> | 退格键 |
<Tab> | 制表键 |
<CR>或<Enter>或<Return> | 回车 |
<Esc> | Escape |
<Space> | 空格键 |
<Up> | 上方向键 |
<Down> | 下方向键 |
<Left> | 左方向键 |
<Right> | 右方向键 |
<F1>-<F12> | 功能键F1到F12 |
#1,#2..#9,#0 | F1到F10 |
<Insert> | Insert |
<Del> | Delete |
<Home> | Home |
<End> | End |
<PageUp> | 上翻页 |
<PageDown> | 下翻页 |
示例
" save file (ctrl-s)
:map <C-s> :w<cr>
" copy selected text (ctrl-c)
:vmap <C-c> y
" Paste clipboard contents (ctrl-v)
:imap <C-v> <esc>P
" cut selected text (ctrl-x)
:vmap <C-x> x
:map <C-s> :w<cr>
表示将 Ctrl+S
组合键映射为 :w<cr>
(保存修改,写入文件)
其中 <C-s>
在 Vim 中即表示 Ctrl+S
,类似的用法还有 <A-s>
(Alt+S
)、<M-s>
(Meta+S
)、<C-S-s>
(Ctrl+Shift+S
)等。:w
后面的 <cr>
表示按下回车键。如命令最后没有加上 <cr>
,则按下组合键 <C-s>
后只会将对应的 :w
输入到命令栏而不执行。
上面映射的保存文件功能还可以更加细化一些::imap <C-s> <esc>:w<cr>a
即该组合键适用于插入模式,按下 Ctrl+S
意味着会依照如下顺序执行命令:
<esc>
:退出插入模式:w<cr>
:将之前的修改写入文件a
:回到插入模式继续编辑文件
对于 Gvim 下的按键映射,还可以调出对话框完成 Open
和 save-as
功能:
"Open new file dialog (ctrl-n)
:map <C-n> :browse confirm e<cr>
"Open save-as dialog (ctrl-shift-s)
:map <C-S-s> :browse confirm saveas<cr>
对于依次按下多个按键的组合键,如::map $1 :MyFunction1()<cr>
当按下 $
键后,Vim 会等待一秒钟,若一秒钟之内又按下了 1
键,则执行映射的 MyFunction1()
函数;若一秒钟之内没有任何按键按下,则执行 $
键原本的功能(移动光标到行尾)。
标题:Vim按键映射
作者:老白阳
文章地址:https://www.oldbaiyang.com/articles/2022/05/20/1653062311515.html
-------------------------------------------------------------------------------
老白阳的博客
老白阳的YouTub频道
老白阳的B站频道
老白阳的谷歌博客
Comments
Post a Comment