用别人的配置,调教自己的 vim。新手如何学习 vimrc 配置[视频]

368 阅读4分钟
原文链接: zhuanlan.zhihu.com

这次简单介绍下如何学习和使用 vim 的配置。vim 不装任何插件也可以高效率编辑,几乎所有流行的编辑器和IDE都有vim插件的支持。 熟悉了 vim 的基本操作之后,如果我们想把编辑器调教地更加顺手,这个时候就需要开始学习和编辑自己的配置文件了。

新手如何学习 vim 配置

新手如何学习配置

一般对于新手我不建议你上来就用一个非常复杂的配置,出问题了你都没法去修改,很容易产生挫败感。 我建议你先从一个简单的 vimrc 配置修改起,从一些小配置比如 set number 之类的配置慢慢修改。当你直到如何配置了再去根据你的需求搜索对应的插件, 然后使用 vim-plug 之类的插件管理器来安装你需要的插件。之后这个 vimrc 可以放到一个 github 的 dotfile 里,以后走哪 clone 到哪,就无需再次配置编辑器了。 实际上我在服务器上用的就是一个简单的 vimrc 配置,而不是平常本地 mac 的复杂配置。

一个基本vimrc 配置文件的组成

想要自己配置 vim 可以在自己的用户根目录下新建一个 .vimrc 文件,然后就可以添加配置了。 本节我们一步步编写一个简单的自己的 vimrc 文件。 这里我用一个 vim-go 的作者写的一个 vim-go 教程的 vimrc 配置作为示例,你可以clone 下这个项目的文件浏览下。

https://github.com/fatih/vim-go-tutorial/blob/master/vimrc

简单来说一个基本的 vimrc 文件由以下几个部分组成:

  • 常用设置。比如 set number 设置行号等,用来持久化配置。
  • 常用映射。比如我一会会演示一下如何映射 jj 来从 insert 模式进入到 normal 模式,如何用 leader(,)+w 来保存文件。如何使用 ctrl+hjkl 来移动窗口等。
  • 插件的安装和配置。使用 vim-plug 等插件管理器可以方便地管理安装和卸载插件。
  • 自定义函数(vimscript)。一般需要一些 vim 脚本编程知识,新手一般不会用到。

比如我们来看一个非常简单的 vimrc 配置示例,这里我列了一些自己常用的映射,让你能愉快地使用 HHKB,POKER2 之类的迷你键盘, 强烈建议把你的 capslock 改成 ctrl,能大幅提升的使用效率。

" 常用设置
" 设置行号
set number
colorscheme hybrid
" 按F2 进入粘贴模式
set pastetoggle=<F2>
" 高亮搜索
set hlsearch
" 设置折叠方式
set foldmethod=indent

" 一些方便的映射
let mapleader=','
let g:mapleader=','

" 使用 jj  进入 normal 模式
inoremap jj <Esc>`^
" 使用 leader+w 直接保存
inoremap <leader>w <Esc>:w<cr>
noremap <leader>w :w<cr>

" 切换 buffer
nnoremap <silent> [b :bprevious<CR>
nnoremap <silent> [n :bnext<CR>
" use ctrl+h/j/k/l switch window
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l

" Sudo to write
cnoremap w!! w !sudo tee % >/dev/null
" json 格式化
com! FormatJSONPy2Utf8 %!python -c "import json, sys, collections; print json.dumps(json.load(sys.stdin, object_pairs_hook=collections.OrderedDict), ensure_ascii=False, indent=2)"


" 插件设置,这里使用了 vim-plug
call plug#begin('~/.vim/plugged')

" 安装插件只需要把 github 地址放到这里重启后执行 :PlugInstall 就好了
Plug 'mhinz/vim-startify'
Plug 'scrooloose/nerdtree'

call plug#end()


" 插件相关配置
" 禁止 startify 自动切换目录
let g:startify_change_to_dir = 0

" nerdtree
nmap ,v :NERDTreeFind<cr>
nmap ,g :NERDTreeToggle<cr>

是不是挺简单的,这样就配置了一个简单的 vimrc 文件。

如何使用别人的强大配置

如果你熟悉了 vim 之后想直接使用一个强大的配置,我们也可以拿来主义,直接把别人的配置 clone 下来用。 很多人在网上分享了他们的 vimrc 配置,我们可以作为参考。这里我列举一下我目前使用这个强大的 vim/neovim 配置。 实际上类似的项目还有很多,比如知名的 spacevim 等。但是还是需要一定时间调教才能比较顺手。 这里我在一个开源的配置的基础上自己改的,使用起来已经比较顺手了,支持很多语言,之前的视频都是用的这个配置。

https://github.com/PegasusWang/vim-config

最后,感兴趣的可以关注笔者公众号 PegasusWang,不定期分享一些 python/vim/web/mac/web 等编程之类的小视频。