Skip to content

Instantly share code, notes, and snippets.

@Nanguage
Created November 23, 2016 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nanguage/032eff105ec4e981c2d588e91558b360 to your computer and use it in GitHub Desktop.
Save Nanguage/032eff105ec4e981c2d588e91558b360 to your computer and use it in GitHub Desktop.
"Personal setting
" -----------------------------------------------------------------------------------
" 开启行号显示
set nu
" 开启自动缩进
set ai
" 自适应不同语言的智能缩进
filetype indent on
" 将制表符扩展为空格
set expandtab
" 设置编辑时制表符占用空格数
set tabstop=4
" 设置格式化时制表符占用空格数
set shiftwidth=4
" 让 vim 把连续数量的空格视为一个制表符
set softtabstop=4
" 开启实时搜索功能
set incsearch
" 搜索时大小写不敏感
set ignorecase
" 关闭兼容模式
set nocompatible
" vim 自身命令行模式智能补全
set wildmenu
" 基于缩进或语法进行代码折叠
set foldmethod=indent
"set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
" 开启文件类型侦测
filetype on
" 根据侦测到的不同类型加载对应的插件
filetype plugin on
" 让配置变更立即生效 .vimrc保存时自动生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC
" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on
" fix backspace problem
set backspace=indent,eol,start
" Vundle
"
"
"
" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'derekwyatt/vim-fswitch'
"Plugin 'kshenoy/vim-signature'
" Plugin 'vim-scripts/BOOKMARKS—Mark-and-Highlight-Full-Lines'
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 'Valloric/YouCompleteMe'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
"Plugin 'suan/vim-instant-markdown'
Plugin 'lilydjwg/fcitx.vim'
Plugin 'szw/vim-tags'
Plugin 'isnowfy/python-vim-instant-markdown'
Plugin 'jiangmiao/auto-pairs'
Plugin 'kovisoft/slimv'
"Plugin 'vim-scripts/slimv.vim'
Plugin 'iamcco/dict.vim'
" 插件列表结束
call vundle#end()
filetype plugin indent on
"
"
"
"
" 定义快捷键的前缀,即<Leader>
let mapleader=";"
" 定义快捷键到行首和行尾
nmap LB 0
nmap LE $
" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <Leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p
" 定义快捷键关闭当前分割窗口
nmap <Leader>q :q<CR>
" 定义快捷键保存当前窗口内容
nmap <Leader>w :w<CR>
" 定义快捷键保存所有窗口内容并退出 vim
nmap <Leader>WQ :wa<CR>:q<CR>
" 不做任何保存,直接退出 vim
nmap <Leader>Q :qa!<CR>
" 依次遍历子窗口
nnoremap nw <C-W><C-W>
" " 跳转至右方的窗口
nnoremap <Leader>lw <C-W>l
" 跳转至左方的窗口
nnoremap <Leader>hw <C-W>h
" 跳转至上方的子窗口
nnoremap <Leader>kw <C-W>k
" 跳转至下方的子窗口
nnoremap <Leader>jw <C-W>j
" 定义快捷键在结对符之间跳转
nmap <Leader>M %
" 行末
nmap <Leader>e $
" 行首非空
nmap <Leader>b ^
" 自动加括号
nmap <leader>( bdei(<Esc>p
nmap <leader>[ bdei[<Esc>p
nmap <leader>{ bdei{<Esc>p
nmap <leader>' bdei'<Esc>p
nmap <leader>" bdei"<Esc>p
" 自动加;
nmap <leader>c A;<Esc>
" Caps Ctrl
" NERDTree
"
"
" 启动时打开NERDTree
"autocmd VimEnter * NERDTree
"wincmd w
"autocmd VimEnter * wincmd w
" 使用 NERDTree 插件查看工程文件。设置快捷键,速记:file list
nmap <Leader>nt :NERDTreeToggle<CR>
" 设置NERDTree子窗口宽度
let NERDTreeWinSize=24
" 设置NERDTree子窗口位置
let NERDTreeWinPos="left"
" 显示隐藏文件
let NERDTreeShowHidden=1
" NERDTree 子窗口中不显示冗余帮助信息
"let NERDTreeMinimalUI=1
" 删除文件时自动删除文件对应 buffer
let NERDTreeAutoDeleteBuffer=1
"
"
"
" fix YCM bug
set completeopt-=preview
" Ultisnips
"
" Track the engine.
" Plugin 'SirVer/ultisnips'
" Snippets are separated from the engine. Add this if you want them:
Plugin 'honza/vim-snippets'
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
let g:UltiSnipsExpandTrigger="<c-j>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"
" Indent Guide
"
"
"
" 随 vim 自启动
"let g:indent_guides_enable_on_vim_startup=1
" 从第二层开始可视化显示缩进
let g:indent_guides_start_level=3
" 色块宽度
let g:indent_guides_guide_size=1
" 快捷键 i 开/关缩进可视化
:nmap <silent> <Leader>i <Plug>IndentGuidesToggle
" tagbar
"
"
" 打开vim时启动tagbar
"autocmd VimEnter * nested TagbarOpen
" 设置 tagbar 子窗口的位置出现在主编辑区的左边
let tagbar_right=1
" 设置显示/隐藏标签列表子窗口的快捷键。速记:identifier list by tag
nnoremap <Leader>tb :TagbarToggle<CR>
" 设置标签子窗口的宽度
let tagbar_width=24
" tagbar 子窗口中不显示冗余帮助信息
"let g:tagbar_compact=1
" 设置 ctags 对哪些代码标识符生成标签
let g:tagbar_type_cpp = {
\ 'kinds' : [
\ 'c:classes:0:1',
\ 'd:macros:0:1',
\ 'e:enumerators:0:0',
\ 'f:functions:0:1',
\ 'g:enumeration:0:1',
\ 'l:local:0:1',
\ 'm:members:0:1',
\ 'n:namespaces:0:1',
\ 'p:functions_prototypes:0:1',
\ 's:structs:0:1',
\ 't:typedefs:0:1',
\ 'u:unions:0:1',
\ 'v:global:0:1',
\ 'x:external:0:1'
\ ],
\ 'sro' : '::',
\ 'kind2scope' : {
\ 'g' : 'enum',
\ 'n' : 'namespace',
\ 'c' : 'class',
\ 's' : 'struct',
\ 'u' : 'union'
\ },
\ 'scope2kind' : {
\ 'enum' : 'g',
\ 'namespace' : 'n',
\ 'class' : 'c',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
\ }
" Markdown
autocmd BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} map <Leader>m :!google-chrome-stable "%:p"<CR>
" quick remove
vmap qq y:%s`<C-R>"``g<left><left>
" slimv
"let g:slimv_swank_cmd = '! gnome-terminal -e sbcl --load /usr/share/common-lisp/source/slime/start-swank.lisp &'
let g:slimv_swank_cmd = '! tmux new-window -d -n REPL-SBCL "sbcl --load ~/.vim/bundle/slimv/slime/start-swank.lisp"'
" youdao dict
let g:api_key = "971933658"
let g:keyfrom = "vim-youdao"
nmap <silent> <Leader>d <Plug>DictSearch
"--普通模式下,<Leader>d 即可翻译光标下的文本,并在命令行回显
vmap <silent> <Leader>d <Plug>DictVSearch
"--可视化模式下,<Leader>d 即可翻译选中的文本,并在命令行回显
nmap <silent> <Leader>dw <Plug>DictWSearch
"--普通模式下,<Leader>w 即可翻译光标下的文本,并且在Dict新窗口显示
vmap <silent> <Leader>dw <Plug>DictWVSearch
"--可视化模式下,<Leader>w 即可翻译选中的文本,并且在Dict新窗口显示
nmap <silent> <Leader><Leader>r <Plug>DictRSearch
"--普通模式下,<Leader><Leader>r 即可翻译光标下的单词,并替换为翻译的结果
vmap <silent> <Leader><Leader>r <Plug>DictRVSearch
"--可视化模式下,<Leader><Leader>r 即可翻译光标下的单词,并替换为翻译的结果
"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment