2008-09-10 11 views

Antwort

29

Ctrl - P (Get Vorheriges Spiel) und Ctrl - N (Get Next Match) sind so eine Art Pseudo-Code-Vervollständigung. Sie suchen im Grunde die Datei (rückwärts für Ctrl - P, Forwards für Ctrl - N) Sie bearbeiten (und alle offenen Puffer, und wenn Sie TAGS nichts in Ihrem TAG-Datei) für die Worte, die Beginnen Sie mit dem, was Sie eingeben, und fügen Sie eine Dropdown-Liste hinzu. Es funktioniert überraschend gut für Variablen und Funktionsnamen, auch wenn es sich nicht um Intellisense handelt. Generell verwende ich Ctrl - P als die Variable oder Funktion, die ich suche, ist in der Regel in den Code. Wenn Sie die gleiche Kopie von Vim geöffnet lassen, sucht es nach den Dateien, die Sie zuvor geöffnet haben.

+0

Dies funktioniert gut für mich, aber ich habe vor kurzem wechselte in eine neue Entwicklungsumgebung. Jetzt, anstatt nur meine offenen Puffer zu suchen, scheint es, dass ich meinen gesamten Quellbaum durchsuche, was ziemlich lange dauert - und dies nur für Perl tut. Wie kann ich sehen, ob diese neue Umgebung TAGS verwendet? Ich habe ': tag' ausprobiert und' E73: tag stack empty' bekommen. Gibt es etwas anderes als Tags, die möglicherweise aktiviert wurden? Auch die neue Umgebung hat eine etwas neuere Version von vim. Ich möchte es nur die offenen Puffer durchsuchen lassen. – redbmk

7

Nun, der generische Vervollständigungsmechanismus von Vim ist überraschend gut, nur mit Ctrl-N im Einfügemodus. Außerdem ist die Zeilenvervollständigung sehr praktisch, wenn C-x C-1 verwendet wird.

Überprüfen Sie auch diese vim script for perl.

9

Vim 7 unterstützt omni completion.

Zum Beispiel, ich habe dies in meinem vimrc

autocmd FileType php set omnifunc=phpcomplete#CompletePHP 

und dann, wenn ich Ctrl-x Ctrl-o in Insert-Modus drücken, erhalte ich eine Dropdown-Liste der Möglichkeiten zum automatischen Vervollständigung.

Hier ist eine Omnicfunc for perl. Keine Ahnung, wie gut es funktioniert.

3

Ctrl +N

Die in Perl Hacks Buch erklärt, zusammen mit, wie Package Fertigstellung zu tun. Sehr empfehlenswert.

3

Der .vimrc-Clip in einer der anderen Antworten ist etwas falsch. So schalten Sie Ihre Tab-Taste in eine automatische Vervollständigung Schlüssel, verwenden Sie diesen Code:

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 

Sie diese finden können, und Tonnen von anderen vim Tricks in this thread at Perlmonks --which Links zu noch mehr Themen mit viel mehr Anpassungen.

5

Die Standards CTRL-N und CTRL-P funktionieren noch besser, wenn Sie Folgendes zu Ihrem ~/.vim/ftplugin/perl hinzufügen.vim-Datei:

Satz iskeyword + =:

Es wird dann die automatische Vervollständigung Modulnamen usw.