2023年8月27日
VIMRC
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 offset rtp+=~/.vim/bundle/Vundle.vimset 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" 设置快捷键将系统剪贴板内容粘贴至 vimnmap <leader>p "+p" 定义快捷键到行首和行尾nmap lb 0nmap le $
nmap <leader>q :q<CR>" 定义快捷键保存当前窗口内容nmap <leader>w :w<CR>" 定义快捷键保存所有窗口内容并退出 vimnmap <leader>wqa :wa<CR>:q<CR>" 不做任何保存,直接退出 vimnmap <leader>qa :qa!<CR>" 定义快捷键在结对符之间跳转nmap <leader>m %" vim-bookmarks 配置nnoremap <leader>mi <Plug>BookmarkAnnotatennoremap <leader>ma <Plug>BookmarkShowAllnnoremap <leader>mn <Plug>BookmarkNextnnoremap <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 窗口
" nerdtreennoremap <silent> <leader>nt :NERDTreeToggle<CR>nnoremap <silent> <leader>nf :NERDTreeFocus<CR>" ctrlP" 快速文件搜索nnoremap <C-p> :CtrlP<CR>
" 主题set background=darkcolorscheme 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" 设置backspaceset backspace=indent,eol,start" 设置相对行号set relativenumberset numberset tabstop=4set softtabstop=4set shiftwidth=4set expandtab
" airline 配置set laststatus=2
" 设置 NERDTree 窗口宽度let g:NERDTreeWinSize = 30" 防止 NERDTree 窗口宽度自动调整autocmd VimResized * if &filetype == 'nerdtree' | wincmd = | endif
let g:bookmark_auto_close = 1let 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 = 1let g:airline_theme = 'gruvbox'
" airline table linelet g:airline#extensions#tabline#enabled = 1let g:airline#extensions#tabline#formatter = 'default'let g:airline#extensions#tabline#buffer_nr_show = 1" indent linelet g:indentLine_enabled = 1
filetype plugin indent onNERDTree
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: 垂直分割方式打开选定文件,但不跳转到该窗口。