Skip to content

thawk/dotvim

Repository files navigation

dotvim

个人使用的vim配置文件。本文档主要描述配置文件的安装和更新方法。

安装

  1. 从github.com上clone到本地

    • Linux下

      git clone --recursive https://github.com/thawk/dotvim.git ~/.vim
    • Windows下使用TortoiseGit工具

      在资源管理器上,右键菜单中,选择Git clone...,记得选中Recursive选项,这样就可以把NeoBundle.vim也一并安装好。

      Note
      在Windows下,clone到\~/vimfiles会比clone到~/.vim更加方便。
  2. 让vim使用我们的配置文件

    vim缺省会使用\~/.vimrc(Windows下使用~/_vimrc)配置文件。由于该文件在git管理的范围外,不方便管理,因此可以将通过该文件来调用真正的配置文件(\~/.vim/vimrc或~/vimfiles/vimrc):

    • Linux下

      运行bootstrap.sh,将会建立~/.vimrc,并且会建立~/.vimrc.local文件

    • Windows下

      建立~/_vimrc,内容如下:

      runtime vimrc

      把vimrc.local.sample拷贝一份到~下,改名为vimrc.local

    • 如果vim目录不放在\~/.vimrc或\~/vimfiles,需要设置runtimepath路径,如

      set runtimepath^=d:/vimconfig
      set runtimepath+=d:/vimconfig/after
      source d:/vimconfig/vimrc
  3. 运行vim程序,在vim中运行下面的命令以安装其余插件:

    :NeoBundleInstall

    由于插件数量比较多,因此可能需要较长的时间。

  4. 至此,所有配置均已完成,可以开始体验vim了。

插件选择

本配置中的插件按用途进行了分组,并可以通过vimrc.local文件进行启用及禁用。

缺省禁用了与开发相关的一些插件,可以按需要选择性启用。

配置升级

本配置会不定期进行维护、改进,需要的话可以通过下面的步骤更新vim配置文件:

  1. 更新基本vim配置

    vim的基本配置和所要安装的插件信息都存放在vimrc文件中,因此需要先进行更新,再更新其余的插件。

    • Linux下在~/.vim下运行git pull即可。

    • Windows下可以在~/vimfiles目录上右键,选择Git Pull...进行更新。

  2. 清理不再使用的插件

    可以通过注释vimrc中以NeoBundle开头的行来达到禁用插件的目的。被禁用的插件不会被vim载入,但还会保留在硬盘上。如果需要的话,可以在vim中运行下面的命令以从硬盘中删除被禁用的插件:

    :NeoBundleClean
  3. 升级已有插件,安装新插件

    可以在vim中运行下面的命令,升级已有插件(会同时安装缺失的插件):

    :NeoBundleUpdate

    由于上面的命令会检查所有已安装插件的更新情况,可能需要比较长的时间。如果只想安装缺失的插件,不想更新已有插件,可以运行下面的命令:

    :NeoBundleInstall

快捷键

参照 spacemacs 风格进行快捷键设置,将快捷键按功能分组而不是按插件分组,更便于记忆。

Note
<Leader><Space>。可以在~/.vimrc.local中通过g:dotvim_user_settings.mapleader进行修改。

搜索和符号查找 <Space>s

Table 1. CtrlSF
快捷键 用途 所属插件

<Space>sfp

项目目录下CtrlSF

ctrlsf.vim

<Space>sfP

项目目录下CtrlSF当前词

ctrlsf.vim

<Space>sff

当前文件目录下CtrlSF

ctrlsf.vim

<Space>sfF

当前文件目录下CtrlSF当前词

ctrlsf.vim

<Space>sfb

当前目录下CtrlSF

ctrlsf.vim

<Space>sfB

当前目录下CtrlSF当前词

ctrlsf.vim

Table 2. Grep
快捷键 用途 所属插件

<Space>/

在项目目录下进行搜索

ack.vim

<Space>sp

项目目录下进行搜索

ack.vim

<Space>sP

项目目录下进行搜索当前词

ack.vim

<Space>sf

当前文件目录下进行搜索

ack.vim

<Space>sF

当前文件目录下进行搜索当前词

ack.vim

<Space>sb

当前目录下进行搜索

ack.vim

<Space>sB

当前目录下进行搜索当前词

ack.vim

<Space>ss

在当前文件中查找

unite.vim

<Space>sS

在当前文件中查找当前词

unite.vim

Table 3. Symbol
快捷键 用途 所属插件

<Space>s]

根据上下文进行跳转到定义或引用

unite-gtags/jedi.vim

<Space>sr

跳转到引用

unite-gtags/jedi.vim

<Space>sR

跳转到当前词的引用

unite-gtags/jedi.vim

<Space>sd

跳转到定义

unite-gtags/jedi.vim

<Space>sD

跳转到当前词的定义

unite-gtags/jedi.vim

<Space>s/

列出当前文件中的符号

unite-gtags

Table 4. 其他
快捷键 用途 所属插件

<Space>sc

:set nohlsearch

内置

文档和帮助 <Space>h

快捷键 用途 所属插件

<Space>hdb

describe bindings

unite.vim

<Space>hdc

显示当前字符的Unicode名称

unicode.vim

<Space>hdf

列出所有vim函数

unite.vim

<Space>hdv

列出所有vim变量

unite.vim

<Space>h<Space>

查找帮助

unite-help

<Space>hm

查找man pages

vim-ref

<Space>hM

查找man pages(当前word)

vim-ref

<Space>ha

用apropos查找man pages

unite-apropos

<Space>hA

用apropos查找man pages(当前word)

unite-apropos

Resume/Rename/Registers <Space>r

快捷键 用途 所属插件

<Space>rl

重新打开最近的Unite窗口

unite.vim

<Space>rr

将光标下的符号改名

jedi.vim

<Space>rm

列出register

unite.vim

<Space>ry

列出kill-ring

neoyank.vim

项目 <Space>p

快捷键 用途 所属插件

<Space>pf

在项目目录下找文件

unite.vim

<Space>pd

在项目目录下打开文件浏览器

dirvish

<Space>pg

找项目中的tag

unite-gtags

<Space>p<C-g>

更新tags

gtags.vim

<Space>pc

编译构建

vim-dispatch

<Space>pC

Clean

vim-dispatch

<Space>pT

执行测试

vim-dispatch

<Space>ps

make stage

vim-dispatch

文件 <Space>f

快捷键 用途 所属插件

<Space>fb

打开书签

unite.vim

<Space>fd

在当前文件目录打开文件浏览器

dirvish

<Space>ff

在当前文件目录找文件

unite.vim

<Space>fs

保存当前文件

内置

<Space>fS

保存所有文件

内置

<Space>fr

打开recent文件

neomru.vim

<Space>fy

显示当前文件的全路径

内置

<Space>fo

打开文件的大纲

unite-outline

<Space>fO

打开文件的Folding

unite-fold

<Space>fp

查找项目中的路径和文件名

unite-gtags

<Space>fP

查找项目中匹配当前词的路径和文件名

unite-gtags

缓冲区 <Space>b

快捷键 用途 所属插件

<Space>bb

选择并切换缓冲区

unite.vim

<Space>bd

删除当前缓冲区

内置

<Space>bn

打开下一缓冲区(:bnext)

内置

<Space>bp

打开上一缓冲区(:bprevious)

内置

<Space>bR

重新载入当前文件(:e)

内置

<Space>bs

打开或切换到scratch

scratch.vim

<Space>bt

在当前目录打开目录树

scratch.vim

<Space>bw

切换只读状态

内置

<Space>b数字

切换到指定编号的缓冲区

内置

调试 <Space>d

快捷键 用途 所属插件

<Space>db

设置/切换断点

Conque-GDB

<Space>dd

删除断点

Conque-GDB

<Space>dc

继续运行,Continue

Conque-GDB

<Space>dr

开始运行,Run

Conque-GDB

<Space>dn

单步步过,Next

Conque-GDB

<Space>ds

单步进入,Step

Conque-GDB

<Space>dp

打印,Print

Conque-GDB

<Space>df

执行到返回,Finish

Conque-GDB

<Space>dt

打印堆栈,Backtrace

Conque-GDB

编译 <Space>c

快捷键 用途 所属插件

<Space>cc

编译

<Space>cl

注释选中行

<Space>c+动作

注释。如<Space>cip注释一个段落

文本Text相关 <Space>x

Table 5. 对齐
快捷键 用途 所属插件

选中文字后<CR>

交互式对齐文本

vim-easy-align

<Space>xa+动作

交互式对齐文本

vim-easy-align

<Space>xad

对齐C++的变量声明

vim-easy-align

<Space>xa=

对齐包含等号的操作符,如=、>=、!=之类

vim-easy-align

<Space>xa:

对齐冒号

vim-easy-align

<Space>xa.

对齐句点

vim-easy-align

<Space>xa,

对齐所有逗号

vim-easy-align

<Space>xa&

对齐Latex表格

vim-easy-align

<Space>xa#

对齐#

vim-easy-align

<Space>xa"

对齐"

vim-easy-align

<Space>xa{

对齐左大括号

vim-easy-align

<Space>xa}

对齐右大括号

vim-easy-align

<Space>xa/

对齐多种注释

vim-easy-align

<Space>xa|

对齐所有表格线(|)

vim-easy-align

<Space>xa<Space>

对齐所有空白字符

vim-easy-align

Table 6. 其它
<Space>xdw 删除行尾空白字符 内置

插入内容 <Space>i

快捷键 用途 所属插件

<Space>iu

搜索并插入Unicode字符

unite-unicode

<Space>is

选择追加snippets

ultisnips

<Space>iS

选择插入snippets

ultisnips

切换开关 <Space>t

快捷键 用途 所属插件

<Space>ti

切换高亮显示indentation guide

indentLine

<Space>tw

切换高亮显示行尾空白字符

vim-airline

<Space>tn

切换显示行号

内置

<Space>tr

切换相对行号

内置

<Space>tha

切换高亮当前词

内置

<Space>ts

选择colorscheme

unite-colorscheme

<Space>tt

切换Tagbar

tagbar

<Space>tT

在Tagbar中显示当前符号

tagbar

窗口 <Space>w

快捷键 用途 所属插件

<Space><Tab>

当前窗口切换为上一buffer

内置

<Space>ww

切换到下一个窗口

内置

<Space>wc

关闭当前窗口

内置

<Space>wo

只保留当前窗口

内置

<Space>数字

切换到指定编号的窗口

内置

错误处理 <Space>e

快捷键 用途 所属插件

<Space>eo

打开quickfix

内置

<Space>el

打开location

内置

<Space>en

下一个错误

内置

<Space>ep

上一个错误

内置

版本控制git/svn <Space>g

快捷键 用途 所属插件

<Space>ga

加入文件(VCAdd)

vc.vim

<Space>gb

查看每行的最后修改人(VCBlame)

vc.vim

<Space>gc

提交(VCCommit)

vc.vim

<Space>gd

列出修改点(VCDiff)

vc.vim

<Space>gD

列出修改点(VCDiff!)

vc.vim

<Space>gh

文件历史(VCLog)

vc.vim

<Space>gi

文件历史(VCInfo)

vc.vim

<Space>gi

查看文件信息(VCInfo)

vc.vim

<Space>gs

查看整个库的状态(VCStatus)

vc.vim

<Space>gsp

同<Space>gs

vc.vim

<Space>gsb

查看当前目录的状态(VCStatus .)

vc.vim

<Space>gsq

(SVN)查看有哪些变化的文件(VCStatus -qu)

vc.vim

<Space>gsu

(SVN)查看有哪些可以update的文件(VCStatus -u)

vc.vim

退出 <Space>q

快捷键 用途 所属插件

<Space>qq

退出Vim(:qa)

内置

<Space>qQ

退出Vim(:qa!,放弃所有修改)

内置

<Space>qs

并退出Vim(:xa,保存所有文件)

内置

跳转 <Space>j

快捷键 用途 所属插件

<Space>jd

在当前窗口打开文件浏览器

dirvish

<Space>jl

<Plug>(easymotion-bd-jk)

vim-easymotion

<Space>jw

<Plug>(easymotion-s2)

vim-easymotion

<Space>j=

格式化选区或整个buffer

clang-format

代码跳转 <Space>mg

快捷键 用途 所属插件

<Space>mga

在.h和.cpp间切换

vim-fswitch

<Space>mgA

在.h和.cpp间切换(新窗口)

vim-fswitch

REPL <Space>ms

小写保持焦点在当前缓冲区,大写切换到REPL窗口。

快捷键 用途 所属插件

<Space>msb

发送整个缓冲区

slimux

<Space>msl

发送当前行

slimux

<Space>msr

发送选中内容

slimux

<Space>msq

关闭

slimux

<Space>mse

重复上一次

slimux

Unite <Space>u

快捷键 用途 所属插件

<Space>ur

打开或关闭Unite窗口

unite.vim

<Space>uc

打开或关闭Unite窗口

unite.vim

<Space>up

跳到Unite窗口的上一项

unite.vim

<Space>un

跳到Unite窗口的下一项

unite.vim

<Space>us

列出所有Unite的源

unite.vim

<Space>um

列出message

unite.vim

其它

快捷键 用途 所属插件

<Space>?

列出可用的按键绑定

unite.vim

<Space>au

UndotreeToggle

undotree

<Space>j=

格式化整个文件(mzgg=G`z)

内置

<Space><Space>数字

切换到指定编号的Tab页

内置

About

My vim configuration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published