2012-05-23 5 views
5

VimでHaskellのソースファイルを編集していて、自動的にオーバーラインの行を折り返すように 'textwidth'オプションを設定しています。今、私は長い最後の単語が自動的に次の行に取られます78文字以上である行を書くとき自動的にHaskellの先頭のダッシュを続けます。Vimのテキストラップに関するコメント

set tw=78 

:だから私の〜/ .vimrcとのように見えます。これは、ソースファイルにコメントを書くときに非常に便利です。いいところは、コメントの中で、最後の行が長すぎて自動的にラップされたときに先頭のコメントシンボルが各行の先頭に自動的に挿入されることです。しかしこれはCスタイルのコメントのためだけに機能しますが、残念なことにHaskellの先頭のダッシュはありません。

したがって、たとえばJSファイル内

/** 
* This is a very long comment which is longer than 78 chars, yeah really 
* longer than 78 chars... 

のように、同じことがHaskellのコメントで発生したのであれば、今、それはいいだろうきれいに包まれただけでなく、

// This is a very long comment which is longer than 78 chars, yeah really 
// longer than 78 chars... 

ます

------------------------------------------------------------------------------ 
-- | This is a very long module description which is longer than 78 chars, 
-- yeah really longer than 78 chars... 

これが可能かどうか、どのように知ることができますか?この動作はどこで指定されていますか?それは:formatexprを設定するか、または:formatoptionsを設定するとそこに助けられますか?

ご協力いただきありがとうございます。

= < <ヨハネス

/編集:ところで、私はあなたがformatoptions設定を確認してくださいVimの7.3.X

+1

これは自動的に発生します。あなたのオプションを上書きしている可能性があるものを確認することができます。 @daniel kullmannのように、 '' formatoptions''に 'c'フラグをつけてください。 Vimがコメントを認識するためのメカニズムについては、第30章で説明します。また、 'format-comments'のトピックの下で、より深く理解してください。 – sidyll

+0

RTFMヒントをありがとう。 :)それは私の質問をほぼ解決しました。 [manual](http://vimdoc.sourceforge.net/htmldoc/change.html#format-comments)で説明されているように、カスタマイズされたコメントを設定することは可能です。これを私のhaskell.vim構文ファイルに追加しました: 'set comments = s1: - \ \ |、m: - e: - ' これはCスタイルのコメントとしてはうまくいくようですVimはとてもスマートなので、コメントの 'e'と' m'部分の始めに空白が入ります。これをどこで設定できるのか? – JHannes

+1

Vimは最近(わずか1年または2年以内)、Haskell用の構文ファイルでの出荷を開始しました。おそらくアップグレードする必要があります。 –

答えて

2

を参照してください。

-- | Bla Bla 
-- continues right under the Bla 

:set comments=:--\ ,sr:{-,m:\ ,ex:-} 

これは、具体的-- |を処理しませんが、私は実際にHaskellで何かを見たことがないが、このようにインデント10

このようなコメントをインデントするには、はるかに一般的な私の知る限りである:

-- | Usually a one-line short description. 
-- 
-- Continued like this, with a longer description. 

それとも、この変形例:

-- | Bla bla slightly longer than one line description 
-- bla bla. 
-- 
-- Bla bla additional details. 

あなたの宣言を記述したテキストの長い走行体をしたい場合は、することができます代わりに複数行のコメントとして開始してください。

{-| 
The definition of 'myfunc', Act I, Chapter 1. Bla bla bla bla 
bla bla... 
-} 
+0

私は常に私のコードに記載されているハドックベースのコメントの最初のスタイルを使用して...私はそれがきれいに見つける:) – ivanm

3

を使用します。私にとっては、値はcroqlです。 cは、コメントが次の行に続くことを意味します。 :私はvimユーザー(とemacsためhaskell-mode通常ちょうど「正しいことをする」優雅に一定のインデントスタイルに適応)が、以下は私の簡単なテストのために働くように見えないんだけど:help 'formatoptions'

:set formatoptions=croql 
+1

あなたの答えをありがとう、 ':set formatoptions?'は 'tcq'を示します。 Vimがコメント自体を認識できないので、 'croql'に設定することをお勧めしますが、私の問題は解決しません(上記のコメントを参照)。しかし、とにかく、ありがとう! :D – JHannes

関連する問題