1. 程式人生 > >Vim - 常用配置

Vim - 常用配置

tab arr 未使用 pre 常用快捷鍵 ren 水平 方法 plugins

基本配置

不用任何插件的情況下,先按如下配置:

set nu
syntax on
set hlsearch

set tabstop=4
set shiftwidth=4
set expandtab
set smartcase
set ic

colorscheme srcery-drk

Vundle

Vundle是Vim的插件管理器,像NeoBundle也是基於Vundle實現。
雖然Vim插件可以獨立安裝,但如果換了臺機器,使用Vundle只需要copy一份.vimrc即可。

安裝方法並不復雜,先clone到~/.vim目錄下:

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

在~/.vimrc頭部加上以下內容:

set nocompatible
filetype off

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin ‘VundleVim/Vundle.vim‘
Plugin ‘tpope/vim-fugitive‘
Plugin ‘git://git.wincent.com/command-t.git‘
Plugin ‘file:///home/gmarik/path/to/plugin‘
Plugin ‘rstacruz/sparkup‘, {‘rtp‘: ‘vim/‘}

call vundle#end()            " required
filetype plugin indent on    " required

保存,在vim裏執行PluginInstall,等過程執行結束即可。
或者在命令行執行以下命令也是相同的效果:

vim +PluginInstall +qall

查看幫助:

:h vundle

在~/.vimrc聲明插件,例如:

Plugin ‘scrooloose/nerdtree‘
lugin ‘shougo/vimshell.vim‘

基本命令:

" :PluginList       - 列出所有插件
" :PluginInstall    - 安裝插件
" :PluginInstall!    - 更新插件
" :PluginSearch foo - 搜索foo插件
" :PluginClean      - 移除未使用插件

NerdTree

目錄樹插件,沒了這個

前提安裝了Vundle,在~/.vimrc聲明了NerdTree:

Plugin ‘scrooloose/nerdtree‘

在vim中執行以下命令即可完成安裝:

:source %
:PluginInstall

我的NerdTree配置如下:

" ============ NERDTree ============
" open NERDTree by default
autocmd vimenter * NERDTree

" synchronize NERDTree with current opened file
autocmd BufEnter * lcd %:p:h

" open NERDTree automatically when vim starts up if no files were specified
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

" open NERDTree automatically when vim starts up on opening a directory
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe ‘NERDTree‘ argv()[0] | wincmd p | ene | endif

" open NERDTree with Ctrl+n
map <C-n> :NERDTreeToggle<CR>

" view the current buffer in NERDTree
map <leader>r :NERDTreeFind<cr>
" close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

" change arrows
let g:NERDTreeDirArrowExpandable = ‘?‘
let g:NERDTreeDirArrowCollapsible = ‘?‘

" show hidden files by default
let NERDTreeShowHidden=1

NerdTree的常用快捷鍵:

快捷鍵說明
? 查看幫助
m 呼出菜單,對當前目錄進行操作
r 刷新目錄
F 顯示、隱藏隱藏文件
A 目錄樹切全屏
go 打開文件,光標停留在目錄樹上
i|gi 水平打開窗口
s|gs 垂直打開窗口
ctrl+w+h|j|k|l 方向鍵選擇窗口
ctrl+w+w 切窗口
t|T 在tab打開窗口
gt|gT 切tab


如果用git,有個NerdTree的擴展插件,可以在目錄樹中顯示文件的git status。
安裝仍然是通過Vundle,插件聲明如下:

Plugin ‘Xuyuanp/nerdtree-git-plugin‘

TagBar

個人閱讀代碼時,如果IDE打開的是另一個工程,一般不會將工程導入IDE再讀,而是用Vim讀代碼。
只是跳轉到變量或者函數的功能只是通過gD的話,跳轉的位置並不是很準確。

TagBar可以生成文件中的變量、函數列表。

用Vundle安裝,在~/.vimrc加上以下聲明:

Plugin ‘majutsushi/tagbar‘

保存,執行:PluginsInstall,等待過程結束。

個人使用的配置如下:

let g:tagbar_width = 30
nmap <F10> :TagbarToggle<CR>
let g:tagbar_autopreview = 1
let g:tagbar_sort = 0

source配置文件後,重新進入vim,按下F10呼出TagBar。

macOS可能出現以下提示:

Tagbar: Ctags doesn‘t seem to be Exuberant Ctags!

TagBar依賴Exuberant Ctags 5.5,這種情況brew install ctags後重新進入vim即可。

Vim - 常用配置