質問

私が使用している rails.vim と私はあなたがどのように使用できるかが大好き distance_of_time_in_wordsaccepts_nested_attributes_for等長いメソッド名を自動補完する挿入モードでCTRL-X CTRL-U 。しかし、いくつかの理由で、それはHAMLファイルでは動作しませんし、私が間違って何やそれを修正する方法を見つけ出すように見えることはできません。

:help i_CTRL-X_CTRL-Uは自動補完がcompletefuncを使用していると言います。 HAMLファイルには、そのcompletefunc=syntaxcomplete#Completeを言う(そしてそれは、 CTRL-X CTRL-U が正常に動作しERBおよびヘルパーファイルでも同じです。)私はどこsyntaxcomplete#Completeの魔法を見つけることができません定義されますが、おそらくそれは、ファイルタイプの構文とは何かを持っています。私.vim/syntax/haml.vimのvim-HAMLするから来ているので、私はそれを削除しようとしたが、問題が解決しません。 私の全体の.vimrcをコメントアウトすると、いずれかの助けにはなりませんでした。私は他に何を試すことができますか?

UPDATE:私は私のvimの設定ファイルを検索し、それがsyntaxcomplete#Completeで何かをやっているように見える唯一の場所がautoload/rails.vimにあり、このようになります:

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
役に立ちましたか?

解決

名前に#を持つ関数は、オートロードスクリプトで定義されています:

  

自動ロード可能な関数には名前があります   
:このような       :コール・ファイル名#のfuncnameに()
  このような関数が呼び出され、それがまだ定義されていない場合は、Vimは検索します   呼ばれるスクリプトファイルは「runtimepath」の中に「自動ロード」ディレクトリ   "filename.vim"。例えば、 "〜/て.vim /自動読み込み/ filename.vim" ます。

:help autoloadを参照してください。

他のヒント

あなたが探しているファイルは、vimのの一部であるように見えるます:

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

の最新バージョンで vim.orgページがありますスクリプトます。

あなたが完了したことをカスタマイズしたい場合は、

、あなたは自分自身の補完関数を書くことができます。 :help complete-functionsを参照してください。

また、Vimの簡単な補完機能を使用するために、 Ctrlキー + N を使用することができます。これは、開いているファイルのいずれかからのテキストで完了しますが、カスタマイズすることができます。

:help 'complete'を参照してください)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top