2013-04-26 8 views
5

Ich hätte eine Autovervollständigung genau wie in erhabenen Text aber in vim.Verwenden Sie Code-Vervollständigung in vim wie in sublime Text

Ich möchte dieses Verhalten:

  • Wenn ich beginne, ein Wort zu geben, möchte ich einen Kasten haben, die Fertigstellungen vorschlagen;
  • In den vorgeschlagenen Ergänzungen möchte ich die letzten verwendeten Wörter haben;
  • Ich möchte Funktionen über Ctags gefunden haben;
  • Ich möchte Standardfunktionen für die Sprache, die ich verwende;
  • Ich möchte Snippets haben;

Es gibt eine Menge Plugins über Autovervollständigung für vim und ich bin verloren.

+3

Willkommen bei Vim; seine riesige Sammlung von Plugins ist sowohl ein Segen als auch ein Fluch; was hast du gefunden, was hat dir gefallen, wie wichtig ist eine funktion gegenüber der anderen ?! Am Ende wirst du nicht herumkommen und einige Plugins selbst ausprobieren; Die Vorlieben von jedem sind anders, und in Vim gibt es keine einheitliche Lösung. –

Antwort

7

Derzeit verwende ich YouCompleteMe ... Es ist sehr gut, obwohl ich nicht weiß, ob es konfiguriert werden kann Wörter auf der letzten Verwendung zu sortieren. Es hat allgemeine Fuzzy-Vervollständigungsfähigkeiten, die bei jedem Dateityp funktionieren (Sie können fuzzy completion awesome finden), aber es enthält auch eine semantische Vervollständigung für C/C++/Objective-C/Objective-C++ durch libclang.

Insbesondere kompiliere ich immer die neuesten clang, libC++ und VIM aus Quellen zu tunen und VIM zu setzen, um meine Umgebung python/ruby ​​/ etc zu verwenden und eine anständige C++ 11 Unterstützung zu bekommen. Ich kompiliere YouCompleteMe dann auch aus Quellen, obwohl ich es zuerst über einen Plugin-Manager installiere. Meine aktuelle Wahl ist VAM, aber es gibt andere wie Vundle und Pathogen.

+0

Ich las das Dokument über YCM und habe nichts über Snippets gesehen. Ich sah diese Zeile "YCM obsoletes die folgenden Vim-Plugins, weil es alle ihre Funktionen plus zusätzlich hat: autocomplop", aber in Autocomplpop doc sah ich diese Zeile "Sie können auch benutzerdefinierte Vervollständigung und SnipMate Trigger automatisch Auto-Popup, wenn die Optionen sind eingestellt. ". Ich habe mir den Quellcode von YCM angeschaut und nichts über Snippets gesehen. Gibt es eine Möglichkeit, Snippets mit YCM zu unterstützen? – Dougui

+0

@Dougui Kürzlich habe ich Snippet-Unterstützung gesehen. Mögliche Schnipsel werden auch im Vervollständigungsmenü aufgelistet, dies geschieht durch UltiSnips-Integration, YCM hilft bei der Anzeige verfügbarer Schnipsel, es sind UltiSnips, die sie bereitstellen. http://stackoverflow.com/q/14896327, https://github.com/Valloric/YouCompleteMe/pull/257 –

+0

Ja, vor kurzem wurde die Unterstützung von Ultisnips implementiert. Ctags Integration ist auf der ToDo-Liste, ist aber noch nicht fertig. Ich denke, dass dieses Plugin tatsächlich dem am nächsten kommt, was Sie wollen. –

3

versuchen, diese Methode:

for plugin in plugins 
    try 
     install plugin 
     read doc 
     test plugin 
    catch 
     remove plugin 
    endtry 
endfor 

Also, stellen Sie sicher, dass Sie lesen und verstehen :h ins-completion vor Plugins Jagd auf.

+0

Ihr Code funktioniert nicht in meinem vim (v7.3)! aber ich gebe dir einen positiven Kommentar! – Kent

+0

Hehe, wie erwartet. – romainl

+1

versuchen Sie nicht, diesen Code hinzuzufügen ... lesen Sie es und Sie werden es verstehen. Es ist ein Witz. – Dougui