2010-11-21 10 views
6

最近、EclipseからVimに切り替えました。私はそれを愛している。私が取り組んでいるいくつかのハングアップがありますが、私が多くの問題を抱えているのは、PHPドキュメンテーションのコメントです。 Eclipseで私が入力できます。Vim:インデントスクリプト内からテキストを変更する方法

/** [enter] 

、次の行を自動だから私は持っていると思います

* 

でいっぱいになります

/** 
* [comment goes here] 

このようなものがあります場合、私は思ったんだけどvimのために。コマンドを実行してドキュメントのコメントを自動生成するプラグインがいくつかあるようですが、入力している間にドキュメントのコメントを追加するのが大好きです。

私はPHPインデントスクリプト(http://www.vim.org/scripts/script.php?script_id=1120)を使って遊んでいましたが、ドキュメントコメントブロックの中に入っていることを認識しましたが、実際にテキストを変更してブロック内に入ると「*」と打ちます。

私は他のプラグインがそう見てきたもの試してみた:

let @z = ' * ' 
put! z 

もこれを試してみました:

exe 'normal!' '"zgp' 

が、運を。これはインデントスクリプトからは不可能ですか?もしそうでなければ、実際にVimにドキュメントコメントブロックを認識させて、入力中にそれに応じて動作させるにはどうしたらいいですか?

ご協力いただければ幸いです!

答えて

2

インデントファイルを混乱させる必要はありません。 Vimのformatoptionsは、あなただけでなく、様々な言語(PHPだけでなく)でこれを行います。

あなたformatoptionsに含まrがあることを確認してください:

:setlocal fo+=r "to set 
:set fo? "to query 

(あなただけのPHPのためにこれを有効にする場合)あなたの.vimrc.vim/ftplugin/php.vimでこれを含めることができます。

formatoptionsとファイルタイププラグインの詳細については、以下を参照してください。

+1

これは正しい方法です。非常に包括的な答えの速い要約として、私は 'set fo + = r'を.vimrcに追加すると言うでしょう。 –

+1

これはありがとうございます...偉大な仕事をしているようです – andrew

+0

私はすべてのプラグインを無効にして、私は+ = rを設定しましたが、PHPのインデントスクリプト(変更なし)を使用すると、+ = rを設定すると、仕事はありません。 foを設定しますか? == "qrowcb" ...任意のアイデア?これを無効にする可能性のある別の設定がありますか? – andrew

1

あなたのvimrcに以下のコードを追加すると、似たようなことが起こりますか?

autocmd BufNewFile,BufRead *.php setlocal formatoptions+=r formatoptions+=o 
autocmd BufNewFile,BufRead *.php setlocal comments=s1:/*,mb:*,ex:*/,://,:# 

私は現在、かなりそれはこれがないこれ、コメント<!-- --->を上書きせずに動作するようにする方法を見つけ出すことはできません。私。これは、<!-- -->コメントで自動インデントを破ります。

編集。 Johnsywebの配信には://,:#commentsが追加されました。あなたのvimrcにこれを追加すること

+0

'comments'が供給' PHPによって自動的に設定されるべきです。 vim 'インデントスクリプト。 '<! - [...] - >'コメントはHTML構文の一部です。 – Johnsyweb

+0

@Johnsywebはい、上記のスニペットは 'comments = ...'を実行して上書きします。代わりに 'comments + = ...'を実行した場合、/ * */styleのコメントは正しく動作しません。 – dennycrane

+0

私のためにすぐに使える: 'comments = s1:/ *、mb:*、ex:* /、://、:## – Johnsyweb

0

試してみてください。

let g:PHP_autoformatcomment=1 

私はMac上でだと、デフォルトで有効になっているようです。正確にあなたが述べた方法で機能します。

関連する問題