Github推荐 - vim配置项目

Linux系统中很多东西都是以脚本代码、配置文件的形式存在,使用Linux系统时,需经常对这些文件进行编辑,而Vim就是它们的编辑器。

vim是Linux系统上的最著名的文本/代码编辑器,也是早年的Vi编辑器的加强版,被誉为文本/代码编辑器之中最为优秀经典的上古神器。但是它很难驾驭,vim配置很复杂,而且用户必须记住一堆快捷键和各种命令才能使用。但一旦使用熟练则编辑效率远超其余编辑器,Github上有很多插件和配置,使vim更加强大(语法高亮,代码补全,配色方案等)。

现在就介绍一个关于vim配置的Github项目 - wklken/k-vim,如果你想要使用vim,但是对于它的配置又不是很清楚,可以直接使用这个配置简单的修改达到你想要的效果。

  1. 使用git克隆到本地

    1
    git clone https://github.com/wklken/k-vim.git
  2. 安装依赖包

    • 系统依赖

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      # ubuntu
      sudo apt-get install ctags
      sudo apt-get install build-essential cmake python-dev #编译YCM自动补全插件依赖
      sudo apt-get install silversearcher-ag

      # centos
      sudo yum install python-devel.x86_64
      sudo yum groupinstall 'Development Tools'
      sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
      sudo yum install the_silver_searcher
      sudo yum install cmake

      # mac
      brew install ctags
      brew install the_silver_searcher
    • 如果需要vim对Python进行支持

      1
      2
      3
      sudo pip install pyflakes
      sudo pip install pylint
      sudo pip install pep8
    • 如果需要vim对JavaScript进行支持

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      # 安装jshint和jslint,用于javascript语法检查
      # 需要nodejs支持,各个系统安装见文档 https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

      # ubuntu
      sudo apt-get install nodejs npm
      sudo npm install -g jslint
      sudo npm install jshint -g

      # mac
      brew install node
      npm install jshint -g
      npm install jslint -g
  3. 安装

    1
    2
    3
    4
    5
    6
    7
    进入目录, 执行安装
    # 注意原先装过的童鞋, 重装时,不要到~/.vim下执行(这是软连接指向k-vim真是目录),必须到k-vim原生目录执行
    # 会进入安装插件的列表,一安装是从github clone的,完全取决于网速, 之后会自动编译 YCM, 编译失败的话需要手动编译, 有问题见YCM文档
    # 如果发现有插件安装失败 可以进入vim, 执行`:PlugInstall'

    cd k-vim/
    sh -x install.sh
  4. 管理插件

    1
    2
    3
    4
    5
    :PlugInstall     install                      安装插件
    :PlugUpdate install or update 更新插件
    :PlugClean remove plugin not in list 删除本地无用插件
    :PlugUpgrade Upgrade vim-plug itself 升级本身
    :PlugStatus Check the status of plugins 查看插件状态
  5. 自定义快捷键

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    注意, 以下 ',' 代表<leader>
    1. 可以自己修改vimrc中配置,决定是否开启鼠标

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

    2. 退出vim后,内容显示在终端屏幕, 可以用于查看和复制, 如果不需要可以关掉
    好处:误删什么的,如果以前屏幕打开,可以找回....惨痛的经历

    set t_ti= t_te=

    3. 可以自己修改vimrc决定是否使用方向键进行上下左右移动,默认关闭,强迫自己用 hjkl,可以注解
    hjkl 上下左右

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

    4. 上排F功能键

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

    F9 tagbar
    F10 运行当前文件(quickrun)

    5. 分屏移动

    ctrl + j/k/h/l 进行上下左右窗口跳转,不需要ctrl+w+jkhl

    6. 搜索
    <space> 空格,进入搜索状态
    / 同上
    ,/ 去除匹配高亮

    (交换了#/* 号键功能, 更符合直觉, 其实是离左手更近)
    # 正向查找光标下的词
    * 反向查找光标下的词

    优化搜索保证结果在屏幕中间

    7. tab操作
    ctrl+t 新建一个tab

    (hjkl)
    ,th 切第1个tab
    ,tl 切最后一个tab
    ,tj 下一个tab
    ,tk 前一个tab

    ,tn 下一个tab(next)
    ,tp 前一个tab(previous)

    ,td 关闭tab
    ,te tabedit
    ,tm tabm

    ,1 切第1个tab
    ,2 切第2个tab
    ...
    ,9 切第9个tab
    ,0 切最后一个tab

    ,tt 最近使用两个tab之间切换
    (可修改配置位 ctrl+o, 但是ctrl+o/i为系统光标相关快捷键, 故不采用)

    8. buffer操作(不建议, 建议使用ctrlspace插件来操作)
    [b 前一个buffer
    ]b 后一个buffer
    <- 前一个buffer
    -> 后一个buffer


    9. 按键修改
    Y =y$ 复制到行尾
    U =Ctrl-r
    ,sa select all,全选
    ,v 选中段落
    kj 代替<Esc>,不用到角落去按esc了

    ,q :q,退出vim
    ,w :w, 保存当前文件

    ctrl+n 相对/绝对行号切换
    <enter> normal模式下回车选中当前项

    更多细节优化:
    1. j/k 对于换行展示移动更友好
    2. HL 修改成 ^$, 更方便在同行移动
    3. ; 修改成 : ,一键进入命令行模式,不需要按shift
    4. 命令行模式 ctrl+a/e 到开始结尾
    5. <和> 代码缩进后自动再次选中, 方便连续多次缩进, esc退出
    6. 对py文件,保存自动去行尾空白,打开自动加行首代码
    7. 'w!!'强制保存, 即使readonly
    8. 去掉错误输入提示
    9. 交换\`和', '能跳转到准确行列位置
    10. python/ruby 等, 保存时自动去行尾空白
    11. 统一所有分屏打开的操作位v/s[nerdtree/ctrlspace] (特殊ctrlp ctrl+v/x)
    12. ',zz' 代码折叠toggle
    13. python使用"""添加docstring会自动补全三引号
    14. Python使用#进行注释时, 自动缩进
  6. 修改主题:修改文件.vimrc

    1
    colorscheme molokai

    更详细使用说明请查看项目主页 - wklken/k-vim

0%