2013-10-14 7 views
8

Vimは私のperlコードをコメントとして扱い続け、自動字下げは機能しません。最初の行はコメントとして扱われていたので、Vimは後で何かをインデント断念で「/ *」のでVimでは、 "/ *"をコメントとして扱わないようにするには

$dump=`cp /local/*.txt .`; 
        if ($a == 0) 
        { 
        if ($b == 0) 
        { 
        print "HELLO"; 
        } 
        } 

これは、次のとおりです。

$dump=`cp /local/*.txt .`; 
if ($a == 0) 
{ 
    if ($b == 0) 
    { 
     print "HELLO"; 
    } 
} 

はとしてフォーマットされました。

私は通りの回避策を考えることができます:手動でコメントを閉じるには

$dump=`cp /local/*.txt .`; #*/; 

もっと良い方法がありますか?

ありがとうございました。

+5

'.c'などのファイル拡張子がありますが、' .pl'ではありませんか?拡張子を変更すると、インデントが期待通りに機能するはずです。 – TLP

+7

@ TLPのコメントをフォローアップするには、 ':set filetype? 'はそのバッファに何を表示しますか?これは、VimがPerlファイルだと思っているかどうかを知らせます。 –

+3

あなたは無害 '*'を逃れることもできます!。! '$ダンプ= QXのcp /local/\*.txtを' – mob

答えて

4

あなたはcindentを使用しています。これは、特にCコードを自動インデントする(Cスタイルのブロックコメントを含む)ことを意味しています。これはあなたが実際にperlを書いているという認識を持っていません。代わりにsmartindentを試してみてください。それはperlでうまくいくようです。これを試すには、set cindent!を実行してからset smartindentを実行してください。これがうまくいけば、.vimrcファイルで変更することができます。

=字下げのキーではなく、字下げのキーについては、別のフォーマッタを使用しています。 equalprgを設定すると、使用する内容を変更できます。 perlの場合は、を使用して、選択した行をperltidyまで実行することができます。

+0

こんにちは、私は試みましたが、うまくいかないようです。インデントに "="を使用すると、常に/ *をコメントとして受け取ります。私はこれがvimの3ピースのコメント形式であり、cindentから独立していると思いますか? –

+0

@PanYanあなたは '='を使用して今までにインデントしているとは言及していませんでした。私の答えを更新する。 – AKHolland

+0

あなたのコメントはすべて正しいです。入力中に固定インデントを無効にし、 "set equalprg = pertidy \ -quiet"は "="キーで機能しました。どうもありがとう!! –

関連する問題