vim插件快速配置使用(自己的vim插件配置)

将下面的内容,粘贴到~/.vimrc文件中,在按照使用方法来安装和配置即可。

let g:mapleader = ","

"""""""""""""""""""""""""""""""""""""
"basis settingd                     "
"""""""""""""""""""""""""""""""""""""
"high-light
syntax enable
syntax on
set nocp
set ru
"support mouse move and select
set mouse=a
"the space number of tab-key is 4
set tabstop=4
"next line keep with former line
set autoindent
"show line in col 80
"set cc=80:
set shiftwidth=4
"check file-type
filetype on
"show the row and line of mouse
set ruler
"undo file
set undofile
set undodir=$HOME/.vim/undodir
"
set showmatch
"show line number
set number
"show result for search when input one character
set incsearch
"ignore low-high case for search
set smartcase
set list
set listchars=tab:>-,trail:-
" 
set paste
set smartindent
set matchtime=5
set cindent
" high-light show this col and row
set cursorline
"set cursorcolumn
" high-light search
set hlsearch
"tab convert to space
set expandtab
"show cmd
set showcmd
"prohibit generate swap=file
set nobackup
set noswapfile
" no high-light
nmap <F2> :noh<cr>
" support 256 colors
set t_Co=256
""""""""""""""""""""""""""""""""""""""
"quick-print                         "
""""""""""""""""""""""""""""""""""""""
function PRINT()
    call append(line("."), "fflush(stdout);")
    call append(line("."), "printf(\"[%s],[%d]\\n\",__FUNCTION__,__LINE__);")
endfunction
map <F8> : call PRINT() <cr>

""""""""""""""""""""""""""""""""""""""
"winmanger setting                   "
""""""""""""""""""""""""""""""""""""""
" wm :map winmanager
nmap wm :WMToggle<cr>
let g:winManagerWindowLayout='FileExplorer'

""""""""""""""""""""""""""""""""""""""
"ctags settings                "
""""""""""""""""""""""""""""""""""""""
"loading ctags-file path
"tg :map open or close taglist
nmap tg :TlistToggle<Cr>
"nmap to :TlistOpen<cr>
"tc :map close taglist
"nmap tc :TlistClose<cr>
"ctags bin patch
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
"auto open taglist 1--auto  0--manual
let Tlist_Auto_Open=1
"taglist direction 0--right 1--left
let Tlist_Use_Right_Window = 0
"""""""""""""""""""""""""""""""""""""""
"cscpoe setting                       "
"""""""""""""""""""""""""""""""""""""""
"loading cscpoe.out
if has("cscope")
	set csprg=/usr/bin/cscope
	set csto=0
	set cst
	set nocsverb
	if filereadable("cscope.out")
		cs add cscope.out
	else
		let cscope_file=findfile("cscope.out",".;")
		let cscope_pre=matchstr(cscope_file,".*/")
		if !empty(cscope_file) && filereadable(cscope_file)
			exe "cs add" cscope_file cscope_pre
		endif
	endif
	set csverb
endif
"maping quick-key
"css :find this C symbol
nmap css :cs find s <C-R>=expand("<cword>")<CR><CR>	
"csg :find this function defination
nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>	
"csc :find the function where be called
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>	
"cst :find this string
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>	
nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>	
"csf :find this file
nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>	
"csi :find this file which file include
nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
"csd :find function call which function
nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>

"""""""""""""""""""""""""""""""""""""""""""
" nerd-tree settings                      "
"""""""""""""""""""""""""""""""""""""""""""
" auto  open nerd-tree
autocmd VimEnter * NERDTree
" nt open/close nerdtree
nmap nt :NERDTreeToggle<cr>
" the direction of nerd-tree
let NERDTreeWinPos="right"
" show bookmarks
let NERDTreeShowBookmarks=1
" auto close nerd-tree when only alive nerd-tree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" set nerd-tree show pic
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
" show nerd-tree line number
"let g:NERDTreeShowLineNumbers=1
" dont show hidden file
let g:NERDTreeHidden=0
"Making it prettier
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1

"""""""""""""""""""""""""""""""""""""""""
" neocomplete settings                  "
"""""""""""""""""""""""""""""""""""""""""
"Note: This option must be set in .vimrc(_vimrc).  NOT IN .gvimrc(_gvimrc)!
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplete#sources#syntax#min_keyword_length = 3

" Define dictionary.
let g:neocomplete#sources#dictionary#dictionaries = {
    \ 'default' : '',
    \ 'vimshell' : $HOME.'/.vimshell_hist',
    \ 'scheme' : $HOME.'/.gosh_completions'
        \ }

" Define keyword.
if !exists('g:neocomplete#keyword_patterns')
    let g:neocomplete#keyword_patterns = {}
endif
let g:neocomplete#keyword_patterns['default'] = '\h\w*'

" Plugin key-mappings.
inoremap <expr><C-g>     neocomplete#undo_completion()
inoremap <expr><C-l>     neocomplete#complete_common_string()

" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()
  return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"
  " For no inserting <CR> key.
  "return pumvisible() ? "\<C-y>" : "\<CR>"
endfunction
" <TAB>: completion.
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
" Close popup by <Space>.
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>"

" AutoComplPop like behavior.
"let g:neocomplete#enable_auto_select = 1

" Shell like behavior(not recommended).
"set completeopt+=longest
"let g:neocomplete#enable_auto_select = 1
"let g:neocomplete#disable_auto_complete = 1
"inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"

" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags

" Enable heavy omni completion.
if !exists('g:neocomplete#sources#omni#input_patterns')
  let g:neocomplete#sources#omni#input_patterns = {}
endif
"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
"let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'

" For perlomni.vim setting.
" https://github.com/c9s/perlomni.vim
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'

""""""""""""""""""""""""""""""""""""""""""
" rainbow settings                       "
""""""""""""""""""""""""""""""""""""""""""
"auto open rainbow
let g:rainbow_active = 1
" type
let g:rainbow_conf = {
\   'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
\   'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\   'operators': '_,\|+\|-_',
\   'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
\   'separately': {
\       '*': {},
\       'tex': {
\           'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'],
\       },
\       'css': 0,
\   }
\}

"""""""""""""""""""""""""""""""""""""""""""
" nerd-commenter                          "
"""""""""""""""""""""""""""""""""""""""""""
let g:NERDSpaceDelims = 1
let g:NERDDefaultAlign = 'left'
let g:NERDToggleCheckAllLines = 1

"""""""""""""""""""""""""""""""""""""""""""
" minbufferexploer                        "
"""""""""""""""""""""""""""""""""""""""""""
let g:miniBufExplMapWindowNavVim =1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1

"""""""""""""""""""""""""""""""""""""""""""
" theme                                   "
"""""""""""""""""""""""""""""""""""""""""""
"colorscheme molokai
"colorscheme solarized
colorscheme gruvbox
set background=dark
let g:molokai_original = 1
let g:rehash256 = 1

"""""""""""""""""""""""""""""""""""""""""""
" interestingword settings                "
"""""""""""""""""""""""""""""""""""""""""""
nnoremap <silent> <leader>k :call InterestingWords('n')<cr>
nnoremap <silent> <leader>K :call UncolorAllWords()<cr>
nnoremap <silent> n :call WordNavigation(1)<cr>
nnoremap <silent> N :call WordNavigation(0)<cr>
"let g:interestingWordsGUIColors = ['#8CCBEA', '#A4E57E', '#FFDB72', '#FF7272', '#FFB3FF', '#9999FF']
let g:interestingWordsTermColors = ['154', '121', '211', '137', '214', '222']

"""""""""""""""""""""""""""""""""""""""""""
" LeaderF                                 "
"""""""""""""""""""""""""""""""""""""""""""
" let g:Lf_ShortcutF = '<C-P>'
" let g:Lf_WindowPosition = 'popup'
" let g:Lf_PreviewInPopup = 1

"""""""""""""""""""""""""""""""""""""""""""
"CtrlP                                    "
"""""""""""""""""""""""""""""""""""""""""""
let g:ctrlp_map = '<c-p>'
let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_switch_buffer = 'et'
let g:ctrlp_match_window = 'bottom,order:btt,min:1,max:10,results:10'

"""""""""""""""""""""""""""""""""""""""""""
" vim-airline                             "
"""""""""""""""""""""""""""""""""""""""""""
language messages zh_CN.utf-8
set encoding=utf-8
set langmenu=zh_CN.UTF-8
set helplang=cn
set ambiwidth=double
let laststatus = 2
let g:airline_powerline_fonts = 1
let g:airline_theme="dark"
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#buffer_nr_show = 1

"""""""""""""""""""""""""""""""""""""""""""
"syntastic                                "
"""""""""""""""""""""""""""""""""""""""""""
" let g:syntastic_enable_signs = 1
" let g:syntastic_error_symbol='✗'
" let g:syntastic_warning_symbol='►'
" let g:syntastic_always_populate_loc_list = 1
" let g:syntastic_auto_loc_list = 1
" let g:syntastic_loc_list_height = 5
" let g:syntastic_check_on_open = 1
" let g:syntastic_auto_jump = 1
" let g:syntastic_check_on_wq = 0
" let g:syntastic_enable_highlighting=1
" let g:syntastic_cpp_checkers = ['gcc']
" let g:syntastic_cpp_compiler = 'gcc'
" let g:syntastic_cpp_compiler_options = '-std=c++11'
" let g:syntastic_python_checkers = ['pyflakes']
" function! <SID>LocationPrevious()                       
"   try                                                   
"     lprev                                               
"   catch /^Vim\%((\a\+)\)\=:E553/                        
"     llast                                               
"   endtry                                                
" endfunction                                             
" function! <SID>LocationNext()                           
"   try                                                   
"     lnext                                               
"   catch /^Vim\%((\a\+)\)\=:E553/                        
"     lfirst                                              
"   endtry                                                
" endfunction                                             
" nnoremap <silent> <Plug>LocationPrevious    :<C-u>exe 'call <SID>LocationPrevious()'<CR>                                        
" nnoremap <silent> <Plug>LocationNext        :<C-u>exe 'call <SID>LocationNext()'<CR>
" nmap <silent> sp    <Plug>LocationPrevious              
" nmap <silent> sn    <Plug>LocationNext
" nnoremap <silent> <Leader>ec :SyntasticToggleMode<CR>
" function! ToggleErrors()
"     let old_last_winnr = winnr('$')
"     lclose
"     if old_last_winnr == winnr('$')
"         " Nothing was closed, open syntastic error location panel
"         Errors
"     endif
" endfunction
"""""""""""""""""""""""""""""""""""""""""""
" vim-plug settings and install           "
"""""""""""""""""""""""""""""""""""""""""""
"manager plug
call plug#begin('~/.vim/plugged')
Plug 'mhinz/vim-startify'
" YouCompleteMe
"Plug 'Valloric/YouCompleteMe'
" nerd-tree
Plug 'scrooloose/nerdtree'
" code release
Plug 'scrooloose/nerdcommenter'
" rainbow
Plug 'luochen1990/rainbow'
" fzf
"Plug 'junegunn/fzf'
"Plug '/usr/local/opt/fzf'
"Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
"Plug 'junegunn/fzf.vim'
" neoconplete
" Plug 'Shougo/neocomplete'
" wimmanager
Plug 'vim-scripts/winmanager'
" ctags
Plug 'esukram/vim-taglist'
" minibufexploer
Plug 'fholgado/minibufexpl.vim'
" molokai theme
"Plug 'tomasr/molokai'
" solarized theme
"Plug 'altercation/vim-colors-solarized'
" gruvbox theme
Plug 'morhetz/gruvbox'
" 
"Plug 'vim-airline/vim-airline-themes'
" mark char
"Plug 'mbriggs/mark.vim'
" high-light interestwaords
Plug 'lfv89/vim-interestingwords'
" neocpmplete
Plug 'shougo/neocomplete.vim'

" Plug 'Yggdroot/LeaderF', { 'do': ':LeaderfInstallCExtension' }
Plug 'ctrlpvim/ctrlp.vim'
" vim-airline"
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
"syntastic"
" Plug 'scrooloose/syntastic'
call plug#end()

说明

1. 插件管理插件安装和使用(vim-plug)

(要是没有curl可以下载安装一下)
sudo apt-get install curl
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
sudo ~/.vimrc
call plug#begin('~/.vim/plugged')
" 安装的插件
call plug#end()

vim-plug相关命令

1.PlugStatus(显示当前所有插件的状态)
2.PlugInstall(显示插件安装过程)
3.PlugUpdate
4.PlugClean
5.....

推荐一个插件网站,里面很多插件,并且告诉如何通过vim-plug进行安装和配置:vimawesome

在使用PlugInstall的时候,可能由于各种原因,下载很缓慢或者直接下载失败,我一般都是一个一个插件下载,先把其他插件注释掉,然后下载成功了一个之后,再下载另外一个,下载失败后多尝试几次就可以了。
PlugStatus
PlugInstall

2.插件使用方法

vim_show

图中标注3个信息栏位:

  • 文件信息栏:用于显示当前文件定义的函数名,宏之类的。用鼠标双击可以直接到函数的位置。是由插件taglist控制的。通过按键“tg”打开和关闭这个栏位,默认是打开的。
  • 目录栏:用于显示打开当前文件是路径下文件夹和文件名,可以通过双击打开文件和进入文件夹。由插件nerdtree控制的。通过按键“nt”打开和关闭这个栏位,默认是打开的。
  • 文件状态栏:显示当前文件状态,比如总行数之类的,是由插件vim-airline控制的。

其他的一些功能:

  • 高亮显示选中的字符:通过按键“,k”(注意是逗号)来显示和关闭高亮。高亮后乐意通过‘n’向后查找高亮的字符,通过‘N’向前查找高亮的字符。

  • 注释code:通过按键“,cs”来注释掉选中的代码或者当前行。通过按键“,cu”来撤销注释选中的代码或者当前行。

  • 跳转:在平时看代码的时候,需要跳转到函数定义的地方。使用按键CTRL+}跳转到函数定义的地方,CTRL+T跳转会上一层。

  • 搜索:看代码时,希望搜索某个函数或者变量在哪里被调用或者使用。使用快捷键csc来查看某个函数被调用的地方,使用快捷键cst可以看当前项目使用该函数(包括函数声明)或者变量的地方。

其中跳转和搜索都是基于项目的并且需要考cscope来实现,下面需要安装和配置一下

sudo apt-get update
sudo apt-get install cscope
  
在项目代码目录下执行
cscope -Rbq
执行cscope会产生三个文件,重要的是cscope.out

按照上述配置之后跳转和搜索功能就可以正常使用了。但是有个问题是,因为平时不仅仅会看代码,还会进行修改,cscope.out的信息是不会变的,所以会导致跳转和搜索后,跳转的位置不多或者有差别。因此需要手动把cscope.*文件删除,再手动执行cscope -Rbq重新生成一下cscope文件。生成了cscope文件之后,我们可以在项目下通过vim -t <function_name>,直接跳转到该函数的位置。

如果不习惯用文件定义的跳转和搜索快捷键的,可以自己修改下面列出来的nmap后面的即可

"csc :find the function where be called
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>	
"cst :find this string
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>	
  • 代码补全:在INSERT模式下,打出若干个字符后按CTRL+p就可以显示提示,根据需要选择即可。除了这一条命令需要在INSERT模式下使用,其他命令都需要在命令模式下才有效。
  • 文件搜索:在当前路径下搜索并打开文件。在命令模式下按CTRL+p,即可搜索。
文件信息栏	: tg
目录栏		 :nt
高亮        :,k   n   N
注释        :,cs
取消注释     :,cu
跳转        : CTR+}
搜索        : csc cst
代码补全    :(INSERT mode) CTRL+p
文件搜索    :(COMMAND mode) CTRL+p

3.主题

" molokai theme
"Plug 'tomasr/molokai'
" solarized theme
"Plug 'altercation/vim-colors-solarized'
" gruvbox theme
Plug 'morhetz/gruvbox'

目前这里有三个主题,个人习惯gruvbox。喜欢其他两个的可以打开注释,把另外两个注释掉,然后PlugInstall就可以了。

4.额外的

按u可以撤销上次修改,撤销内容放在了$HOME/.vim/undodir,如果没有undodir需要手动建一下。
F8可以直接打印(因为是做C开发的)
printf(“[%s],[%d]\n”,__FUNCTION__,__LINE__);
fflush(stdout);

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值