Skip to content

Backaway/vim.cfg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vim Configuration

VERSION: 2.0

LAST_UPDATE_TIME: 2014-06-21

PS:Fork from @wklken

有任何问题提issues

目标

Just a Better Vim Config. Keep it Simple.

1.结构及配置划分良好
2.全中文注释
3.高度可配置修改
4.一键安装少折腾
5.保持简单

适用人群:

有一定基础的 vimer

vim基本用法

推荐: 耗子叔的 简明vim练级攻略

或者,玩游戏 vim大冒险

交互教程 入门openvim 进阶Vim Genius

学习步骤:

1.进入退出,模式切换,插入删除复制粘贴等基本操作

2.学会快速移动跳转

3.学会如何进行选中

4.学会进行文本对象操作

5.学会批量重复操作

6.学会vim批量替换

------------
6.学会使用插件,完成补全,注释,文本快速录入操作等

7.学会宏 []

使用说明

  1. 能熟练使用原生vim,最好先熟悉了再来使用插件扩展

  2. 插件配置

     1.可以在vimrc.bundles中查看到每个插件的配置
     2.所列插件默认安装的,需要针对自身需求,增加或删除配置
     3.本README.md仅介绍插件简单功能和用法,可以在github中搜索查看详细的用法和配置
     4.每个插件配置后面跟了一些键位修改的配置[用法在下面介绍中],可以根据自己习惯修改
    
  3. fork一份, 然后参照安装步骤进行安装

    根据自己使用语言和自身习惯,对配置进行自定义修改

    之后,维护自身配置,后续可以在任意地方安装,一库在手,天下我有 ,:)

  4. 建议

     1.插件不是越多越好,多了可能会拖慢vim打开速度
    
         可以尝试注掉所有插件,根据使用需求逐一加入
         需要多思考自己使用过程中的不便之处,寻找对应解决方案
    
     2.二八定律
    
         关注可以最大提升自己生产力的20%插件,具体要亲自实践
         有什么问题,先看插件文档说明->代码选项->github上的issues->google it
         你遇到的问题,一定别人也遇到了,大部分可解决,少部分无解….
    
     3.不要复杂化vim
    

    文章: 不要复杂化vim|七个高效文本编辑习惯

欢迎推荐好用更酷的插件配置:)

我的配置也会不定期更新,thx

后面图片有点多,展示有点慢,截得不是很专业,耐心看完:)



截图

solarized主题

solarized



安装步骤

  1. clone到本地,配置到linux个人目录(如果是从linux_config过来的,不需要clone)

     git clone https://github.com/Junevimer/vim.cfg.git
    
  2. 安装依赖包

     # ubuntu
     sudo apt-get install ctags
     sudo apt-get install build-essential cmake python-dev  #编译YCM自动补全插件依赖
    
     # centos
     sudo yum install python-devel.x86_64
     sudo yum groupinstall 'Development Tools'
    
     # mac
     #brew install ctags
    
     #使用python需要
     sudo pip install pyflakes
     sudo pip install pylint
     sudo pip install pep8
    
     #使用javascript需要安装jshint和jslint,用于javascript语法检查
     需要nodejs支持,各个系统安装见文档 https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
    
     #ubuntu
     sudo apt-get install nodejs
     sudo npm install -g jslint
     sudo npm install jshint -g
    
     #mac
     brew install node
     npm install jshint -g
     npm install jslint -g
    
  3. 安装插件

     cd vim.cfg/
     #注意原先装过重装时,不要到~/.vim下执行(这是软连接指向vim.cfg真实目录),必须到vim.cfg原生目录执行
    
     sh -x install.sh
    
     #会进入安装插件的列表,目前20+个插件,一一安装是从github clone的,完全取决于网速
    
     #安装完插件后,会自动编译YCM,注意,可能编译失败(缺少某些依赖包,暂不支持mac osx 10.9)
     失败的话手动编译吧,看第4步 编译自动补全YouCompleteMe (这步耗时也有点长,但绝对值得)
    
     install.sh
     本质上做的事情
     1.将vimrc/vim文件夹软链接到$HOME,编程系统vim配置
     2.git clone安装vundle(clone到bundle目录下)
     3.通过vundle安装其他所有插件(相当于进入vimrc, 命令行执行:BundleInstall),从github全部搞到本地
     4.编译需要手动编译的插件,eg.YCM
    
  4. 可能遇到的问题:

    • 编译自动补全YouCompleteMe

    文档

    这个插件需要Vim 7.3.584,所以,如果vim版本太低,需要编译安装

    • 相对行号

    vimrc中配置,如果不习惯,可以去掉,相关参考

    • 配置主题

    到vimrc中修改colortheme,可以使用molokai(用惯sublimetext2的童鞋很熟悉)

    默认配置的是solarized dark主题

    想要修改终端配色为solarized可以参考 这里

  5. 安装/卸载/更新插件:

    可以自定义安装某些插件,或者删除对自己无用的插件(插件太多可能导致vim打开过慢)

    安装新插件

     1. vimrc.bundles中配置对应插件 bundle
         Bundle 'fholgado/minibufexpl.vim'
     2. 命令行模式,执行:
         :BundleInstall
    

    更新插件

     命令行模式,执行:
     :BundleUpdate
    

    删除插件

     1. vimrc.bundles中注释或删除对应插件bundle配置行(行首加一个双引号),保存退出即可
         "Bundle 'fholgado/minibufexpl.vim'
    
     物理上删除插件,第一步执行保存退出后,再次进入vim
     2.命令行模式,执行: (会物理上删除插件文件)
         :BundleClean
    
  6. 给mac用户

    可以使用mac vim

    首先,安装最新mac vim ,可以正常打开

    然后(需要sudo)

     mv /usr/bin/vim /usr/bin/vim.bk
     ln -s /usr/local/bin/mvim /usr/bin/vim
    

    最后,在.bashrc/.bash_profile中加入

     alias vi='mvim -v'
     alias vim='mvim -v'
    

    配置完成

  7. 冲突和问题排查

    插件很多,并且其默认快捷键或者配置可能发生冲突

    当加入新插件发现有冲突或者展现有问题

    请排除法进行排查:注掉所有插件或配置,然后二分法逐一恢复,可以定位到出现问题的插件或配置,修改其配置或键位即可



自定义快捷键

1. 可以自己修改vimrc中配置,决定是否开启鼠标

set mouse-=a           " 鼠标暂不启用, 键盘党....
set mouse=a            " 开启鼠标

2. 可以自己修改vimrc决定是否使用方向键进行上下左右移动,默认打开,可以注解
hjkl  上下左右

map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>

3. 上排F功能键

F1 废弃这个键,防止调出系统帮助
F2 set nu/nonu,行号开关,用于鼠标复制代码用
F3 set list/nolist,显示可打印字符开关
F4 set wrap/nowrap,换行开关
F5 set paste/nopaste,粘贴模式paste_mode开关,用于有格式的代码粘贴
F6 syntax on/off,语法开关,关闭语法可以加快大文件的展示

4. 分屏移动

ctrl + jkhl 进行上下左右窗口跳转,不需要ctrl+w+jkhl

5. 搜索
<space> 空格,进入搜索状态
/       同上
,/      去除匹配高亮
(交换了#/* 号键功能)
#       正向查找光标下的词
*       反向查找光标下的词

6. buffer/tab相关
<- / -> 前后buffer

, + tn  新tab
, + to  tabonly
, + tc  close
, + tm  tab move
, + te  new tab edit

7. 按键修改
Y   =y$   复制到行尾
U   =Ctrl-r
, + sa    select all,全选
, + v     选中段落
t         新起一行,下面,不进入插入模式
T         新起一行,上面
, + q     :q,退出vim


优化:
1. j/k 对于换行展示移动更友好
2. HL 修改成 ^$, 更方便在同行移动
3. ; 修改成 : ,一键进入命令行模式,不需要按shift
4. 命令行模式 ctrl+a/e 到开始结尾
5. <和> 代码缩进后自动再次选中
6. 对py文件,保存自动去行尾空白,打开自动加行首代码
7. 交换#/*号功能,#号为正向查找,*反向


插件部分

插件管理 gmarik/vundle

必装,用于管理所有插件 命令行模式下管理命令:

:BundleInstall     install
:BundleInstall!    update
:BundleClean       remove plugin not in list

多语言语法检查 scrooloose/syntastic

建议安装,静态语法及风格检查,支持多种语言

修改了下标记一列的背景色,原有的背景色在solarized下太难看了…..

syntastic

代码自动补全 Valloric/YouCompleteMe

必装,强烈推荐(YCM是我目前用到的最好的自动补全插件)

需要编译这个插件(见github文档)

这个需要自己去看官方的配置方式,演示在官方github有

需要Vim 7.3.584 以上版本(如何编译vim)

这个插件包含了以下几个插件功能,所以不需要装下面:

clang_complete
AutoComplPop
Supertab
neocomplcache
jedi(对python的补全)

快捷键:

,gd  跳到声明位置, 仅 filetypes: c, cpp, objc, objcpp, python 有效

代码片段快速插入 SirVer/ultisnips

必装,效率杀手锏,快速插入自定义的代码片段

代码片段集合,有缺陷

自动补全加这个,高效必备, 针对各种语言已经带了一份配置了,可以到安装目录下查看具体,我有针对性补全一份,在snippets目录下,可自行修改

演示

ultisnips

必装,另一个大大提升效率的地方,快速批量加减注释

[d] shift+v+方向键选中(默认当前行)
    ->  ,cc  加上注释
    -> ,cu 解开注释

演示

nerdcommenter

附:注释还有其他两种插件可选tcommenttpope/vim-commentary

必装,很给力的功能,快速给词加环绕符号,例如引号

repeat进行增强,'.'可以重复命令

[d]
cs"' [inside]
"Hello world!" -> 'Hello world!'
ds"
"Hello world!" -> Hello world!
ysiw"
Hello -> "Hello"

演示

surround

必装,效率提升杀手锏,跳转到光标后任意位置

配置(我的leader键配置 let g:mapleader = ',')

,, + w  跳转
,, + fe  查找'e',快速跳转定位到某个字符位置

演示

easy_motion

多光标选中编辑 vim-multiple-cursors

多光标批量操作

[sd]
ctrl + n 开始选择
ctrl + p 向上取消
ctrl + x 跳过
esc   退出

演示(官方演示图)

multiple-cursors

文件搜索,ack/Command-T需要依赖于外部包,不喜欢有太多依赖的,除非十分强大, 具体 文档

[sd] ,p  打开ctrlp搜索
[sd] ,f  相当于mru功能,show recently opened files

ctrl + j/k 进行上下移动
ctrl + x/v 分屏打开该文件
ctrl + t   在新tab中打开该文件

演示

ctrip

git 常用操作 tpope/vim-fugitive

git插件, 编辑文件时进行一些diff操作,例如diff

不是很习惯,所以用的次数太少,目前和现有配置快捷键有冲突,尚未解决

[sd]
,ge   = git diff edit[gd被ycm占用了]

没有配置其他快捷键,可以参照github,自己增加修改映射

git,在同一个文件内,通过标记和高亮,显示本次文件变更点

[sd]
,gs   = show diff status [gd被ycm占用了]

gitgutter

文件时光机 sjl/gundo.vim

编辑文件时光机

[sd] gu  查看文件编辑历史

附:同类插件 mbbill/undotree

状态栏增强 vim-powerline

目前使用powerline, 可以用airline替换, airline的配置注释,需要的自行解开

演示

powerline

经典主题,目前我使用的,看起来舒服

必装,开启目录树导航

[sd]
    tr  打开 关闭树形目录结构

    在nerdtree窗口常用操作:(小写当前,大写root)
    x.......收起当前目录树
    X.......递归收起当前目录树
    r.......刷新当前目录
    R.......刷新根目录树

    p.......跳到当前节点的父节点
    P.......跳到root节点
    k/j.....上下移动
    K.......到同目录第一个节点
    J.......最后一个节点

    o.......Open files, directories and bookmarks
    i.......split上下分屏
    s.......vsplit左右分屏
    c.......将当前目录设为根节点
    q.......关闭

演示

thenerdtree

必装,标签导航,纬度和taglist不同, taglist的替代者

注意:之前版本有装taglist,决定用tagbar替代,taglist的配置注解未删除,需要的自行打开

 [sd] tg 打开

演示

tagbar

Markdown

plasticboy/vim-markdown

markdown语法,编辑md文件

Inspire

  1. vimrc文件布局vimrc+vimrc.bundles配置方式参考 maximum-awesome

  2. install.sh 参考spf13-vimbootstrap.sh spf13-vim

  3. 插件管理使用Vundle

  4. 自动补全 YCM

Resources

  1. vim资源汇总

  2. Google+

  3. vimbits

  4. Learning vim the hard way

  5. Seven habits of effective text editing

  6. openvim tutorial

  7. vim genius



Connect Me:

Email: junevimer@gmail.com

Github: https://github.com/Junevimer

Blog: http://www.junevimer.com

最后感谢vim配置原作者:@wklken

About

My vim configuration

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published