VIM ustawił ctags.vimrc
Moje projekty znajdują się w folderze/srv/http / dev. Wygenerowałem plik ctags dla jednego projektu:
$ ctags -R --languages=php .
Teraz ustawiam ścieżkę ctags:
:set tags=/srv/http/dev/proj/tags
I działa dobrze.
Ale mam wiele projektów w Dev / folderze. Jak Mogę ustawić ctags .plik vimrc? Nie działa prawidłowo.
I chciałbym wygenerować plik tagów, naciskając hotkey na wybranym folderze NERDTree. Próbowałem:
nmap <silent> <F4>
\ :!ctags -R
\ --languages=php .<CR>
Ale tworzy plik z tagami w folderze home i wyświetla ostrzeżenia o skanowaniu home folder..
EDIT: Jak radził @ Alexandru Plugaru powinienem użyć g: NERDTreeFileNode.Funkcja GetSelected ().
Jestem tylko newbie vim user, więc mam jeszcze jedno pytanie. Dodałem w moim .plik vimrc:
function createTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str
exec ':!ctags -R --languages=php ' . curNodePath
endfunction
nmap <silent> <F4> :execute createTags()<CR>
Ale wciskając F4 widzę:
E117: Unknown function: createTags
E15: Invalid expression: createTags
EDIT 2: Dzięki @ Alexandru Plugaru mam to:
function CreateTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str()
exec ':!ctags -R --languages=php -f ' . curNodePath . '/tags ' . curNodePath
endfunction
nmap <silent> <F4> :call CreateTags()<CR>
I to działa! Naciskając F4 otrzymuję plik tagów w folderze projektu. 3 answers
Dzieje się tak dlatego, że bieżący katalog Vima jest katalogiem domowym. Musisz zmienić ścieżkę lub utworzyć wtyczkę nerdtree. Zobacz Katalog nerdtree_plugin dla przykładu. Myślę, że ta funkcja będzie dla Ciebie interesująca:
g:NERDTreeFileNode.GetSelected()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-27 11:48:27
Funkcje powinny zaczynać się od dużej litery. Zmień
createTags
naCreateTags
.-
Aby użyć plików specyficznych dla projektu, musisz dodać coś takiego do swojego
.vimrc
:set tags=./tags,tags;
Tak, że Vim najpierw szuka pliku
tags
w bieżącym katalogu, aż go znajdzie. Dodatkowo lubięset autochdir
: katalog roboczy jest zawsze tym, który zawiera bieżący plik.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-27 13:32:36
W Twoim .użycie vimrc:
set tags+=tags,/srv/http/dev/proj/tags
Uważam, że przecinek jest właściwym separatorem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-27 11:42:56