###说明下
- 这个配置库是fork了wklken同学的配置后,参考自己的情况修改的。如果有需要的同学请移步wklken的github进行学习。
- 这个vim配置是个人的vim4me一部分,如果需要,可以参考,主要是为了方便自己一键配置环境
###vim基本用法
初学者: vim训练稿 两年前的三月份,第一次开始使用vim,后来整理了一份,对着敲几遍
推荐: 简明vim练级攻略
或者,玩游戏 vim大冒险
###配置步骤
-
clone到本地,配置到linux个人目录
git clone https://github.com/kiahhan/vim4me.git
-
安装依赖包
sudo apt-get install ctags brew install ctags #使用python需要 sudo pip install pyflakes sudo pip install pylint sudo pip install pep8
此处需要特别说明,使用Mac,由于系统本身已经安装了ctags,所以在使用 brew install ctags 命令安装新的ctags是出现了小插曲,在使用Vim的tagList插件时,提示如下信息:
Taglist: Failed to generate tags for /Users/...py
ctags: illegal option -- -^@usage: ctags [-BFatuwvx] [-f tagsfile] file ...^@
Google之,发现问题是Taglist之支持 “exuberant ctags tool”,不支持“GNU ctags” 或者是“Unix ctags”。有人给出的解答是,使用tagbar代替。
如果轻易放弃,就违背了折腾的理念,找到了.vimrc中的配置是这样的,
let Tlist_Ctags_Cmd='/usr/bin/ctags'
而安装的ctags的路径是在 /usr/local/Cellar/ctags/5.8/
下,并且这个目录的bin下还有一个ctags的可执行文件,所以果断改之。再次尝试Taglist,已经发现可以work了。
-
安装插件
cd vim4me/ sh install.sh #会进入安装插件的列表,目前31个插件,一一安装是从github clone的,完全取决于网速 #安装完插件后,会自动编译YCM,注意,可能编译失败(缺少某些依赖包),失败的话手动编译吧,看第4步 编译自动补全YouCompleteMe (这步耗时也有点长,但绝对值得) install.sh 本质上做的事情 1.将vimrc/vim文件夹软连接到$HOME,编程系统vim配置 2.git clone安装vundle(clone到bundle目录下) 3.通过vundle安装其他所有插件(相当于进入vimrc, 命令行执行:BundleInstall) 4.编译需要手动编译的插件,eg.YCM
-
可能遇到的问题:
编译相关插件,修改配置
- 相对行号
vimrc中配置,如果不习惯,可以去掉,相关参考
- 编译自动补全YouCompleteMe
这个插件需要Vim 7.3.584,所以,如果vim版本太低,需要编译安装
- 配置主题
到vimrc中修改colortheme,可以使用molokai(用惯sublimetext2的童鞋很熟悉)
默认配置的是solarized dark主题
想要修改终端配色为solarized可以参考 这里
###截图
solarized主题
molokai主题
###自定义快捷键说明
以下快捷键中==
F1 关掉,防止跳出帮助
F2 set nu/nonu
F3 set list/nolist
F4 set wrap/nowrap
F5 set paste/nopaste
F6 syntax on/off
空格 /开启查找
Y =y$ 复制到行尾
w!! 以sudo的权限保存
kj <Esc>,不用到角落去按esc了
t 新起一行,下面,不进入插入模式
T 新起一行,上面
,sa 全选(select all)
hjkl 上下左右,强迫使用,要解开的自己改
ctrl + jkhl 进行上下左右窗口跳转,不需要ctrl+w+jkhl
,tn new tab
,tc tab close
,to tab only
,tm tab move
,te new tab edit
ctrl+n 相对行号绝对行号变换,
默认用相对行号 http://jeffkreeftmeijer.com/2012/relative-line-numbers-in-vim-for-super-fast-movement/
5j/5k 在相对行号模式下,往上移动5行 往下移动5行,不喜欢注解line 142附近relativenumber配置
,y 展示历史剪贴板
,yc 清空
yy/dd -> p -> ctrl+p可以替换非最近一次剪贴内容
,p 开启文件搜索 ctrlp
,/ 去除匹配高亮
###插件及其快捷键说明
图片有点多,展示有点慢,截得不是很专业,耐心看完:)
插件管理
-
####gmarik/vundle
DONE, 必装,用于管理所有插件
命令行模式下管理命令:
:BundleInstall install :BundleInstall! update :BundleClean remove plugin not in list
导航及搜索
-
DONE
必装,开启目录树导航
[sd] ,n 打开树形目录结构 p 到上层目录 K 到同目录第一个节点 J 到同目录最后一个节点
演示
-
DONE,必装,标签导航,纬度和taglist不同
[sd] <F9> 打开
演示
-
DONE,必装
[sd] <F8>打开
演示:
-
####kien/ctrlp.vim
文件搜索,ack/Command-T需要依赖于外部包,不喜欢有太多依赖的,除非十分强大
演示
显示增强
被动技能,无快捷键
-
DONE, 必装
演示
-
####kien/rainbow_parentheses.vim
DONE,必装
演示
-
DONE,装不装看个人喜好了,缩进标识
另一个类似的,整块背景色的的,nathanaelkane/vim-indent-guides
看来看去还是st2的好看,唉
调整颜色和solarized一致,不至于太显眼影响注意力,可以根据自己主题设置颜色(颜色)
演示:
-
####bronson/vim-trailing-whitespace
将代码行最后无效的空格标红
-
####altercation/vim-colors-solarized
DONE, 主题,目前我使用的,看起来舒服
-
####tomasr/molokai
DONE, 另一个主题,可选,偶尔换换味道
快速移动
主动技能,需要快捷键
-
跳转到光标后任意位置
配置(我的leader键配置 let g:mapleader = ',')
,, + w 跳转 ,, + fe 查找'e',快速跳转定位到某个字符位置
演示
-
% 匹配成对的标签,跳转
自动补全及快速编辑
主动技能,需要快捷键,高效编辑无上利器
-
YCM是目前用到的最好的自动不全插件,用这个写代码太舒畅了
这个需要自己去看官方的配置方式,演示在官方github有
需要Vim 7.3.584 (如何编译vim)
需要编译这个插件(见github文档)
这个插件包含了以下四个插件功能,所以不需要装下面四个
clang_complete AutoComplPop Supertab neocomplcache jedi(对python的补全)
-
快速插入自定义定义好的代码片段
自动不全加这个,高效必备
演示
-
快速批量加减注释
[d] shift+v+方向键选中(默认当前行) -> ,cc 加上注释 -> ,cu 解开注释
演示
-
快速给词加环绕符号,例如引号
repeat进行增强,'.'可以重复命令
[d]cs"' [inside] "Hello world!" -> 'Hello world!' ds" "Hello world!" -> Hello world! ysiw" Hello -> "Hello"
演示
-
输入引号,括号时,自动补全
演示
-
code alignment
[sd] ,a= 按等号切分格式化 ,a: 按逗号切分格式化
-
visual mode selection 视图模式下可伸缩选中部分,用于快速选中某些块
[sd] = 增加选中范围(+/=按键) - 减少选中范围(_/-按键)
演示(直接取链到其github图)
-
多光标批量操作
[sd] ctrl + m 开始选择 ctrl + p 向上取消 ctrl + x 跳过 esc 退出
演示(官方演示图)
具体语言
主要是python 其它语言以及前端的,用得少没有研究使用过
python golang markdown
需要其它语言支持的,可以到github上捞,上面很多流行的vim配置,eg. spf13-vim
-
####python-syntax
python语法高亮,就是python.vim,在github,有维护和更新
-
静态语法及风格检查,支持多种语言
修改了下标记一列的背景色,原有的背景色在solarized下太难看了…..
演示
-
虽然这个的作者推荐使用syntastic,但是这个插件对于pythoner还是很需要的
因为有一个特牛的功能,fly check,即,编码时在buffer状态就能动态查错标记,弥补syntastic只能保存和打开时检查语法错误的不足
-
golang语法高亮
golang刚入门使用,项目中还没正式开始,目前很多golang的手册有配置vim的介绍,后续有需求再弄
-
markdown语法,编辑md文件
-
偶尔会看看js,频率不高
其它扩展增强
根据自身需求自取配置,不需要的话自己注解
-
查看并快速跳转到代码中的TODO列表
重构代码时一般通读,标记修改位置,非常实用
[sd] ,td 打开todo列表
演示
-
git插件
不是很习惯,所以用的次数太少,目前和现有配置快捷键有冲突,尚未解决
-
####sjl/gundo.vim
编辑文件时光机
[sd] ,h 查看文件编辑历史
-
最近打开文件列表
[sd] ,f show recently opened files
-
####thiderman/nginx-vim-syntax
nginx配置文件语法高亮,常常配置服务器很有用
-
jinja2 语法高亮
-
####nono/jquery.vim
jquery高亮
待考察的
-
####sjl/vitality.vim
-
####vim-scripts/Conque-Shell
用过一阵,不大适应,回头瞅瞅
-
####vim-scripts/YankRing.vim
剪贴板增强的,装了一段时间发现用得太少,卸了….
回头看看
-
####vim-scripts/auto.git
用过一阵,快速切换模式的
那些使用过弃用的
-
####vim-scripts/python_match.vim
特性:重定义%,可以在python的if/elif/else try/except/finally等结构中跳转,但是平时百分号用的太少,主要是不顺手,卸了
有兴趣可以试试
-
####yonchu/accelerated-smooth-scroll
上下移动时,平滑滚动,用了一段时间,不大适应,卸了,看个人喜好
-
YouCompleteMe自带包含了,所以不需要了
-
####nathanaelkane/vim-indent-guides
块状的缩进标识,但是总是配得很丑,废弃用了竖线的那个
buffer管理的插件,可以以后有空尝试搜索安装MiniBuferExplorer/Buferexplorer。
kiahhan
Email: kiahhan@gmail.com
Github: https://github.com/kiahhan
2013-08-02