Czy jest jakiś sposób, aby włączyć uzupełnianie kodu dla Perla w vim?
Zaskakująco, jak jesteś dobry w Vimie, możesz kodować nawet szybciej niż standardowe IDE, takie jak Eclipse. Ale jedna rzecz, której naprawdę brakuje, to Ukończenie kodu, szczególnie w przypadku długich nazw zmiennych i funkcji.
Czy Jest jakiś sposób, aby włączyć uzupełnianie kodu dla Perla w Vimie?
8 answers
Ctrl-P (Pobierz poprzednie Dopasowanie) i Ctrl-N (Get Next Match) to rodzaj pseudo-kodu uzupełniającego. W zasadzie przeszukują plik (wstecz dla Ctrl-P , do przodu dla Ctrl-N) edytujesz (i wszelkie otwarte bufory, a jeśli używasz znaczników w pliku znaczników) słowa, które zaczynają się od tego, co wpisujesz i dodajesz rozwijaną listę. Działa zaskakująco dobrze dla zmiennych i nazw funkcji, nawet jeśli nie jest intellisense. Generalnie używam Ctrl-P ponieważ zmienna lub funkcja, której szukam, jest zwykle w tyle w kodzie. Ponadto, jeśli zachowasz tę samą kopię Vima otwartą, przeszukuje on pliki, które wcześniej otworzyłeś.
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
2013-07-21 11:46:12
Vim 7 obsługuje Omni completion.
Na przykład, mam to w moim vimrc
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
A następnie, gdy wciskam Ctrl-x Ctrl-o w trybie wstawiania, dostaję listę rozwijaną możliwości autouzupełniania.
Oto omnicfunc dla Perla. Nie mam pojęcia, jak to działa.
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
2008-09-10 14:03:45
Cóż, ogólny mechanizm zakończenia Vima jest zaskakująco dobry, wystarczy użyć Ctrl-N w trybie wstawiania. Również uzupełnianie linii jest bardzo przydatne, używając C-x C-L.
Sprawdź również ten skrypt vim dla Perla .
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
2008-09-10 14:00:04
Standardowe CTRL-N
i CTRL-P
działają jeszcze lepiej, jeśli dodasz następujące elementy do swojego~/.vim / ftplugin / perl.plik vim:
Set iskeyword+=:
Spowoduje automatyczne uzupełnianie nazw modułów itp.
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
2008-09-16 18:00:36
The .klip vimrc w jednej z innych odpowiedzi jest nieco błędny. Aby zmienić klawisz tab w Klawisz autouzupełniania, użyj tego kodu:
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
Możesz znaleźć to i mnóstwo innych sztuczek Vima w tym wątku w Perlmonks--który łączy się z jeszcze większą liczbą wątków z większą ilością dostosowań.
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
2008-09-17 14:11:35
Powinieneś zajrzeć do wtyczki SuperTab: http://www.vim.org/scripts/script.php?script_id=1643 Pozwala to na uzupełnianie (OmniCompletion lub regularne uzupełnianie) za pomocą tab i shift-tab zamiast ^N I ^p.
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
2008-09-15 14:41:37
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
2012-03-09 12:40:19
Ctrl+N
Jest to wyjaśnione w książce Perl Hacks, wraz z tym, jak wykonać kompletację pakietów. Gorąco polecam.
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
2015-09-24 08:19:04