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,#0F1到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

Popular posts from this blog

什么是smart原则

Markdown 语法学习文档

【Protocol Buffer】简介和安装