Frage

Ich benutze schienen.vim und ich liebe es, wie du benutzen kannst Strg-X Strg-u im Einfügenmodus zur automatischen Vervollständigung von langen Methodennamen wie distance_of_time_in_words und accepts_nested_attributes_for. Aber aus irgendeinem Grund funktioniert es in HAML -Dateien nicht und ich kann nicht herausfinden, was los ist oder wie man es behebt.

:help i_CTRL-X_CTRL-U sagt, dass die Autoperation verwendet wird completefunc. Die Haml -Datei sagt, es ist es completefunc=syntaxcomplete#Complete (Und es ist gleich in Erb- und Helfer -Dateien, wo Strg-X Strg-u funktioniert gut.) Ich kann nicht finden, wo die syntaxcomplete#Complete Magie ist definiert, aber vermutlich hat sie etwas mit der Filetyp -Syntax zu tun. Mein .vim/syntax/haml.vim kommt von Vim-Haml, Also habe ich versucht, es zu entfernen, aber das Problem bleibt bestehen. Kommentiere mein ganzes aus .vimrc Hat auch nicht geholfen. Was kann ich sonst noch versuchen?

UPDATE: Ich habe meine VIM -Konfigurationsdateien und den einzigen Ort durchsucht, der so aussieht, als würde sie etwas tun syntaxcomplete#Complete ist in autoload/rails.vim und sieht so aus:

function! s:resetomnicomplete()
  if exists("+completefunc") && &completefunc == 'syntaxcomplete#Complete'
    if exists("g:loaded_syntax_completion")
      " Ugly but necessary, until we have our own completion
      unlet g:loaded_syntax_completion
      silent! delfunction syntaxcomplete#Complete
    endif
  endif
endfunction
War es hilfreich?

Lösung

Funktionen mit # im Namen sind in Autoload -Skripten definiert:

Eine Funktion, die autoladen werden kann, hat einen Namen wie diesen:
: rufen Sie den Dateinamen#funcname () an
Wenn eine solche Funktion aufgerufen wird und noch nicht definiert ist, sucht Vim die Verzeichnisse "autoload" in 'RunTimePath' nach einer Skriptdatei namens "Dateiname.vim". Zum Beispiel "~/.vim/autoload/Dateiname.vim".

Sehen :help autoload.

Andere Tipps

Sieht so aus, als wäre die Datei, die Sie suchen, Teil von VIM:

$ find /usr/share/vim/ -iname "syntaxcomplete.vim"
/usr/share/vim/vim72/autoload/syntaxcomplete.vim

Da ist ein vim.org Seite mit der neuesten Version des Skripts.

Wenn Sie die Fertigstellung anpassen möchten, können Sie einfach Ihre eigene Abschlussfunktion schreiben. Sehen :help complete-functions

Sie können auch verwenden Strg+n Vims einfache Fertigstellung zu verwenden. Es wird mit Text aus einer der offenen Dateien abgeschlossen, kann jedoch angepasst werden. (Sehen :help 'complete')

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top