5

HaskellのソースファイルをVimで編集していて、「textwidth」オプションを設定して、長すぎる行を自動的に折り返しています。だから私の〜/.vimrcは次のようになります:

set tw=78

これで、78文字より長い行を書くと、最後の単語が自動的に次の行に移動します。これは、ソースファイルにコメントを書き込む場合に非常に役立ちます。良い点は、コメント内で、最後の行が長すぎて自動的に折り返されている場合、先頭のコメント記号が各行の先頭に自動的に挿入されることです。しかし、これはCスタイルのコメントに対してのみ機能しますが、残念ながらHaskellの先頭のダッシュに対しては機能しません。

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

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

うまく包まれます

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

だから今、Haskellのコメントで同じことが起こったらいいのに

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

誰かがこれが可能かどうか、そしてどのように可能か知っていますか?この動作はどこで指定されていますか?:set formatexprまたは:set formatoptionsはそこで役立ちますか?

よろしくお願いします!

=<<ヨハネス

/編集:ところで私はvim7.3.xを使用しています

4

2 に答える 2

3

formatoptions設定を確認する必要があります。私にとっては、価値がありますcroqlcは、コメントが次の行に続くことを意味します。見る:help 'formatoptions'

:set formatoptions=croql
于 2012-05-23T12:34:20.723 に答える
2

私はvimユーザーではありません (haskell-mode通常emacsは、特定のインデント スタイルに適切に適応して「正しいことを行う」だけです) が、以下は私のクイック テストで機能するように見えました。

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

これは特に処理しません-- |が、Haskell で次のようにインデントされたものを見たことがありません。

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

次のようにコメントをインデントすることは、はるかに一般的です。

-- | 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...
-}
于 2012-05-23T18:47:26.770 に答える