vim进阶学习及相关配置&插件

  先学习vim原生快捷键及相关命令,之后再添加插件。(用到时记录,暂时会比较乱,不定期整理)

PS: ctrl+s 表示停止向终端停止输出; ctrl+q 恢复向终端输出流。 使用各种快捷键可能误按到ctrl+s,此时按键窗口无反应,使用ctrl+q恢复。

  1. vim自动补全:

    vi/vim使用进阶: 自动补全(ctrl+x ctrl+相关键,个人感觉主要用:n当前文件关键字,f文件名,l整行,d宏定义)

    (http://easwy.com/blog/archives/advanced-vim-skills-auto-complete/  PS: 拼写建议:ctrl+x ctrl+s无效)

  2. 部分操作

    1) 多文件编辑
    vi 多个, :e
    :ls, :b编号,bn(buffer next), :rew, :args, :f(ctrl+g), ctrl+^两文件切换, :行数 r 文件名
    :bd 要删除的缓冲区编号

    2) cc cw 0行首 $行尾
    ^行首, H,M,L屏幕的行首、中间、行尾
    ctrl+f 往下翻屏, ctrl+b 往上翻屏

    3) K光标标志字段的man帮助页

    4) 分割窗口
    :split , ctrl+w命令 组合j,k, 关闭:close 某分窗
    :vsp 左右分窗 ctrl+w,组合h,l
    ctrl+w+w 依次切换

    5) 在另一个标签中打开文件
    :tabedit , gt切换

    6) '. 回到上个修改点, `.回到上个修改行

  3. vim配置和插件
  • 键盘映射

    vim自身的功能就很强大,如上vim本身的快捷键(写了一小部分)就可以实现分窗、标签、补全等功能,但有些功能调用的组合键比较麻烦,可以进行键盘的映射。

  例如: nnoremap <c-l> <c-w>l ,表示按住Ctrl后按l就会切到右边的窗口(前提是有右边的窗口,用 :vsp 来新建竖直方向的窗口)

  

<Esc>代表Escape键;<CR>或<cr>代表Enter键;C/c代表Ctrl键;S代表Shift键;A代表Alt键;
对于组合键,可以用<C-l>代表Ctrl-l;使用<S-F1>表示Shift-F1。mac下<D>代表Command键。

  在~/.vimrc中使用map进行映射,然后map有多种前缀:

    1)nore 表示非递归

    2)n 表示普通模式下生效

    3)v 表示在可视模式下生效

    4)i 表示在插入模式下生效

    5)c 表示在命令行模式下生效

  需要映射在插入模式下生效就使用 imap,可视模式下生效就使用 vmap,unmap接按键(或组合)表示删除映射

关于按键映射的模式,也有很多介绍的文章。参考vim的几种模式和按键映射 http://haoxiang.org/2011/09/vim-modes-and-mappin/

  • vim插件

   github上面有不少大神给出了自己的vim配置,有详细的步骤。我就是用的大神套装,一个个插件还要慢慢消化。

套装dot-vimrc https://github.com/humiaozuzu/dot-vimrc 大神用的是mac,有些对D(command键)的映射可以去掉。不习惯看英文的话搜索这个项目名,也有别人写的的中文步骤。

   整个配置里面包括了很多插件,功能大致有:文件目录浏览、生成导航、文件查找、撤销修改记录树、状态提示栏、语法检查、自动补全(代码/代码块)、快速注释、快速跳转等等,还有些小功能也挺实用的,像行尾空格处理,建议安装好后各个插件去查一下,知道大致功能,然后在使用中渐渐熟悉,摸索定制出一套让自己最舒适的插件集。下面列出大致的几个插件效果。

  下面是bundles.vim文件,插件的一个大致说明(删除了一些自己不用的插件)

  1 set nocompatible               " be iMproved
  2 filetype off                   " required!
  3 
  4 set rtp+=~/.vim/bundle/vundle/
  5 call vundle#rc()
  6 
  7 " let Vundle manage Vundle
  8 " required!
  9 Bundle 'gmarik/vundle'
 10 
 11 "------------------
 12 " Code Completions
 13 "------------------
 14 "该插件维护了当前buffer的一个关键词列表
 15 Bundle 'Shougo/neocomplcache'
 16 "符号自动补全,退到匹配符号后面未解决
 17 Bundle 'Raimondi/delimitMate'
 18 "显示列表后,按tab可进行循环选择
 19 Bundle 'ervandew/supertab'
 20 " snippets 自动补全代码块,未解决用法
 21 Bundle 'garbas/vim-snipmate'
 22 Bundle 'honza/vim-snippets'
 23 "------ snipmate dependencies -------
 24 Bundle 'MarcWeber/vim-addon-mw-utils'
 25 Bundle 'tomtom/tlib_vim'
 26 
 27 "-----------------
 28 " Fast navigation
 29 "-----------------
 30 "html标签匹配与高亮
 31 Bundle 'edsono/vim-matchit'
 32 "快速跳转 行级,搜索,前后用法
 33 Bundle 'Lokaltog/vim-easymotion'
 34 
 35 "--------------
 36 " Fast editing
 37 "--------------
 38 "用来处理成对的包围符号,替换 修改 删除 添加
 39 Bundle 'tpope/vim-surround'
 40 "快速注释
 41 Bundle 'scrooloose/nerdcommenter'
 42 "撤销,记录树
 43 Bundle 'sjl/gundo.vim'
 44 "文本对齐
 45 Bundle 'godlygeek/tabular'
 46 "显示缩进 :Tab /=/格式
 47 Bundle 'nathanaelkane/vim-indent-guides'
 48 
 49 "--------------
 50 " IDE features
 51 "--------------
 52 "文件浏览器
 53 Bundle 'scrooloose/nerdtree'
 54 "管理buffer
 55 Bundle 'jeetsukumaran/vim-buffergator'
 56 "管理会话,记录退出前的会话,未尝试
 57 Bundle 'vim-scripts/sessionman.vim'
 58 "多行编辑
 59 Bundle 'terryma/vim-multiple-cursors'
 60 "生成导航 包含函数,宏定义,类等
 61 Bundle 'majutsushi/tagbar'
 62 "代码搜索
 63 Bundle 'mileszs/ack.vim'
 64 "文件查找 支持模糊查询
 65 Bundle 'kien/ctrlp.vim'
 66 "vim中进行版本管理 git支持
 67 Bundle 'tpope/vim-fugitive'
 68 "状态提示栏
 69 Bundle 'Lokaltog/vim-powerline'
 70 "语法检查
 71 Bundle 'scrooloose/syntastic'
 72 "行尾空格处理,可以一键去除文件中所有行行尾空格
 73 Bundle 'bronson/vim-trailing-whitespace'
 74 
 75 "-------------
 76 " Other Utils
 77 "-------------
 78 "Fcitx 输入法自动切换,普通模式始终是英文,未使用fcitx输入法
 79 Bundle 'humiaozuzu/fcitx-status'
 80 "允许vim鼠标操作
 81 Bundle 'nvie/vim-togglemouse'
 82 
 83 "----------------------------------------
 84 " Syntax/Indent for language enhancement
 85 "----------------------------------------
 86 "------- web backend ---------
 87 Bundle '2072/PHP-Indenting-for-VIm'
 88 
 89 "------- web frontend ----------
 90 Bundle 'othree/html5.vim'
 91 Bundle 'pangloss/vim-javascript'
 92 Bundle 'kchmck/vim-coffee-script'
 93 Bundle 'nono/jquery.vim'
 94 
 95 "--------------
 96 " Color Schemes
 97 "--------------
 98 Bundle 'rickharris/vim-blackboard'
 99 Bundle 'altercation/vim-colors-solarized'
100 Bundle 'rickharris/vim-monokai'
101 Bundle 'tpope/vim-vividchalk'
102 Bundle 'Lokaltog/vim-distinguished'
103 Bundle 'chriskempson/vim-tomorrow-theme'
104 Bundle 'fisadev/fisa-vim-colorscheme'
105 
106 filetype plugin indent on     " required!

PS:这里并不是安装教学的一个教程,只是做一个介绍,要安装的话请搜索相关的文章,有相应的教程。

posted @ 2016-03-13 12:44  xdargs  阅读(1276)  评论(0)    收藏  举报