[vim] reorganize conf files
This commit is contained in:
parent
27f8bca29a
commit
7be02219d4
63
.vim/plugin/WhatFunction.vim
Normal file
63
.vim/plugin/WhatFunction.vim
Normal file
@ -0,0 +1,63 @@
|
||||
" Display current function in status bar
|
||||
"
|
||||
" Use WhatFunction could create some problems with lines longer that the
|
||||
" screen size. WhatFunction could be interesting for C++ function
|
||||
function! GetProtoLine()
|
||||
let ret = ""
|
||||
let line_save = line(".")
|
||||
let col_save = col(".")
|
||||
let top = line_save - winline() + 1
|
||||
let so_save = &so
|
||||
let &so = 0
|
||||
let istypedef = 0
|
||||
" find closing brace
|
||||
let closing_lnum = search('^}','cW')
|
||||
if closing_lnum > 0
|
||||
if getline(line(".")) =~ '\w\s*;\s*$'
|
||||
let istypedef = 1
|
||||
let closingline = getline(".")
|
||||
endif
|
||||
" go to the opening brace
|
||||
normal! %
|
||||
" if the start position is between the two braces
|
||||
if line(".") <= line_save
|
||||
if istypedef
|
||||
let ret = matchstr(closingline, '\w\+\s*;')
|
||||
else
|
||||
" find a line contains function name
|
||||
let lnum = search('^\w','bcnW')
|
||||
if lnum > 0
|
||||
let ret = getline(lnum)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
" restore position and screen line
|
||||
exe "normal! " . top . "Gz\<CR>"
|
||||
call cursor(line_save, col_save)
|
||||
let &so = so_save
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function! WhatFunction()
|
||||
if &ft != "c" && &ft != "cpp"
|
||||
return ""
|
||||
endif
|
||||
let proto = GetProtoLine()
|
||||
if proto == ""
|
||||
return "?"
|
||||
endif
|
||||
if stridx(proto, '(') > 0
|
||||
let ret = matchstr(proto, '\w\+(\@=')
|
||||
elseif proto =~# '\<struct\>'
|
||||
let ret = matchstr(proto, 'struct\s\+\w\+')
|
||||
elseif proto =~# '\<class\>'
|
||||
let ret = matchstr(proto, 'class\s\+\w\+')
|
||||
else
|
||||
let ret = strpart(proto, 0, 15) . "..."
|
||||
endif
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
" set statusline=%<%f\ %h%w%m%r%3.(\ %)%{fugitive#statusline()}%=%([%{Tlist_Get_Tagname_By_Line()}%{WhatFunction()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
|
1078
.vim/plugin/cctree.vim
Normal file
1078
.vim/plugin/cctree.vim
Normal file
File diff suppressed because it is too large
Load Diff
130
.vim/plugin/cscope.vim
Normal file
130
.vim/plugin/cscope.vim
Normal file
@ -0,0 +1,130 @@
|
||||
|
||||
" if compiled with --enable-cscope
|
||||
if has("cscope")
|
||||
" use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t'
|
||||
set cscopetag
|
||||
" use ctags before cscope
|
||||
set csto=0
|
||||
" add any cscope database in current directory
|
||||
if filereadable("cscope.out")
|
||||
cscope add cscope.out
|
||||
endif
|
||||
" add the database pointed by environment variable.
|
||||
" Cscope file added from db should contains full path to file. Otherwise they
|
||||
" should be added with cscope add PATH_TO_CSCOPE_FILE PATH_TO_SRC_ROOT
|
||||
if $CSCOPE_DB != ""
|
||||
if filereadable($CSCOPE_DB)
|
||||
cscope add $CSCOPE_DB
|
||||
endif
|
||||
endif
|
||||
" show message when any other cscope db added
|
||||
set cscopeverbose
|
||||
" open include file with F4 and split with shift+F4
|
||||
nmap <F4> :cscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <S-F4> :scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
" find this C symbol with F5 and split with shift+F5
|
||||
nmap <F5> :cscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F5> :scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to definition with F6 and split with shift+F6 and use ctags with alt+shift+F6
|
||||
nmap <F6> :cscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F6> :scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <M-S-F6> :tag <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to calls with F7 and split with shift+F7
|
||||
nmap <F7> :cscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F7> :scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to ... with 'ctrl+s letter' and go back with ctrl+t
|
||||
nmap <C-s>s :cscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>g :cscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>c :cscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>t :cscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>e :cscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>f :cscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-s>i :cscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-s>d :cscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" split to ... with 'ctrl+space letter'
|
||||
nmap <C-@>s :scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>g :scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>c :scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>t :scscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>e :scscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>f :scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-@>i :scscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-@>d :scscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" vertical split to ... with 'ctrl+space ctrl+space letter'
|
||||
nmap <C-@><C-@>s :vertical scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>g :vertical scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>c :vertical scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>t :vertical scscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>e :vertical scscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>f :vertical scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-@><C-@>i :vertical scscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-@><C-@>d :vertical scscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" s symbol find all references to the token under cursor
|
||||
" //find this C symbol
|
||||
" g global find global definition of the token under cursor
|
||||
" //find this definition
|
||||
" c calls find all calls to the function name under cursor
|
||||
" //find function calling this function
|
||||
" d called find functions that function under cursor calls
|
||||
" //find function called by this function
|
||||
" t text find all instances of the text under cursor
|
||||
" //find this text string
|
||||
" e egrep egrep search for the word under cursor
|
||||
" //find this egrep pattern
|
||||
" f file open the filename under cursor
|
||||
" //find this file
|
||||
" i includes find files that include the filename under cursor
|
||||
" //find files #including this file
|
||||
|
||||
|
||||
function! GetCscopeDb(pathname)
|
||||
if !isdirectory(a:pathname) || a:pathname == $HOME || a:pathname == '/'
|
||||
return
|
||||
endif
|
||||
|
||||
let l:has_link = 0
|
||||
let l:tag_found = 0
|
||||
if resolve(a:pathname) != a:pathname
|
||||
let l:has_link = 1
|
||||
endif
|
||||
|
||||
let s:cscopefile = $HOME."/.vim/cscope/".substitute(a:pathname, '/', '_', 'g').".cscope"
|
||||
if filereadable(s:cscopefile)
|
||||
execute "cscope add ".s:cscopefile
|
||||
let l:tag_found = 1
|
||||
endif
|
||||
|
||||
if l:tag_found == 0 && l:has_link == 1
|
||||
let s:cscopefile = $HOME."/.vim/cscope/".substitute(resolve(a:pathname), '/', '_', 'g').".cscope"
|
||||
if filereadable(s:cscopefile)
|
||||
execute "cscope add ".s:cscopefile
|
||||
let l:tag_found = 1
|
||||
endif
|
||||
endif
|
||||
|
||||
unlet s:cscopefile
|
||||
|
||||
call GetCscopeDb(fnamemodify(a:pathname, ":h"))
|
||||
endfunction
|
||||
|
||||
function! GenerateCscopeDb()
|
||||
let path = input('Create cscope db for: ', getcwd(), 'dir')
|
||||
|
||||
echohl WarningMsg
|
||||
echo "Please wait, generating cscope db..."
|
||||
|
||||
let file = tempname()
|
||||
let cscopefile = $HOME."/.vim/cscope/".substitute(path, '/', '_', 'g').".cscope"
|
||||
call system("cd ".path."; find . -name '*.c' -or -name '*.h' > ".file."; cscope -b -i ".file." -f ".cscopefile)
|
||||
call delete(file)
|
||||
|
||||
redraw
|
||||
echo "Please wait, generating cscope db... Done"
|
||||
echohl None
|
||||
|
||||
call GetCscopeDb(path)
|
||||
endfunction
|
||||
command! GenerateCscopeDb :call GenerateCscopeDb()
|
||||
|
||||
|
||||
endif
|
@ -1,170 +0,0 @@
|
||||
" Author: Eric Van Dewoestine
|
||||
"
|
||||
" Description: {{{
|
||||
" Plugin which bootstraps the eclim environment.
|
||||
"
|
||||
" License:
|
||||
"
|
||||
" Copyright (C) 2005 - 2009 Eric Van Dewoestine
|
||||
"
|
||||
" This program is free software: you can redistribute it and/or modify
|
||||
" it under the terms of the GNU General Public License as published by
|
||||
" the Free Software Foundation, either version 3 of the License, or
|
||||
" (at your option) any later version.
|
||||
"
|
||||
" This program is distributed in the hope that it will be useful,
|
||||
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
" GNU General Public License for more details.
|
||||
"
|
||||
" You should have received a copy of the GNU General Public License
|
||||
" along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"
|
||||
" }}}
|
||||
|
||||
" Command Declarations {{{
|
||||
if !exists(":EclimValidate")
|
||||
command EclimValidate :call <SID>Validate()
|
||||
endif
|
||||
" }}}
|
||||
|
||||
" Validate() {{{
|
||||
" Validates some settings and environment values required by eclim.
|
||||
" NOTE: don't add command-line continuation characters anywhere in the
|
||||
" function, just in case the user has &compatible set.
|
||||
function! s:Validate()
|
||||
" Check vim version.
|
||||
if v:version < 700
|
||||
let ver = strpart(v:version, 0, 1) . '.' . strpart(v:version, 2)
|
||||
echom "Error: Your vim version is " . ver . "."
|
||||
echom " Eclim requires version 7.x.x"
|
||||
return
|
||||
endif
|
||||
|
||||
let errors = []
|
||||
|
||||
" Check 'compatible' option.
|
||||
if &compatible
|
||||
call add(errors, "Error: You have 'compatible' set:")
|
||||
call add(errors, " Eclim requires 'set nocompatible' in your vimrc.")
|
||||
call add(errors, " Type \":help 'compatible'\" for more details.")
|
||||
endif
|
||||
|
||||
" Check filetype support
|
||||
redir => ftsupport
|
||||
silent filetype
|
||||
redir END
|
||||
let ftsupport = substitute(ftsupport, '\n', '', 'g')
|
||||
if ftsupport !~ 'detection:ON' || ftsupport !~ 'plugin:ON'
|
||||
echo " "
|
||||
let chose = 0
|
||||
while string(chose) !~ '1\|2'
|
||||
redraw
|
||||
echo "Filetype plugin support looks to be disabled, but due to possible"
|
||||
echo "language differences, please check the following line manually."
|
||||
echo " " . ftsupport
|
||||
echo "Does it have detection and plugin 'ON'?"
|
||||
echo "1) Yes"
|
||||
echo "2) No"
|
||||
let chose = input("Please Choose (1 or 2): ")
|
||||
endwhile
|
||||
if chose != 1
|
||||
call add(errors, "Error: Eclim requires filetype plugins to be enabled.")
|
||||
call add(errors, " Please add 'filetype plugin indent on' to your vimrc.")
|
||||
call add(errors, " Type \":help filetype-plugin-on\" for more details.")
|
||||
endif
|
||||
endif
|
||||
|
||||
" Print the results.
|
||||
redraw
|
||||
echohl Statement
|
||||
if len(errors) == 0
|
||||
echom "Result: OK, required settings are valid."
|
||||
else
|
||||
for error in errors
|
||||
echom error
|
||||
endfor
|
||||
endif
|
||||
echohl None
|
||||
endfunction " }}}
|
||||
|
||||
" exit early if unsupported vim version, compatible is set, or eclim is
|
||||
" disabled.
|
||||
if v:version < 700 || &compatible || exists("g:EclimDisabled")
|
||||
finish
|
||||
endif
|
||||
|
||||
" EclimBaseDir() {{{
|
||||
" Gets the base directory where the eclim vim scripts are located.
|
||||
function! EclimBaseDir()
|
||||
if !exists("g:EclimBaseDir")
|
||||
let savewig = &wildignore
|
||||
set wildignore=""
|
||||
let file = findfile('plugin/eclim.vim', escape(&runtimepath, ' '))
|
||||
let &wildignore = savewig
|
||||
|
||||
if file == ''
|
||||
echoe 'Unable to determine eclim basedir. ' .
|
||||
\ 'Please report this issue on the eclim user mailing list.'
|
||||
let g:EclimBaseDir = ''
|
||||
return g:EclimBaseDir
|
||||
endif
|
||||
let basedir = substitute(fnamemodify(file, ':p:h:h'), '\', '/', 'g')
|
||||
|
||||
let g:EclimBaseDir = escape(basedir, ' ')
|
||||
endif
|
||||
|
||||
return g:EclimBaseDir
|
||||
endfunction " }}}
|
||||
|
||||
" Init() {{{
|
||||
" Initializes eclim.
|
||||
function! s:Init()
|
||||
" on windows, this eclim plugin gets called first, so force taglist to be
|
||||
" called prior.
|
||||
runtime! plugin/taglist.vim
|
||||
|
||||
" add eclim dir to runtime path.
|
||||
let basedir = EclimBaseDir()
|
||||
if basedir == ''
|
||||
return
|
||||
endif
|
||||
|
||||
exec 'set runtimepath+=' .
|
||||
\ basedir . '/eclim,' .
|
||||
\ basedir . '/eclim/after'
|
||||
|
||||
" Alternate version which inserts the eclim path just after the currently
|
||||
" executing runtime path element and puts the eclim/after path at the very
|
||||
" end.
|
||||
"let paths = split(&rtp, ',')
|
||||
"let index = 0
|
||||
"for path in paths
|
||||
" let index += 1
|
||||
" if tolower(path) == tolower(basedir)
|
||||
" break
|
||||
" endif
|
||||
"endfor
|
||||
|
||||
"let tail = paths[index :]
|
||||
|
||||
"for path in tail
|
||||
" exec 'set runtimepath-=' . escape(path, ' ')
|
||||
"endfor
|
||||
|
||||
"exec 'set runtimepath+=' . basedir . '/eclim'
|
||||
|
||||
"for path in tail
|
||||
" exec 'set runtimepath+=' . escape(path, ' ')
|
||||
"endfor
|
||||
|
||||
"exec 'set runtimepath+=' . basedir . '/eclim/after'
|
||||
|
||||
" need to be manually sourced
|
||||
runtime! eclim/plugin/*.vim
|
||||
runtime! eclim/after/plugin/*.vim
|
||||
endfunction " }}}
|
||||
|
||||
call <SID>Init()
|
||||
|
||||
" vim:ft=vim:fdm=marker
|
BIN
.vim/plugin/indent_finder.pyc
Normal file
BIN
.vim/plugin/indent_finder.pyc
Normal file
Binary file not shown.
@ -1,10 +1,10 @@
|
||||
|
||||
" Done in .vimrc
|
||||
augroup IndentFinder
|
||||
au! IndentFinder
|
||||
au BufRead *.* let b:indent_finder_result = system('python2 -c "import indent_finder; indent_finder.main()" --vim-output "' . expand('%') . '"' )
|
||||
au BufRead *.* execute b:indent_finder_result
|
||||
|
||||
" Uncomment the next line to see which indentation is applied on all your loaded files
|
||||
" au BufRead *.* echo "Indent Finder: " . b:indent_finder_result
|
||||
"
|
||||
" " Uncomment the next line to see which indentation is applied on all your loaded files
|
||||
" " au BufRead *.* echo "Indent Finder: " . b:indent_finder_result
|
||||
augroup End
|
||||
|
||||
|
30
.vim/plugin/language.vim
Normal file
30
.vim/plugin/language.vim
Normal file
@ -0,0 +1,30 @@
|
||||
"""""""""""""""""""""""""""""""""""""""""""
|
||||
" Language
|
||||
"""""""""""""""""""""""""""""""""""""""""""
|
||||
" Using dictd
|
||||
function! Translate()
|
||||
let word = expand("<cword>")
|
||||
let output = system("echo -n $(dict -d eng-fra -f " .word. " 2> /dev/null | tail -n +3 | head -n -1 | sed '1s/$/:/;2,$s/$/;/')")
|
||||
if output != ""
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
echohl WarningMsg
|
||||
echo "No translation found"
|
||||
echohl None
|
||||
endif
|
||||
endfunction
|
||||
"default Leader is \
|
||||
nnoremap <silent> <Leader>t :call Translate()<cr>
|
||||
|
||||
" to enable spellchecking :set spell"
|
||||
" c.f. :help spell
|
||||
" ]s search next misspelled
|
||||
" [s search previous misspelled
|
||||
" z= suggestion
|
||||
" trad files should be under /usr/share/vim/vimfiles/spell
|
||||
" or .vim/spell
|
||||
" they can be download at http://ftp.vim.org/vim/runtime/spell/
|
||||
set spell spelllang=en
|
||||
set nospell
|
98
.vim/plugin/mycolor.vim
Normal file
98
.vim/plugin/mycolor.vim
Normal file
@ -0,0 +1,98 @@
|
||||
"""""""""""
|
||||
" DISPLAY "
|
||||
"""""""""""
|
||||
" color palette
|
||||
set t_Co=256
|
||||
" syntax highlighting when the terminal has colors
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
syntax on
|
||||
" my colors
|
||||
set background=dark
|
||||
highlight clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
if &t_Co == 256
|
||||
highlight! Normal ctermfg=77 ctermbg=Black
|
||||
highlight! Statement ctermfg=254 ctermbg=Black
|
||||
highlight! Comment ctermfg=191 ctermbg=Black
|
||||
highlight! PreProc ctermfg=200 ctermbg=Black
|
||||
else
|
||||
highlight! Normal ctermfg=Green ctermbg=Black
|
||||
highlight! Statement ctermfg=White ctermbg=Black
|
||||
highlight! Comment ctermfg=Yellow ctermbg=Black
|
||||
highlight! PreProc ctermfg=Magenta ctermbg=Black
|
||||
endif
|
||||
highlight! Constant ctermfg=Red ctermbg=Black
|
||||
highlight! def link Structure Statement
|
||||
highlight! def link StorageClass Statement
|
||||
highlight! Type ctermfg=Grey ctermbg=Black
|
||||
highlight! def link Identifier Type
|
||||
highlight! Todo ctermfg=Black ctermbg=DarkRed
|
||||
highlight! Search ctermfg=Black ctermbg=Yellow
|
||||
highlight! def link IncSearch Visual
|
||||
if &t_Co == 256
|
||||
highlight! DiffAdd ctermbg=54 cterm=none
|
||||
highlight! DiffDelete ctermfg=Black ctermbg=54 cterm=none
|
||||
else
|
||||
highlight! DiffAdd ctermbg=DarkMagenta cterm=none
|
||||
highlight! DiffDelete ctermfg=Black ctermbg=DarkMagenta cterm=none
|
||||
endif
|
||||
highlight! def link DiffChange DiffAdd
|
||||
highlight! DiffText ctermfg=White ctermbg=DarkBlue cterm=none
|
||||
highlight! def link Folded TabLineSel
|
||||
highlight! def link FoldColumn Folded
|
||||
highlight! MatchParen ctermbg=Blue
|
||||
if &t_Co == 256
|
||||
highlight! BadWhitespace ctermbg=235
|
||||
elseif &t_Co > 8
|
||||
highlight! BadWhitespace ctermbg=DarkGrey
|
||||
else
|
||||
highlight! BadWhitespace ctermbg=DarkCyan
|
||||
endif
|
||||
highlight! Pmenu ctermfg=Grey ctermbg=DarkBlue
|
||||
if &t_Co > 8
|
||||
highlight! PmenuSel ctermfg=Yellow ctermbg=Blue
|
||||
else
|
||||
highlight! PmenuSel ctermfg=Yellow ctermbg=Cyan
|
||||
endif
|
||||
highlight! def link PmenuSbar Pmenu
|
||||
highlight! PmenuThumb ctermbg=DarkMagenta cterm=none
|
||||
if &t_Co == 256
|
||||
highlight! LineNr ctermfg=DarkCyan ctermbg=235
|
||||
highlight! CursorLine ctermbg=236 cterm=none
|
||||
else
|
||||
highlight! LineNr ctermfg=DarkCyan ctermbg=Black
|
||||
highlight! CursorLine ctermbg=DarkGrey cterm=none
|
||||
endif
|
||||
highlight! def link CursorColumn CursorLine
|
||||
highlight! Visual ctermfg=White ctermbg=Blue cterm=none
|
||||
highlight! VertSplit ctermfg=Grey ctermbg=Grey cterm=none
|
||||
highlight! StatusLine ctermfg=Black ctermbg=Grey cterm=none
|
||||
if &t_Co > 8
|
||||
highlight! StatusLineNC ctermfg=DarkGrey ctermbg=Grey cterm=none
|
||||
else
|
||||
highlight! StatusLineNC ctermfg=Cyan ctermbg=Grey cterm=none
|
||||
endif
|
||||
highlight! def link TabLine StatusLineNC
|
||||
highlight! def link TabLineFill TabLine
|
||||
if &t_Co == 256
|
||||
highlight! TabLineSel ctermfg=White ctermbg=235 cterm=none
|
||||
elseif &t_Co > 8
|
||||
highlight! TabLineSel ctermfg=White ctermbg=Black cterm=none
|
||||
else
|
||||
highlight! TabLineSel ctermfg=White ctermbg=Black
|
||||
endif
|
||||
highlight! ModeMsg ctermfg=DarkCyan ctermbg=Black
|
||||
highlight! WarningMsg ctermfg=Yellow ctermbg=Black
|
||||
highlight! ErrorMsg ctermfg=Red ctermbg=Black
|
||||
endif
|
||||
|
||||
|
||||
|
||||
" define whitespaces at end of line as bad whitespaces
|
||||
match BadWhitespace /\s\+$/
|
||||
" define extra spaces at the front of the line as bad whitespaces
|
||||
match BadWhitespace /^\ \+/
|
||||
" define redundant whitespaces as bad whitespaces
|
||||
match BadWhitespace /\s\+$\| \+\ze\t/
|
337
.vimrc
337
.vimrc
@ -12,7 +12,7 @@
|
||||
" S-F8 build ctags/cscope databases
|
||||
" M-F8 build kernel ctags/cscope databases
|
||||
" F9 view changes
|
||||
" F10 folding ?
|
||||
" F10 folding
|
||||
" F11 unhighlight search
|
||||
" F12 paste mode
|
||||
" C-left/right switch tab
|
||||
@ -66,92 +66,6 @@ set updatetime=1000
|
||||
"""""""""""
|
||||
" DISPLAY "
|
||||
"""""""""""
|
||||
" color palette
|
||||
set t_Co=256
|
||||
" syntax highlighting when the terminal has colors
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
syntax on
|
||||
" my colors
|
||||
set background=dark
|
||||
highlight clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
if &t_Co == 256
|
||||
highlight! Normal ctermfg=77 ctermbg=Black
|
||||
highlight! Statement ctermfg=254 ctermbg=Black
|
||||
highlight! Comment ctermfg=191 ctermbg=Black
|
||||
highlight! PreProc ctermfg=200 ctermbg=Black
|
||||
else
|
||||
highlight! Normal ctermfg=Green ctermbg=Black
|
||||
highlight! Statement ctermfg=White ctermbg=Black
|
||||
highlight! Comment ctermfg=Yellow ctermbg=Black
|
||||
highlight! PreProc ctermfg=Magenta ctermbg=Black
|
||||
endif
|
||||
highlight! Constant ctermfg=Red ctermbg=Black
|
||||
highlight! def link Structure Statement
|
||||
highlight! def link StorageClass Statement
|
||||
highlight! Type ctermfg=Grey ctermbg=Black
|
||||
highlight! def link Identifier Type
|
||||
highlight! Todo ctermfg=Black ctermbg=DarkRed
|
||||
highlight! Search ctermfg=Black ctermbg=Yellow
|
||||
highlight! def link IncSearch Visual
|
||||
if &t_Co == 256
|
||||
highlight! DiffAdd ctermbg=54 cterm=none
|
||||
highlight! DiffDelete ctermfg=Black ctermbg=54 cterm=none
|
||||
else
|
||||
highlight! DiffAdd ctermbg=DarkMagenta cterm=none
|
||||
highlight! DiffDelete ctermfg=Black ctermbg=DarkMagenta cterm=none
|
||||
endif
|
||||
highlight! def link DiffChange DiffAdd
|
||||
highlight! DiffText ctermfg=White ctermbg=DarkBlue cterm=none
|
||||
highlight! def link Folded TabLineSel
|
||||
highlight! def link FoldColumn Folded
|
||||
highlight! MatchParen ctermbg=Blue
|
||||
if &t_Co == 256
|
||||
highlight! BadWhitespace ctermbg=235
|
||||
elseif &t_Co > 8
|
||||
highlight! BadWhitespace ctermbg=DarkGrey
|
||||
else
|
||||
highlight! BadWhitespace ctermbg=DarkCyan
|
||||
endif
|
||||
highlight! Pmenu ctermfg=Grey ctermbg=DarkBlue
|
||||
if &t_Co > 8
|
||||
highlight! PmenuSel ctermfg=Yellow ctermbg=Blue
|
||||
else
|
||||
highlight! PmenuSel ctermfg=Yellow ctermbg=Cyan
|
||||
endif
|
||||
highlight! def link PmenuSbar Pmenu
|
||||
highlight! PmenuThumb ctermbg=DarkMagenta cterm=none
|
||||
if &t_Co == 256
|
||||
highlight! LineNr ctermfg=DarkCyan ctermbg=235
|
||||
highlight! CursorLine ctermbg=236 cterm=none
|
||||
else
|
||||
highlight! LineNr ctermfg=DarkCyan ctermbg=Black
|
||||
highlight! CursorLine ctermbg=DarkGrey cterm=none
|
||||
endif
|
||||
highlight! def link CursorColumn CursorLine
|
||||
highlight! Visual ctermfg=White ctermbg=Blue cterm=none
|
||||
highlight! VertSplit ctermfg=Grey ctermbg=Grey cterm=none
|
||||
highlight! StatusLine ctermfg=Black ctermbg=Grey cterm=none
|
||||
if &t_Co > 8
|
||||
highlight! StatusLineNC ctermfg=DarkGrey ctermbg=Grey cterm=none
|
||||
else
|
||||
highlight! StatusLineNC ctermfg=Cyan ctermbg=Grey cterm=none
|
||||
endif
|
||||
highlight! def link TabLine StatusLineNC
|
||||
highlight! def link TabLineFill TabLine
|
||||
if &t_Co == 256
|
||||
highlight! TabLineSel ctermfg=White ctermbg=235 cterm=none
|
||||
elseif &t_Co > 8
|
||||
highlight! TabLineSel ctermfg=White ctermbg=Black cterm=none
|
||||
else
|
||||
highlight! TabLineSel ctermfg=White ctermbg=Black
|
||||
endif
|
||||
highlight! ModeMsg ctermfg=DarkCyan ctermbg=Black
|
||||
highlight! WarningMsg ctermfg=Yellow ctermbg=Black
|
||||
highlight! ErrorMsg ctermfg=Red ctermbg=Black
|
||||
endif
|
||||
" highlight the cursor line
|
||||
set cursorline
|
||||
" show the status line
|
||||
@ -164,10 +78,39 @@ set showmode
|
||||
set showcmd
|
||||
" display line number"
|
||||
set number
|
||||
" set status line
|
||||
set statusline=%<%f\ %h%w%m%r%3.(\ %)%{fugitive#statusline()}%=%([%{Tlist_Get_Tagname_By_Line()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
" always display status line
|
||||
set laststatus=2
|
||||
|
||||
"""""""""""""""
|
||||
" INDENTATION "
|
||||
"""""""""""""""
|
||||
" use tabs at the start of a line, spaces elsewhere
|
||||
" set smarttab
|
||||
set smartindent
|
||||
set autoindent
|
||||
" tab=4
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
" real tabs
|
||||
set noexpandtab
|
||||
|
||||
if has("autocmd")
|
||||
" python
|
||||
" autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab
|
||||
autocmd BufRead,BufNewFile *.py syntax on
|
||||
autocmd BufRead,BufNewFile *.py set ai
|
||||
autocmd BufRead,BufNewFile *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
|
||||
autocmd BufRead,BufNewFile *.py set tabstop=4
|
||||
autocmd BufRead,BufNewFile *.py set expandtab
|
||||
autocmd BufRead,BufNewFile *.py set shiftwidth=4
|
||||
autocmd BufRead,BufNewFile *.py set softtabstop=4
|
||||
autocmd BufRead,BufNewFile *.py set modeline
|
||||
|
||||
endif
|
||||
|
||||
if has("autocmd")
|
||||
" enable file type detection and do language-dependent indenting
|
||||
filetype plugin indent on
|
||||
@ -184,33 +127,6 @@ else
|
||||
" indent-expr
|
||||
"set indentexpr ""
|
||||
endif
|
||||
" tab=4
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
" real tabs
|
||||
set noexpandtab
|
||||
" use tabs at the start of a line, spaces elsewhere
|
||||
set smarttab
|
||||
if has("autocmd")
|
||||
" python
|
||||
" autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab
|
||||
autocmd BufRead,BufNewFile *.py syntax on
|
||||
autocmd BufRead,BufNewFile *.py set ai
|
||||
autocmd BufRead,BufNewFile *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
|
||||
autocmd BufRead,BufNewFile *.py set tabstop=4
|
||||
autocmd BufRead,BufNewFile *.py set expandtab
|
||||
autocmd BufRead,BufNewFile *.py set shiftwidth=4
|
||||
autocmd BufRead,BufNewFile *.py set softtabstop=4
|
||||
autocmd BufRead,BufNewFile *.py set modeline
|
||||
|
||||
endif
|
||||
" define whitespaces at end of line as bad whitespaces
|
||||
match BadWhitespace /\s\+$/
|
||||
" define extra spaces at the front of the line as bad whitespaces
|
||||
match BadWhitespace /^\ \+/
|
||||
" define redundant whitespaces as bad whitespaces
|
||||
match BadWhitespace /\s\+$\| \+\ze\t/
|
||||
|
||||
""""""""""
|
||||
" SEARCH "
|
||||
@ -248,6 +164,7 @@ function GoToDefinition()
|
||||
endfunction
|
||||
nmap <silent> , :call GoToDefinition()<CR>
|
||||
nmap <silent> ; <C-t>
|
||||
|
||||
" plugin taglist
|
||||
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
|
||||
let Tlist_Process_File_Always = 1
|
||||
@ -265,88 +182,7 @@ let Tlist_Inc_Winwidth = 0
|
||||
let Tlist_Use_Right_Window = 1
|
||||
" open/close tag list window with F8
|
||||
map <silent> <F8> :TlistToggle<CR>
|
||||
" shown current tag in status bar
|
||||
" set statusline=%<%f\ %h%m%r%=%([%{Tlist_Get_Tagname_By_Line()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
" include Git status(plugin vim-fugitiv) and tag name in status
|
||||
set laststatus=2
|
||||
"set statusline=%<%f\ %h%w%m%r%3.(\ %)%{fugitive#statusline()}%=%([%{Tlist_Get_Tagname_By_Line()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
" if compiled with --enable-cscope
|
||||
if has("cscope")
|
||||
" use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t'
|
||||
set cscopetag
|
||||
" use ctags before cscope
|
||||
set csto=0
|
||||
" add any cscope database in current directory
|
||||
if filereadable("cscope.out")
|
||||
cscope add cscope.out
|
||||
endif
|
||||
" add the database pointed by environment variable.
|
||||
" Cscope file added from db should contains full path to file. Otherwise they
|
||||
" should be added with cscope add PATH_TO_CSCOPE_FILE PATH_TO_SRC_ROOT
|
||||
if $CSCOPE_DB != ""
|
||||
if filereadable($CSCOPE_DB)
|
||||
cscope add $CSCOPE_DB
|
||||
endif
|
||||
endif
|
||||
" show message when any other cscope db added
|
||||
set cscopeverbose
|
||||
" open include file with F4 and split with shift+F4
|
||||
nmap <F4> :cscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <S-F4> :scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
" find this C symbol with F5 and split with shift+F5
|
||||
nmap <F5> :cscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F5> :scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to definition with F6 and split with shift+F6 and use ctags with alt+shift+F6
|
||||
nmap <F6> :cscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F6> :scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <M-S-F6> :tag <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to calls with F7 and split with shift+F7
|
||||
nmap <F7> :cscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <S-F7> :scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
" go to ... with 'ctrl+s letter' and go back with ctrl+t
|
||||
nmap <C-s>s :cscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>g :cscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>c :cscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>t :cscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>e :cscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-s>f :cscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-s>i :cscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-s>d :cscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" split to ... with 'ctrl+space letter'
|
||||
nmap <C-@>s :scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>g :scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>c :scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>t :scscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>e :scscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@>f :scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-@>i :scscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-@>d :scscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" vertical split to ... with 'ctrl+space ctrl+space letter'
|
||||
nmap <C-@><C-@>s :vertical scscope find s <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>g :vertical scscope find g <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>c :vertical scscope find c <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>t :vertical scscope find t <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>e :vertical scscope find e <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-@><C-@>f :vertical scscope find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-@><C-@>i :vertical scscope find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-@><C-@>d :vertical scscope find d <C-R>=expand("<cword>")<CR><CR>
|
||||
" s symbol find all references to the token under cursor
|
||||
" //find this C symbol
|
||||
" g global find global definition of the token under cursor
|
||||
" //find this definition
|
||||
" c calls find all calls to the function name under cursor
|
||||
" //find function calling this function
|
||||
" d called find functions that function under cursor calls
|
||||
" //find function called by this function
|
||||
" t text find all instances of the text under cursor
|
||||
" //find this text string
|
||||
" e egrep egrep search for the word under cursor
|
||||
" //find this egrep pattern
|
||||
" f file open the filename under cursor
|
||||
" //find this file
|
||||
" i includes find files that include the filename under cursor
|
||||
" //find files #including this file
|
||||
endif
|
||||
|
||||
|
||||
" cat Makefile | grep '\-I\/' | tr '[:space:]' '\n' | grep '\-I/' | sort -u | tr '\n' ' '
|
||||
" build tags database with shift+F8 or alt+F8 to ignore /usr/include
|
||||
@ -528,23 +364,6 @@ set tags+=~/.vim/qttags
|
||||
set tags+=~/.vim/qtembedded
|
||||
set tags+=~/.vim/tags/linux-sh4-ST-2.6.23.17
|
||||
|
||||
" Affichage du prototype d'une fonction sur le
|
||||
" plugin echofunc
|
||||
|
||||
|
||||
" Eclim
|
||||
command -range -nargs=* Google call eclim#web#SearchEngine(
|
||||
\ 'http://www.google.com/search?q=<query>', <q-args>, <line1>, <line2>)
|
||||
|
||||
" QT manual with C-b
|
||||
function! QtClassDoc()
|
||||
let qt_dir = "/usr/share/qt4/doc/html/"
|
||||
let class = tolower(expand("<cword>"))
|
||||
silent execute "!x-www-browser " . qt_dir . class . ".html &>/dev/null" . " &" | redraw!
|
||||
endfunction
|
||||
|
||||
nmap <silent> <C-b> :call QtClassDoc()<CR>
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"Poser une marque visible avec F7
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
@ -554,98 +373,6 @@ nmap <silent> <C-b> :call QtClassDoc()<CR>
|
||||
"map <C-F7> :sign unplace<CR>
|
||||
|
||||
|
||||
function! GetProtoLine()
|
||||
let ret = ""
|
||||
let line_save = line(".")
|
||||
let col_save = col(".")
|
||||
let top = line_save - winline() + 1
|
||||
let so_save = &so
|
||||
let &so = 0
|
||||
let istypedef = 0
|
||||
" find closing brace
|
||||
let closing_lnum = search('^}','cW')
|
||||
if closing_lnum > 0
|
||||
if getline(line(".")) =~ '\w\s*;\s*$'
|
||||
let istypedef = 1
|
||||
let closingline = getline(".")
|
||||
endif
|
||||
" go to the opening brace
|
||||
normal! %
|
||||
" if the start position is between the two braces
|
||||
if line(".") <= line_save
|
||||
if istypedef
|
||||
let ret = matchstr(closingline, '\w\+\s*;')
|
||||
else
|
||||
" find a line contains function name
|
||||
let lnum = search('^\w','bcnW')
|
||||
if lnum > 0
|
||||
let ret = getline(lnum)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
" restore position and screen line
|
||||
exe "normal! " . top . "Gz\<CR>"
|
||||
call cursor(line_save, col_save)
|
||||
let &so = so_save
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function! WhatFunction()
|
||||
if &ft != "c" && &ft != "cpp"
|
||||
return ""
|
||||
endif
|
||||
let proto = GetProtoLine()
|
||||
if proto == ""
|
||||
return "?"
|
||||
endif
|
||||
if stridx(proto, '(') > 0
|
||||
let ret = matchstr(proto, '\w\+(\@=')
|
||||
elseif proto =~# '\<struct\>'
|
||||
let ret = matchstr(proto, 'struct\s\+\w\+')
|
||||
elseif proto =~# '\<class\>'
|
||||
let ret = matchstr(proto, 'class\s\+\w\+')
|
||||
else
|
||||
let ret = strpart(proto, 0, 15) . "..."
|
||||
endif
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
set statusline=%<%f\ %h%w%m%r%3.(\ %)%{fugitive#statusline()}%=%([%{Tlist_Get_Tagname_By_Line()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
" Use WhatFunction could create some problems with lines longer that the
|
||||
" screen size. WhatFunction could be interesting for C++ function
|
||||
" set statusline=%<%f\ %h%w%m%r%3.(\ %)%{fugitive#statusline()}%=%([%{Tlist_Get_Tagname_By_Line()}%{WhatFunction()}]%)%3.(\ %)%-14.(%l,%c%V%)\ %P
|
||||
|
||||
"""""""""""""""""""""""""""""""""""""""""""
|
||||
" Language
|
||||
"""""""""""""""""""""""""""""""""""""""""""
|
||||
" Using dictd
|
||||
function! Translate()
|
||||
let word = expand("<cword>")
|
||||
let output = system("echo -n $(dict -d eng-fra -f " .word. " 2> /dev/null | tail -n +3 | head -n -1 | sed '1s/$/:/;2,$s/$/;/')")
|
||||
if output != ""
|
||||
echohl WarningMsg
|
||||
echo output
|
||||
echohl None
|
||||
else
|
||||
echohl WarningMsg
|
||||
echo "No translation found"
|
||||
echohl None
|
||||
endif
|
||||
endfunction
|
||||
"default Leader is \
|
||||
nnoremap <silent> <Leader>t :call Translate()<cr>
|
||||
|
||||
" to enable spellchecking :set spell"
|
||||
" c.f. :help spell
|
||||
" ]s search next misspelled
|
||||
" [s search previous misspelled
|
||||
" z= suggestion
|
||||
" trad files should be under /usr/share/vim/vimfiles/spell
|
||||
" or .vim/spell
|
||||
" they can be download at http://ftp.vim.org/vim/runtime/spell/
|
||||
set spell spelllang=en
|
||||
set nospell
|
||||
|
||||
"""""""""""""
|
||||
" Latex "
|
||||
|
Loading…
Reference in New Issue
Block a user