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