Easy Vim 配置
Author: @Jayli
版本要求 VIM >= 8.2,安装 vim 要配置好 python3 支持(snippets 需要)
安装
源码安装
初始安装,确保~/.vim
不存在
cd ~/
git clone git@github.com:jayli/vim.git vim
mv vim .vim ln -s ~/.vim/_vimrc ~/.vimrc ln -s ~/.vim ~/.config/nvim
安装插件,进入 vim 后执行 :PlugInstall
常用命令
双字符命令
命令 | 描述 |
---|---|
tn | :tabnew 打开新窗口 |
wm | :NERDTreeToggle 打开左侧树形文件菜单列表 |
mm | :TagbarToggle 打开右侧函数列表 |
md | :IndentModify 将Tab缩进或者2格缩进修正为4宽Space缩进 |
// | 选中模式下注释或取消注释多行 |
gg | 到达文件开头 |
= | 选中模式格式化选中部分的代码 |
zi | 全部打开折叠 |
zm | 全部折叠起来 |
za | 当前所在的折叠块折叠起来 |
[[ | 跳到上一个函数位置 |
]] | 跳到下一个函数位置 |
Ctrl/Shift/Tab 控制命令
命令 | 描述 |
---|---|
Ctrl-N | 多光标模式 |
Ctrl-P | CtrlP 命令 |
Tab | 切换 Tab |
Shift-Tab | 回切 Tab |
Shift-G | 到达文件结尾 |
Shift-K | 查找光标处单词的帮助 |
Ctrl-] | 跳转到函数/变量定义处 |
Ctrl-[ | 跳回原处 |
Ctrl-T | 跳回原处 |
Ctrl-O | 跳回上一个Buffer |
Ctrl-B | js 文件的格式重排,JSBeautify |
Ctrl-K | Snipmate 展开代码片段 |
Ctrl-l | 快速右移 |
Ctrl-h | 快速左移 |
b | 以单词为回退长度后退光标 |
e | 以单词为跃进长度前进光标 |
常用 Command
命令 | 描述 |
---|---|
:H | :H 呼出最常用命令 |
:vs | 垂直分割窗口 |
:ps | 水平分割窗口 |
折叠:我习惯用 marker 折叠方式,基于/*{{{}}}*/
匹配折叠,更容易控制代码。
AutoComplete:EasyComplete 和 Vim-Dictionary,使用 Tab 完成补全,字典词表配置参照这里
EasyComplete 中 Tab 的配置不能和 SuperTab 共用
自带主要插件列表
- matchit(http://www.vim.org/scripts/script.php?script_id=39)
- ctrlp(https://github.com/kien/ctrlp.vim)
- csslint(http://csslint.net/)
- jshint(https://github.com/walm/jshint.vim)
- fuzzyfinder(https://github.com/vim-scripts/FuzzyFinder)
- jsbeautify(http://jsbeautifier.org/)
- Pathogen(https://github.com/tpope/vim-pathogen)
- vim-go(https://github.com/fatih/vim-go)
- vim-javascript(https://github.com/pangloss/vim-javascript)
- vim-easy-align(https://github.com/junegunn/vim-easy-align)
简洁的状态条 Moonline
状态条:MoonLine
将文件拷贝到~/.vim/plugin/
目录下即可,无需配置
cd ~/.vim/plugin/
wget https://raw.githubusercontent.com/jayli/vim/master/plugin/moonline.vim
VIM 卡顿
VIM 打开大文件和语法复杂的文件都会卡顿,卡顿来源于两方面:一插件的滥用,二语法文件不够精简。所以一定要确保只留必要插件,非必要插件不要安装,语法文件复杂直接影响到运行时的卡顿,js 和 go 语法高亮逻辑很简单,一般不会卡顿,但类似 shell 和 vimL 这种语法超级复杂的语言,必须要对 syntax 文件进行瘦身,取子集,尽量避免语法的正则渲染,最好是关键字的枚举,我只对 vimL 的 syntax 文件做了一定的瘦身,性能上基本达标。
Modeline 设置
常用的设置:
<!-- vim: set ts=2 sw=2 sts=2: -->
// vim:ts=2:sw=2:sts=2
Enjoy yourself!