历史负担

之前用的配置是wklkenk-vim,wklken的vim插件相关的文章写得很棒

近来觉得vim打开速度慢的让人无法忍受,想来是配置(插件)造成的,于是在目录中频繁打开关闭的文件偏好用sublime来编辑了

可我对sublime的快捷键总也记不住,用了就丢那种,连跳转到行的快捷键都记不得,全局替换也要去按按钮,手指远远跟不上脑袋,有种播放视频卡顿的感觉,很是不爽。想想还是重写把vim配置好划算些。

需求分析

我发现实际上k-vim的大多配置,对我而言是多余的,而许多配置,又不舍得任,不妨从这里入手,只挑出非用不可的特性,翻wklkenk-vim博客,恰好看到他的这篇文章:一些VIM的个性化配置,里边把定制配置分条整理了,按需索取就行,我尽量少选

先列出我偏好的配置,之后给出配置文件

  • 更改leader键
  • 移动时, 保留到底部的空间
  • 自定义代码折叠toggle
  • ctrl-n进行相对行号/绝对行号切换
  • 打开vim, 自动定位到上次最后变更位置
  • F键区的映射
  • 分屏窗口切换时, 直接使用ctrl-h/j/k/l
  • leader-/ 关闭掉上次搜索的高亮
  • Python 写入注释#号时, 不每次都跳到行首
  • 强制保存:w!!, 没权限的时候
  • 保存文件时, 自动移除多余空格
  • shell和python文件新建时, 自动插入行头
  • 启动的时候不显示那个援助索马里儿童的提示
  • 退出vim后,内容显示在终端屏幕

####常用插件 首先是插件管理

我们采用Vundle.vim,之前的gmarik/vundle

使用方法很简单,先git clone到本地git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

在配置文件里加上

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
:::text
set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

以及我需要使用一些常见插件

1
2
3
4
5
6
7
:::text
Plugin 'scrooloose/nerdtree'
Plugin 'davidhalter/jedi-vim'
Plugin 'scrooloose/syntastic'
Plugin 'msanders/snipmate.vim'
Plugin 'mattn/emmet-vim'
"Plugin 'Valloric/YouCompleteMe' "YouCompleteMe编译比较麻烦,选用

安装插件只需要":PluginInstall"

插件笔记

youcomplateme

youcomplateme值得学习

Vim自动补全神器:YouCompleteMe

ps:在我的环境里,需要进入virtualenv里才正常(这是我的个人笔记)

jedi-vim

jedi-vim 能智能理解python代码

1
2
3
4
5
6
7
8
:::text
Completion <C-Space>
Goto assignments <leader>g (typical goto function)
Goto definitions <leader>d (follow identifier as far as possible, includes imports and statements)
Show Documentation/Pydoc K (shows a popup with assignments)
Renaming <leader>r
Usages <leader>n (shows all the usages of a name)
Open module, e.g. :Pyimport os (opens the os module)

jedi-vim 可以在写python时拥有ipython的感觉,K文档查询

macvim

想用macvim的动机是,鼠标的移动能力是目之所及,即可操作,一些非批量化,零碎的任务是很适合用鼠标的,诸如移动到某个位置,切换版块,跳到tab标签,菜单功能。免去记忆很多实用频率不高,记了又忘的快捷键。同时不丧失vim的编辑优势,我可能没有十分强烈cui的原教旨倾向,在工具这方便大概算是实用主义者吧。我想用macvim这种带有gui功能的编辑器,使用场景主要是在gui文件夹中临时想编辑文件时。

neovim

使用neovim则是,反正都要重新配置,不如换用为新世纪倒灶的neovim,甩下vim的历史包袱,由于neovim和vim配置基本相同,所以neovim的配置和vim重叠,并不带来新的学习成本

配置文件:~/.config/nvim/init.vim

配置文件和文档

具体的配置文档可以参考/wwj718-vim),里边给出了使用的细节