Add vimrc

Change-Id: I25f3f01fc24ba0d94aa84f7ae5fab22a282460ae
This commit is contained in:
Jakub Fojt
2019-07-09 15:03:20 +02:00
parent 5f25c94fc4
commit 267dbd2ef6
10 changed files with 170 additions and 0 deletions

41
.vim/CurtinIncSw.vim Normal file
View File

@@ -0,0 +1,41 @@
function! CurtineIncSw()
if match(expand("%"), '\.c') > 0
let l:next_file = substitute(".*\\\/" . expand("%:t"), '\.c\(.*\)', '.h[a-z]*', "")
elseif match(expand("%"), "\\.h") > 0
let l:next_file = substitute(".*\\\/" . expand("%:t"), '\.h\(.*\)', '.c[a-z]*', "")
endif
if exists("b:previous_file") && b:previous_file == l:next_file
e#
else
let l:directory_name = fnamemodify(expand("%:p"), ":h")
" At this point cmd might evaluate to something of the format:
" /Users/person/ . -type f -iregex ".*\/test_class.h[a-z]*" -print -quit
let l:cmd="find " . l:directory_name . " . -type f -iregex \"" . l:next_file . "\" -print -quit"
" The substitute gets rid of the new line at the end of the result. The
" function `filereadable` does not like the newline that `find` puts at
" the end of the result and will not acknowledge that the file exists.
let l:result = substitute(system(l:cmd), '\n', '', '')
if filereadable(l:result)
exe "e " l:result
endif
endif
endfun
function! GetCurrentFile()
if exists("b:current_file")
let b:previous_file = b:current_file
endif
if match(expand("%"), '\.c') > 0
let b:current_file = substitute(".*\\\/" . expand("%:t"), '\.c\(.*\)', '.c[a-z]*', "")
elseif match(expand("%"), "\\.h") > 0
let b:current_file = substitute(".*\\\/" . expand("%:t"), '\.h\(.*\)', '.h[a-z]*', "")
endif
endfun
augroup CurtineIncSwCurrentFile
autocmd BufWinEnter * call GetCurrentFile()
augroup END

Submodule .vim/bundle/CurtineIncSw.vim added at 6b32ef621c

Submodule .vim/bundle/Vundle.vim added at 9a38216a1c

1
.vim/bundle/c.vim Submodule

Submodule .vim/bundle/c.vim added at 69f0368c7d

1
.vim/bundle/ctrlp.vim Submodule

Submodule .vim/bundle/ctrlp.vim added at 2e773fd8c7

1
.vim/bundle/nerdtree Submodule

Submodule .vim/bundle/nerdtree added at 33fe2fdf16

Submodule .vim/bundle/vim-buffergator added at 947b60dca4

Submodule .vim/bundle/vim-fugitive added at aff3359699

Submodule .vim/bundle/vim-gutentags added at eecb136fae

121
.vimrc Executable file
View File

@@ -0,0 +1,121 @@
cd /repo/efjtjkb/epg/up/
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim' " let Vundle manage Vundle, required
Plugin 'scrooloose/nerdtree'
Plugin 'c.vim'
Plugin 'jeetsukumaran/vim-buffergator'
Plugin 'ericcurtin/CurtineIncSw.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'ctrlpvim/ctrlp.vim'
call vundle#end() " required
filetype plugin indent on " required
set tabstop=4 " show existing tab with 4 spaces width
set shiftwidth=4 " when indenting with '>', use 4 spaces width
set expandtab " On pressing tab, insert 4 spaces
set mouse=a
set nu
" define upper case versions of :w and :q
command! -bang -range=% -complete=file -nargs=* W <line1>,<line2>write<bang> <args>
command! -bang Q quit<bang>
" fugitive.vim looks for tags in .git
" set tags +=~/tags " Recursively move upwards in tree, searching in subfolders for tags file
" Open NERDTree if no file specified
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
" CtrlP
let g:ctrlp_working_path_mode = 'ra'
" Find project root
let git_dir_location=finddir('.git', ';')
let git_root_location=fnamemodify(git_dir_location, ':h')
" Locate cscope file
if has("cscope")
set csto=0 " Search cscope before ctags
set cst " <C-]> searches cscope also
set nocsverb " Not verbose when adding database
set cspc=3 " Display the last 3 components of file path
"add any database in current dir
if filereadable("cscope.out")
cs add cscope.out
"else search cscope.out in git folder
else
let cscope_file=findfile("cscope.out", git_dir_location)
if !empty(cscope_file) && filereadable(cscope_file)
exe "cs add" cscope_file git_root_location
endif
endif
endif
command! Csc cscope find c <cword>
" Regen cscope
" sh ~/bin/gen_cscope.sh . .git/cscope.out
"
" Key binds
"
nmap <F2> :NERDTreeToggle<CR>
nmap <F3> :NERDTreeFind<CR>
map <F5> :call CurtineIncSw()<CR>
nmap <F8> :silent !/home/efjtjkb/bin/comp<enter>
" Remap <F9> (c-vim uses this)
"nmap <F9> :silent !/home/efjtjkb/bin/run<enter>
autocmd VimEnter * noremap <F9> :silent !/home/efjtjkb/bin/run<enter>
nmap <F10> :silent !/home/efjtjkb/bin/run old<enter>
" MINUT to et macros
let @a=':%s/MINUT_ASSERT_EQ/et_asserteq/ge
\:%s/MINUT_ASSERT_NE/et_assertne/ge
\:%s/MINUT_ASSERT_STREQ/et_asserteq_str/ge
\:%s/MINUT_ASSERT_STRNE/et_assertne_str/ge
\:%s/MINUT_ASSERT_PTREQ/et_asserteq_ptr/ge
\:%s/MINUT_ASSERT_PTRNE/et_assertne_ptr/ge
\:%s/MINUT_ASSERT/et_assert/ge
\:%s/MINUT_TEST_EQ/et_asserteq/ge
\:%s/MINUT_TEST_NE/et_assertne/ge
\:%s/MINUT_TEST_STREQ/et_asserteq_str/ge
\:%s/MINUT_TEST_STRNE/et_assertne_str/ge
\:%s/MINUT_TEST_PTREQ/et_asserteq_ptr/ge
\:%s/MINUT_TEST_PTRNE/et_assertne_ptr/ge
\:%s/MINUT_TEST/et_assert/ge
\:%s/\_s\+MINUT_RETURN_SUCCESS();//e
" \_s\+ all preceding whitespace
\:%s/#include "minut.h"/#include "et.h"/ge
'
function! Et(name)
let start = line('.') - 1
call append(start,"ET_FIXTURE(" . a:name . ", setup, teardown) {")
call append(start+1,"")
call append(start+2,"};")
call append(start+3,"")
call append(start+4,"ET_FIXTURE_FN(" . a:name . ", setup)")
call append(start+5,"{")
call append(start+6," " . a:name . "* fixture = et_test_fixture();")
call append(start+7,"")
call append(start+8," (void)fixture;")
call append(start+9,"}")
call append(start+10,"")
call append(start+11,"ET_FIXTURE_FN(" . a:name . ", teardown)")
call append(start+12,"{")
call append(start+13," " . a:name . "* fixture = et_test_fixture();")
call append(start+14,"")
call append(start+15," (void)fixture;")
call append(start+16,"}")
call append(start+17,"")