markdown-modeのfill-paragraphを修正するには?


8

markdown-mode段落全体を埋めるのは非常に得意ですが、本当に気になる欠点が1つあります。段落に2つのスペースで終了する行が含まれている場合、それは充填を開始するだけで、その行は充填されません

たとえば、2行目が2つのスペースで終了する次の例を考えてみます。

If I hit M-q right here at the start, this line will get broken into two, but the others won't.
If I hit M-q right here only the NEXT line will get split. All because this line here ends in two spaces.__
If I hit M-q right here, this line will get broken into two, but the others won't.

例はそれ自体を説明しています。M-q各行の先頭でヒットしても、次のように残っています。

If I hit M-q right here at the start this line will get broken into
two, but the others won't.
If I hit M-q right here only the NEXT line will get split. All because this line here ends in two spaces.__
If I hit M-q right here, this line will get broken into two, but the
others won't.

私が欲しいのはこれです:

If I hit M-q right here at the start this line will get broken into
two, but the others won't. If I hit M-q right here only the NEXT line
will get split. All because this line here ends in two spaces.__
If I hit M-q right here, this line will get broken into two, but the
others won't.

Q:このようにするにはどうすればよいfill-paragraphですか?

明らかに、markdown-mode真ん中の行全体を段落の区切りと見なしています。

回答:


1

したがって、これに対する解決策の1つの洗練されていないハンマーはparagraph-separate、ファイルローカル変数として設定することです。モードはそれを"\\(?:[ \t\f]\\|.* \\)*$"モードローカル変数として設定します。次のようにデフォルト値に戻した場合(のヘルプ文字列から取得paragraph-separate):

-*- mode: markdown; paragraph-separate: "[  ^L]*$" -*-

それから私はあなたが探している行動を取得します:

If I hit M-q right here at the start, this line will get broken into
two, but the others won't.  If I hit M-q right here only the NEXT line
will get split. All because this line here ends in two spaces.__If I
hit M-q right here, this line will get broken into two, but the others
won't.

これを紹介するgitリポジトリのコメントは次のとおりです。

段落を埋めるときに改行を尊重する

このパッチの欠点は、段落移動コマンドもハード改行で停止するため、このモードでの「段落」の定義がわずかに変更されることです。

たくさんのトレースを行った後、down によって実際に呼び出された関数があると思います。しかし、それは複雑であり、そのコメントを見た後でも、私はまだ何が起こっているのか正確に理解していません...したがって、鈍いハンマーであり、それが他にどのような結果をもたらすかわかりません。しかし、それはうまくいくようです。:-)M-qfill-individual-paragraphs


ありがとう。残念ながら、これは私が探している動作を取得しません。最初の2行は正しく入力していますが、3行は正しく入力されていません。ここにある段落と質問の「望ましい結果」のわずかな違いに注意してください。3行目は、寄せ集めに引き寄せられ、マークダウンによって段落が実際にレンダリングされる方法が変わります。それは望ましくありません。3行目は、独自の行のままにする必要があります。これはEmacsのfill-paragraphロジックの制限であり、専用の関数でのみ修正できると思います。
Malabarba 14

ああ、私はそれを逃した!:-(
カーペット敷きのセントアードバーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.