vim进阶学习及相关配置&插件
先学习vim原生快捷键及相关命令,之后再添加插件。(用到时记录,暂时会比较乱,不定期整理)
PS: ctrl+s 表示停止向终端停止输出; ctrl+q 恢复向终端输出流。 使用各种快捷键可能误按到ctrl+s,此时按键窗口无反应,使用ctrl+q恢复。
- 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无效)
- 部分操作
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) '. 回到上个修改点, `.回到上个修改行 - 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:这里并不是安装教学的一个教程,只是做一个介绍,要安装的话请搜索相关的文章,有相应的教程。

浙公网安备 33010602011771号