VimʹÓý׶ÎÐÔ×ܽáϵÁÐ(2) ¨C ÎÒµÄVim¹¤×÷»·¾³×ÛÊö
¸½¼þѹËõ°üÊÇÎÒµÄVim¹¤×÷»·¾³£¬ÆäÖÐcommonprjĿ¼¼°Æä°üº¬µÄhello.cºÍMakefileÊÇ×÷ΪÀý×ÓµÄÒ»¸ö¹¤³Ì¡£ÏÂͼÁгöÏà¹ØµÄÎļþºÍ¼òÊö¡£Ö®ºó½«½øÐÐÏêϸ½éÉÜ¡£

±ÈÈçÎÒÃÇÓÐÒ»¸ö¹¤³Ì, commonprj£¬°üº¬Îļþhello.c ºÍ Makefile
Step 1: °Ñprj¿½±´ÖÃcommonprjĿ¼Ï¡£
Step 2: ±à¼prjĿ¼ÏµÄdevInputNormal.sh¡£
Ö÷ÒªÊÇÉèÖÃÐèÒª¼ÓÈëµ½ÏîÄ¿ÖеÄÎļþºÍ·¾¶ÁÐ±í¡£°üÀ¨path_list, file_list, remove_list¡£ÏêϸÇë²Î¿¼<<Vim ʹÓý׶ÎÐÔ×ܽáϵÁÐ(1) - ½¨Á¢¹¤³Ì>>¡£
Àý×ÓÖÐÔËÐÐ . ~/work/env/common/devInputStdInc.sh
ÆäÄ¿µÄÊÇΪÁ˰ѱê׼ͷÎļþ¼ÓÈëµ½ÏîÄ¿ÖС£
Step 3: ÔËÐÐ sh ~/work/env/devProject.sh devInputNormal.sh
ÔÚprjĿ¼Ï¿ÉÒԵõ½ÈçÏÂÎļþ£º
cscope.*: cscopeÐèÒªµÄÊý¾Ý¿âÎļþ
filenametags: lookupfile²å¼þÐèÒªµÄtagÎļþ
lookup_filelist: Éú³ÉfilenametagsËùÓõÄÎļþÁбí
src_filelist: ¼ÓÈëµ½ÏîÄ¿ÖеÄÔ´ÂëÎļþ
tagsdebug: ctagsÐèÒªÓõ½µÄÎļþ
ÏÖÔÚ¿ÉÒÔʹÓÃvimµÄÇ¿´ó¹¦ÄÜÁË£¡
±ÈÈ磺vim ../
Ñ¡ÖÐhello.c£¬°´Enter´ò¿ªËü¡£
¹â±êÂäÔÚprintfÉÏ£¬°´CTRL-]¿ÉÒÔÌø×ªµ½¶¨Òå´¦ ¨C CtagµÄÓ¦ÓÃ
¹â±êÂäÔÚprintfÉÏ£¬°´CTRL-@, s£¬½«²éÕÒËùÓгöÏָñêÇ©µÄµØ·½£¬²¢Êä³öµ½quickfix£¬°´F3, F4¿Éǰºó²éÕÒ¡£CTRL-@, c¿É²éÕÒµ÷ÓÃÕß¡£- cscopeʹÓÃ
¹â±êÂäÔÚprintfÉÏ£¬°´F2£¬½«ÔÚÏîĿԴÎļþÖвéÕÒprintf£¬²¢Êä³öµ½quickfix£¬°´F3, F4¿ÉÉÏϲéÕÒ ¨C È«ÏîÄ¿ËÑË÷
°´ , lk ½«´ò¿ªlookupfile ´°¿Ú£¬ÊäÈëÆ¥Åä×Ö»á³öÏÖÎļþÁÐ±í£¬°´CTRL-P»ò-N, ¿ÉÒÔÑ¡ÔñÎļþ
:Tlist ÓÃÓÚ´ò¿ª±êǩҳ
:mksession!
:wviminfo viminfo
¶ÔÏîÄ¿µ±Ç°±à¼»·¾³½øÐб£´æ¡£
vim ¨CS Session ¨Ci viminfo: ÓÃÓÚ»Ö¸´ÉÏ´ÎÔËÐеĻ·¾³
¿ÉÒԺúøÐÊÜvimµÄÇ¿´óÁË¡£
ÏÂÃæ¶ÔÉÏÊöÎļþµÄ¹Ø¼ü²¿·Ö½øÐÐÃèÊö£º
A. devInputNormal.sh ºÍdevInputStdInc.sh
¹²Í¬×é³ÉÊäÈ룬ÓÃÓÚ¸ù¾ÝÐèÒª¾ö¶¨ÊÇ·ñ°üº¬devInputStdInc.sh
B. devGrepPrj.sh
½«±»vimÖеÄgrepʹÓã¬ÓÃÓÚÔÚÔ´ÎļþÁбíÖвéÕҹؼü×Ö
C. devProject.sh
¼û<<Vim ʹÓý׶ÎÐÔ×ܽáϵÁÐ(1) - ½¨Á¢¹¤³Ì>>
D. devFrequencyEdit
ÓÃÓÚ±êעƵ·±±à¼µÄ±êÇ©
E. ÏÂÃæÖØµãÃèÊövimµÄrcÎļþ
1. .vimrc
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" qianjiang add ! after command
command! DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
//:DiffOrig ÓÃÓڱȽϵ±Ç°bufºÍ´ò¿ªÖ®Ç°µÄ²îÒì
" qianjiang add below contents
//Çл»µ½Ò»¸öbuf£¬Èç¹û²»´æÔÚÔòпªÒ»¸ö
function! SwitchToBuf(filename)
" let fullfn = substitute(a:filename, "^\\~/", $HOME . "/", "")
" find in current tab
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec bufwinnr . "wincmd w"
return
else
" find in each tab
tabfirst
let tab = 1
while tab <= tabpagenr("$")
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec "normal " . tab . "gt"
exec bufwinnr . "wincmd w"
return
endif
tabnext
let tab = tab + 1
endwhile
" not exist, new tab
exec "tabnew " . a:filename
endif
endfunction
" Set mapleader
let mapleader = ","
" Fast reloading of the .vimrc
" map <silent> <leader>ss :source ~/.vimrc<cr>
" Fast editing of .vimrc
" map <silent> <leader>ee :e ~/.vimrc<cr>
map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr> //´ò¿ªvimrc½øÐбà¼
" when .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc //vimrc±»Ð޸ĺó×Ô¶¯ÖØÐÂÉèÖÃ
" Fast open scrach
map <silent> <leader>ss :call SwitchToBuf("scrach")<cr> //´ò¿ª²Ý¸å
set sessionoptions-=curdir
set sessionoptions+=sesdir //±£´æÏà¶Ô·¾¶
set nobackup //²»½øÐÐbackup
" set for taglist
let Tlist_File_Fold_Auto_Close = 1
" set for cscope
set cscopequickfix=s-,c-,d-,i-,t-,e- //cscopeÊä³öµ½quickfix
"you can press '<C-2> s' to access this command
nmap <
s">C-@>s :cs find s <cword><CR><esc> //¿ì½Ý¼ü²éÕÒ±êÇ©
nmap <
g">C-@>g :cs find g <cword><CR><esc> //
nmap <
c">C-@>c :cs find c <cword><CR><esc> //¿ì½Ý¼ü²éÕÒµ÷ÓÃÕß
nmap <
t">C-@>t :cs find t <cword><CR><esc>
nmap <
e">C-@>e :cs find e <cword><CR><esc>
"nmap <
f">C-@>f :cs find f <cfile><CR><esc>
"nmap <
i">C-@>i :cs find i ^<cfile><CR>$<esc>
nmap <
d">C-@>d :cs find d <cword><CR><esc>
let g:LookupFile_TagExpr = string('./filenametags') //ÉèÖÃlookupfileµÄ±êÇ©
let g:LookupFile_MinPatLength = 2 //×îÉÙÊäÈë2¸ö
let g:LookupFile_PreserveLastPattern = 0
let g:LookupFile_PreservePatternHistory = 0
let g:LookupFile_AllowNewFiles = 0
let g:LookupFile_AlwaysAcceptFirst = 1
nmap <silent> <leader>lk :LookupFile<cr>
nmap <silent> <leader>ll :LUBufs<cr>
nmap <silent> <leader>lw :LUWalk<cr>
if filereadable("devWorkSpace.vim") //Ö´ÐÐÏîÄ¿Ïà¹ØµÄvimÉ趨
source devWorkSpace.vim
endif
2. devWorkSpace.vim
set path=.,,,
set path+=/usr/local/include
set path+=/usr/include
set tags=tagsdebug //ÉèÖÃctagsµÄ±êÇ©Îļþ
" use four whitespace char to replace tab
set tabstop=4
set et
" setting for search in project
set grepprg=~/work/env/devGrepPrj.sh\ -n\ $*\ /dev/null
map <silent> <F2> :grep <cword><cr><esc>
map <silent> <F3> :cp<cr>
map <silent> <F4> :cn<cr>
//¿ìËÙ´ò¿ªfrequencyedit
nmap <silent> <leader>ff :e ~/work/env/common/devFrequencyEdit<cr>
set winheight=50