9

VIM オートコンプリートを機能させようとしてきましたが、残念ながら問題が発生しています。

今、私は基本から始めてみました。最初にHTMLドキュメントでオートコンプリートを機能させようとしています。しかし、これでも問題になりつつあります。

正しい DOCTYPE を設定し、別のものを指定して、Transitional、Strict、または XHTML または HTML5 でも動作するかどうかを確認しましたが、どれも動作していないようです。

htmlcomplete.vim ファイルは実際には「autoload」ディレクトリにあります。

私のvimrcファイルでは、正しい設定が適用されています:

filetype plugin indent on

しかし、まだこれは機能しておらず、VIM での C++ オートコンプリートに関する問題のみが関連する結果であるため、調査の量は役に立ちません。(現時点ではvimは完全にはサポートしていませんが、以前に異なるシステムの複数のインスタンスで動作させたことがあるので、HTMLオートコンプリートをサポートしています。)

私は次に何をすべきだと思いますか?ここからどこへ行けばいいのかわかりません..

何があっても、「オムニ補完」オプションを使用すると。別名 (Ctrl+X、Ctrl+O)、常に次のように表示されます。

Omni Completion (^O^N^P) Pattern not found

構文の強調表示は、次のものを使用しなくてもデフォルトで機能します。

:syntax on/:syntax enable

ファイルタイプによって認識されるだけです。それでうまくいきます。「filetype plugin indent on」のコメントを外して以来、インデントが機能し始めました。しかし、私はこれを正しく動作させることができません。

しかし、おそらく、私はここでポイントを逃しており、これについて間違った方法で考えています. 私が間違っている場合は、私を修正してください。私が探している関数は、「<」と入力すると、可能なすべてのタグを含むドロップダウンリストが自動的に表示され、「<」と入力すると、さらに「div」などに絞り込まれます。私が Vim で慣れ親しんでいる機能であり、何も設定せずにデフォルトで使用します。

コマンド「Ctrl+N」または「Ctrl+P」を使用すると、可能なタグの非常に小さな (12 個のタグ) リストが表示されますが、これは手動であり、入力された「<」を自動的に検出しません。

私は間違ったものを見ていますか?Omni Completion は、構成を検討すべき適切なオプションではありませんか? それとも、これはこの機能を提供する別のプラグインでしたか?

調べてみると、いつも「Ctrl+X + Ctrl+O」をシンタックスオートコンプリートと呼んでいるので、この機能を知ったのだと思いました。しかし、多分私は間違っています。

それで、誰かがこれを私によりよく説明するのを手伝ってくれますか、正しい方向に向けてください。または、私が正しい道を歩んでいることを知らせて (そうであれば)、この問題の解決を手伝ってくれますか?

君たちありがとう。気をつけて。

ここに要求された情報は次のとおりです。

vimrc ファイルはこちら: http://pastebin.com/QfUDVvdP

私のバージョンは 7.3 (別名 vim73) です

GVIM は実際にはもっと紛らわしいので、CLI バージョンを使用しています。しかし、私は両方を持っています。そして、それらは同じ vim ランタイムを使用します。

これはUbuntu 12.04への新規インストールであり、これも新規インストールであるため、プラグインや追加機能は追加していません。変更または追加されたのは、opa.vim と opajs.vim と同様に、smali.vim シンタックス フォルダへのシンタックス ハイライトのみです。opacomplete.vim もオートロードします。

/etc/vim/ フォルダーには、vimrc と vimrc.tiny、gvimrc があります。

vim のすべてのファイルは、デフォルトのディレクトリ /usr/share/vim/vim73/ および /usr/share/vim/ にあります。すでに指定されているもの以外のファイルは移動、変更、または変更されません。

それが役立つことを願っています。

4

2 に答える 2

1

まず第一に、Omni Completion は自動的に機能しませんでした (または機能しません)。「<」を挿入するとポップアップが表示されるはずだとおっしゃいましたが、これはデフォルトでは Vim では機能しません。Ctrl XO の組み合わせを押す必要があります。少なくとも私にとってはうまくいきません。

http://vimdoc.sourceforge.net/htmldoc/version7.html#new-omni-completion

あなたはそれか何かのためのプラグインを持っていると思います。それを実装するのは難しくありません。プラグインをロードせずに Vim を起動して確認します。とにかく、質問に。

多くの人は、Vim 7+ がXML/XHTML/HTML 言語(プラグインは必要ありません!) を適切にサポートし、必要な XML ベースの言語で拡張できることを知りません。できることは、オムニ補完を提供するために使用される Vim 定義を準備する DTD/RNG コンバーターを使用することです。

たとえば、私の Vim インストールには、デフォルトで HTML4 および XHTML 言語のサポートが含まれています。

$ rpm -ql vim vim-common | grep xml
/usr/share/vim/vim73/autoload/xml
/usr/share/vim/vim73/autoload/xml/html32.vim
/usr/share/vim/vim73/autoload/xml/html401f.vim
/usr/share/vim/vim73/autoload/xml/html401s.vim
/usr/share/vim/vim73/autoload/xml/html401t.vim
/usr/share/vim/vim73/autoload/xml/html40f.vim
/usr/share/vim/vim73/autoload/xml/html40s.vim
/usr/share/vim/vim73/autoload/xml/html40t.vim
/usr/share/vim/vim73/autoload/xml/xhtml10f.vim
/usr/share/vim/vim73/autoload/xml/xhtml10s.vim
/usr/share/vim/vim73/autoload/xml/xhtml10t.vim
/usr/share/vim/vim73/autoload/xml/xhtml11.vim
/usr/share/vim/vim73/autoload/xml/xsd.vim
/usr/share/vim/vim73/autoload/xml/xsl.vim
/usr/share/vim/vim73/autoload/xmlcomplete.vim
/usr/share/vim/vim73/compiler/xmllint.vim
/usr/share/vim/vim73/compiler/xmlwf.vim
/usr/share/vim/vim73/ftplugin/xml.vim
/usr/share/vim/vim73/indent/xml.vim
/usr/share/vim/vim73/syntax/docbkxml.vim
/usr/share/vim/vim73/syntax/xml.vim

その秘訣は、Vim のオートローディング機能です。開いているファイルに正しい DOCTYPE 定義が含まれていることを確認する必要があります。これを HTML および XHTML ファイルに使用すると、Vim 7+ は自動的に XML/HTML オムニ補完を有効にします。HTML4 の例:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd">
<html>
</html>

ここで body タグを挿入してみてください。「bo」と入力して Ctrl X O. Bang を押します。属性を追加してみてください。「on」と入力して、もう一度押してください。ビンゴ。

Ctrl XO およびその他の機能を使用できます。

  • 「<」の後に、コンテキストに応じてタグ名を完成させます
  • タグ内の完全な適切な属性
  • 属性に可能な値の数が限られている場合、それらを完成させるのに役立ちます
  • エンティティの完全な名前 (|xml-omni-datafile| および現在のファイルで "
  • "の後に使用する場合

詳細情報 (および独自の XML 定義によるユーザーのカスタマイズ) は次のとおりです。

http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni

于 2012-08-20T11:42:00.403 に答える
1

オムニコンプリートは適切な機能で<C-x><C-o>あり、適切なショートカットです。ちなみに、これをオートコンプリートと呼ぶのはやめたほうがいいでしょう。自動化にはほど遠いからです。

はすでに に~/.vim/autoloadあるので、何も必要ありません。htmlcomplete.vim$VIMRUNTIME

簡単に言えば、あなたの設定について私が知っていることを考えると、補完はうまくいくはずです。

しかし、そうではありません。のコンテンツ、~/.vimrcインストールされているプラ​​グインのリスト (およびインストール方法/場所) と、Vim バージョン、プラットフォーム、および GUI または CLI バージョンを使用しているかどうかの詳細を追加してください。

編集

オムニコンプリートは適切な機能ですが、自動補完を有効にする組み込みの設定がないため、キーストロークの各カップルでボンネットの下でオムニコンプリートを使用する特定のプラグインを探しています。AutoComplPopはそのようなプラグイン (および私が使用するプラグイン) の 1 つですが、他にもあります。あなたのこれまでの経験に最も近いものを選んでください。

/usr/share/vim/またはには何も触れないでください/etc/vim/。すべての設定は に~/.vimrc、プラグインは に入る必要があります~/.vim/

~
  .vim/
    autoload/
      opacomplete.vim
    syntax/
      opa.vim
      opajs.vim
      smali.vim
  .vimrc

先に進む前に、デフォルトのファイルとディレクトリを元の状態に戻す必要があります。

終了編集

于 2012-08-20T11:02:06.507 に答える