6

下線付きの見出しを尊重するVimでテキストをフォーマットする方法はありますか?

Markdown では、見出しを表す方法が 2 つあります。

#Level 1 heading
##Level 2 heading
###Level 3 heading

レベル 1 と 2 のみ:

Level 1 heading
===============

Level 2 heading
---------------

読みやすいと思うので、下線のスタイルが好きです。

たとえば、Vim でマークダウンを作成するときに、:set textwidth=72ドキュメント全体を で再フォーマットできるようにしたいのですが、gggqGこれらの下線付きの見出しを段落として扱い、それらを 1 行にまとめます。したがって、次のことから始めたとします。

Lorem ipsum
===========

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 

パッセージ全体を実行gqした後、次のようになります。

Lorem ipsum ===========

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. 

Vim が下線付きの見出しをフォーマットしないようにする方法はありますか?

formatexprまたはを使用した解決策があるに違いないと思いますformatprgparのドキュメントを調べたところ、非常に強力であるにもかかわらず、これはその機能の 1 つではないように見えます。したがって、マークダウンを理解するために使用できる別の外部プログラムがあるformatprgかどうか、または設定でvimscriptを使用する代わりにこれを達成できるかどうか疑問に思っていformatexprます。

4

2 に答える 2

6

sortaが機能する 1 つのオプションは、下線文字列をcomments変数に追加することです。

下線文字列が固定サイズの場合、それらだけを追加できます。

:set comments+=:---------------,:===============

可変サイズ (複数) の場合:

:set comments+=n:--,n:==

複数を使用すると、段落を単一の-or =and で開始でき、後続の行にコメント文字列が付加されなくなります。

上記を削除して、+コメントを追加するのではなく、それらの文字列だけにコメントを設定します。

フォーマットが予期しない動作をする場合があります (連続する行の下線など)。これを行うためのより適切な方法があると確信していますが、うまくいけば、これで始めることができます。

:h comments
:h format-comments
:h formatoptions
:h fo-table
于 2010-04-21T20:56:54.043 に答える
0

少なくとも、いくつかのマクロを設定できます。

たとえば、最初の見出しと下線を検索してテキストを最初の段落に配置し、次に 2 行下に移動してから、次の下線から 3 行を引いた領域を視覚的に選択し、フォーマットします。

qa/^===========$/jjv/^===========$/-3<CR>gqq

aこれで、マクロを使用できます。

HTH

于 2010-04-21T12:22:47.317 に答える