VIMRC配置
syntax on
" 配置代理
"let $http_proxy='http://127.0.0.1:7890'
"let $https_proxy='https://127.0.0.1:7890'
" 开启文件类型侦测
filetype on
" 根据侦测到的不同类型加载对应的插件
filetype plugin on
" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
set rtp+=~/.fzf
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'junegunn/fzf.vim'
Plugin 'morhetz/gruvbox'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'Yggdroot/indentLine'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'mattesgroeger/vim-bookmarks'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/dfrankutil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'scrooloose/nerdcommenter'
Plugin 'vim-scripts/drawit'
Plugin 'sirver/ultisnips'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'lokaltog/vim-easymotion'
" 插件列表结束
call vundle#end()
" 快捷键
" 定义快捷键的前缀,即<leader>
let mapleader="\\"
" 代码折叠
nnoremap <leader><space> za
" 高亮代码开关
nnoremap <leader>hl :set hlsearch!<CR>
" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <leader>p "+p
" 定义快捷键到行首和行尾
nmap lb 0
nmap le $
nmap <leader>q :q<CR>
" 定义快捷键保存当前窗口内容
nmap <leader>w :w<CR>
" 定义快捷键保存所有窗口内容并退出 vim
nmap <leader>wqa :wa<CR>:q<CR>
" 不做任何保存,直接退出 vim
nmap <leader>qa :qa!<CR>
" 定义快捷键在结对符之间跳转
nmap <leader>m %
" vim-bookmarks 配置
nnoremap <leader>mi <Plug>BookmarkAnnotate
nnoremap <leader>ma <Plug>BookmarkShowAll
nnoremap <leader>mn <Plug>BookmarkNext
nnoremap <leader>mp <Plug>BookmarkPrev
" gitgutter 配置
nnoremap <leader>gd :GitGutterDiff<CR>
nnoremap <leader>ge :GitGutterEnable<CR>
nnoremap <leader>gx :GitGutterDisable<CR>
nnoremap <leader>gt :GitGutterToggle<CR>
" 增大当前窗口的高度
nnoremap <leader>+ :resize +15<CR>
nnoremap <leader>- :resize -15<CR>
nnoremap <leader>> :vertical resize +15<CR>
nnoremap <leader>< :vertical resize -15<CR>
" 设置 Tagbar 快捷键
nnoremap <leader>tt :TagbarToggle<CR>
" 确保打开 Tagbar 后聚焦到 Tagbar 窗口
" nerdtree
nnoremap <silent> <leader>nt :NERDTreeToggle<CR>
nnoremap <silent> <leader>nf :NERDTreeFocus<CR>
" ctrlP
" 快速文件搜索
nnoremap <C-p> :CtrlP<CR>
" 主题
set background=dark
colorscheme gruvbox
" autocmd
" 让配置变更立即生效
autocmd bufwritepost $MYVIMRC source $MYVIMRC
" 自动保存折叠状态到一个文件
autocmd BufWinLeave * if !&diff | mkview | endif
" 自动从保存的文件恢复折叠状态
autocmd BufWinEnter * if !&diff | silent! loadview | endif
" set
" 开启实时搜索功能
set incsearch
" 搜索时大小写不敏感
set ignorecase
" 关闭兼容模式
set nocompatible
" vim 自身命令行模式智能补全
set wildmenu
" 设置backspace
set backspace=indent,eol,start
" 设置相对行号
set relativenumber
set number
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
" airline 配置
set laststatus=2
" 设置 NERDTree 窗口宽度
let g:NERDTreeWinSize = 30
" 防止 NERDTree 窗口宽度自动调整
autocmd VimResized * if &filetype == 'nerdtree' | wincmd = | endif
let g:bookmark_auto_close = 1
let g:bookmark_highlight_lines = 1
"let g:bookmark_no_default_key_mappings = 1
" 自定义 gitgutter 标记
let g:gitgutter_sign_added = '+'
let g:gitgutter_sign_modified = '~'
let g:gitgutter_sign_removed = '-'
" airline字体配置
let g:airline_powerline_fonts = 1
let g:airline_theme = 'gruvbox'
" airline table line
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline#extensions#tabline#buffer_nr_show = 1
" indent line
let g:indentLine_enabled = 1
filetype plugin indent on
NERDTree
NerdTree 窗口的键盘快捷键:
A: 最大化或最小化 NerdTree 窗口。
C: 将根路径更改为选定的目录。
u: 将根路径设置为当前根路径的父目录。
U: 和 u 一样,但保留当前根路径。
cd: 将 Vim 的当前目录更改为选定的目录。
I: 显示/隐藏隐藏文件(如 .gitignore、.bashrc 等)。
f: 开启/关闭文件过滤。
B: 显示/隐藏书签。
q: 关闭 NerdTree 窗口。
K: 将光标移至当前目录的第一个子项。
J: 将光标移至当前目录的最后一个子项。
l 或 <CR>: 对文件进行打开操作,对目录进行扩展或收缩操作。
v: 在新垂直窗口中打开文件。
gi: 在新的水平分割窗口中打开文件,但保持焦点在 NerdTree 上。
gs: 在新的垂直分割窗口中打开文件,但保持焦点在 NerdTree 上。
t: 在新标签中打开文件。
T: 在新标签中打开文件,但保持焦点在当前标签页上。
P: 跳转到当前节点的根节点。
gh: 将根路径更改为 $HOME。
go: 打开文件,但不跳到该窗口。
gi: 水平分割方式打开选定文件,但不跳转到该窗口。
gs: 垂直分割方式打开选定文件,但不跳转到该窗口。
发表回复