文章目录
- S09L39 Vim Settings and the Vimrc File - Part 2
- 1 Vim 的配色方案与 color 命令
- 2 map 命令
- 3 示例:用 map 命令快速生成 HTML 代码片段
- 4 Vim 中的 Leader 键
- 5 用 mkvimrc 命令自动生成配置文件
写在前面
本篇为 Vim 自定义配置的第二部分。当中的每个知识点几乎都属于二八定律中的那 80% 鲜有人熟练掌握的内容。但根据李笑来大佬的 “自学心法”,掌握一项技能时,如果不能拿下里面最复杂的部分,其实就几乎相当于没学过。计算机领域的知识几乎都是典型的前置引用型知识(forward reference),第一遍即便不会也要硬着头皮看一遍,最好记下来;然后多重复几次,后面自然就领悟其精髓了。
S09L39 Vim Settings and the Vimrc File - Part 2
(接上节)
1 Vim 的配色方案与 color 命令
查看可用的配色方案::color
+ Space + CtrlD
【图 39-1:查看当前可用的配色方案(Windows 版 v9.1)】
查看当前使用的配色方案::colorscheme
+ Enter
在 vimrc
文件中指定配色方案(如 slate
):color slate
从网上下载的第三方配色方案,需放到当前用户主目录对应的 colors
文件夹下:
Linux
:/home/{USER_NAME}/.vim/colors
Mac
:/Users/{USER_NAME}/.vim/colors
2 map 命令
Vim
中的 map
命令可将一组 Vim
命令映射为一个单独的按键,例如将某个功能键定义为一组特定操作(默认情况下功能键未设置任何命令)。
map
命令在 vimrc
文件中的写法:map KEY KEY_STROKES
(按 KEY
执行 KEY_STROKES
中的操作)
例如:
map <F2> iJohn Smith<CR>123 Main Street<CR>Anytown, NY<CR><ESC>
保存后重启 Vim
,重新打开 vimrc
文件,并在末尾行键入 F2,将得到如下结果:
【图 39-2:利用 map 命令实现指定内容与 F2 键绑定的实操截图】
map
命令中常见按键的写法:
写法 | 按键 | 写法 | 按键 |
---|---|---|---|
<BS> | Backspace | <Insert> | Insert |
<CR> | Enter | <Del> | Delete |
<Enter> | Enter | <Home> | Home |
<Return> | Enter | <End> | End |
<Esc> | Escape | <PageUp> | Page-Up |
<Space> | Space | <PageDown> | Page-Down |
<Up> | ↑ | <Tab> | Tab |
<Down> | ↓ | <bar> | | |
<Left> | ← | <C-X> | Ctrl + X |
<Right> | → | <F1> - <F12> | 功能键 F1 至 F12 |
3 示例:用 map 命令快速生成 HTML 代码片段
利用 map
命令还可以将输入某 HTML 代码片段的操作映射到某个功能键(例如 F3)。具体写法如下:
map <F3> i<ul><CR><Space><Space><li></li><CR><Esc>0i</ul><Esc>kcit
保存配置并重启 Vim
,并在末尾行键入 F3,将得到如下结果:
【图 39-3:利用 F3 键快速生成 HTML 模板并进入插入模式实测截图】
此时如果再定义一组按键操作(假设绑定到 F4),实现在下一行快速插入 <li></li>
,并将光标定位到标签内部,则可以写作:
map <F4> <Esc><li></li><Esc>cit
这样就可以组合 F3 和 F4 快速完成 HTML 代码段的编辑和插入,如图 39-4 所示:
【图 39-4:利用 F3 和 F4 键快速实现 HTML 代码段的编辑和插入操作】
4 Vim 中的 Leader 键
Vim
中的 Leader
键用于创建自定义快捷键,其默认值为反斜杠符 \
,也可以用 let mapleader=","
改为其它字符(这里改为 ,
)。
正常模式下要让 \w
实现强制实时保存的功能(即 :w!
+ Enter),可以在 vimrc
中做如下定义:
map <leader>w :w!<CR>
配置生效后,按 \W 键就能实现强制保存当前文件。
如果不用反斜杠,也可以写为:
let mapleader=","
map <leader>w :w!<CR>
这样,按 ,W 即可保存。
查看当前 map
的设置情况,输入命令 :map
+ Enter 即可:
【图 39-5:查看当前定义的 map 命令配置情况】
更多 map
命令的用法,详见 Vim
帮助文档(运行命令 :h mapping
+ Enter)。
5 用 mkvimrc 命令自动生成配置文件
除了手动创建并修改 vimrc
文件,还可以使用命令 :mkvimrc
来创建 vimrc
文件。如果文件已存在,则要么用 :mkvimrc testvimrc
指定一个新文件名(如这里的 testvimrc
),要么用 :mkvimrc!
覆盖已存在的文件。
使用这种方式创建的 vimrc
文件与手动创建的略有不同,其中既有来自系统层的设置,也有来自 mkvimrc
命令本身的内容,例如:
【图 39-6:通过 mkvimrc 命令生成的 vimrc 文件内容(节选)】
其中 ——
vmap
表示仅在可视化模式、选择模式下生效xmap
表示仅在可视化模式下生效nmap
表示仅在正常模式下生效omap
表示仅在操作模式下生效vnoremap
:仅在可视化模式下禁止递归生效快捷键设置nnoremap
:仅在正常模式下禁止递归生效快捷键设置" vim: set ft=vim :
:位于该文件最后一行(如图 39-7 所示),也叫modeline
,它用于指示Vim
在处理该文件时要遵循的特定设置。set ft=vim
用于指定文件类型(ft
即filetype
,表示文件类型)为vim
。这样Vim
就会启用适合Vim
脚本的语法高亮和功能来显示该文件。末尾的冒号为固定写法,表示命令的结束。更多用法参考帮助文档::h modeline
+ Enter。
【图 39-7:利用 mkvimrc 命令生成的 vimrc 文件的末尾部分截图】
值得注意的是,vimrc
大可不必如此复杂,只要满足自身需求,简单实用即可。例如讲师 Jason 的极简配置:
set bg=dark
color slate
set wildmenu
set ruler