28

私はMarkdownで書くのが好きで、テーブルが必要になることがよくあります。EmacsでMarkdownのパイプテーブルを編集する良い方法はありますか?私はこの種の構文を参照しています:

| Header | Header | Right |
|--------|--------|------:|
|  Cell  |  Cell  |  $10  |
|  Cell  |  Cell  |  $20  |

私は最初にEmacsのテーブルモードを試しましたが、これは素晴らしいですが、Markdownでサポートされていない「グリッドテーブル」用に設計されています(たとえば、GithubのMarkdownで)。

マイナーモードとして使用できるorg-modeのテーブルモードもあります。これはかなり近いです。ただし、交差は文字に置き換えられ+、配置コロンはサポートされていません。だからorg-tblmode最初に私にこのようなものを与えます:

| Header | Header | Right |
|--------+--------+-------|
| Cell   | Cell   | $10   |
| Cell   | Cell   | $20   |

次に、手動で次のように編集する必要があります(交差文字の編集と配置コロンの追加)。

| Header | Header | Right |
|--------|--------|------:|
| Cell   | Cell   | $10   |
| Cell   | Cell   | $20   |

org-tblmodeこれも処理できる可能性はありますか?EmacsでMarkdownのパイプテーブルを編集するために他に何を使用/提案しますか?

4

7 に答える 7

11

OrgMode にはorgtbl-to-generic、orgmode のテーブルをエイリアン形式に変換するための優れた機能があります。https://gist.github.com/yryozo/5807243に基づいてカスタムコンバーターを定義する簡単な例を見つけましorgtbl-to-genericた。ORGTBL RECEIVE/SEND 機能の説明も参照してください: http://dynamic-thinking.blogspot.ru/2009/11/orgtbl-mode.html . Emacs でカスタム関数を定義し、オートロードに配置する必要があります。その後、テーブルの編集にマイナー モードを使用できます。orgtbl-to-gfmorgtbl-mode

小さな制限: Emacs OrgMode 内の self は中央揃えをサポートしていないため、左右の列揃えのみがサポートされています。

上記のサンプル組織モード ソースを参照してください。

<!---
#+ORGTBL: SEND sample orgtbl-to-gfm
| Column 1      | Column 2 |
|---------------+----------|
|               | <l>      |
| Sample line 1 | 100      |
| Sample line 2 | 200      |
-->

そして、org-mode ソースから変換されたマークダウンの結果:

<!--- BEGIN RECEIVE ORGTBL sample -->
| Column 1 | Column 2 |
|---|---|
| Sample line 1 | 100 |
| Sample line 2 | 200 |
<!--- END RECEIVE ORGTBL sample -->

両方とも同じファイルに配置されました。

于 2014-01-03T20:54:50.930 に答える
4

関数をキーにバインドして、リージョンを右揃えで変換します。

(defun markdown-regexp-right (beg end)
  (interactive "r")
  (replace-regexp "-\|[^-]" "-:|\n" nil beg end)    
  (replace-regexp "-\\+-" "-|-" nil beg end)
)

これは、正しい位置合わせの場合に置き換え-+-られ-|-、置き換え-|られます。:|

\n が含まれていることに注意してください。これにより、他のものが-|-に変更されないようになりますが、.-:|-|new-line

于 2013-01-11T14:54:02.207 に答える
3

Org-mode は魅力的なほど近いので、これはマイナー モードの orgtbl が任意の構文で変換されるケースだと思います。したがって、:-、-: または :-: を含む行はコロンが削除され、2 行目に<l>,<c><r>追加され、org-mode にアラインメントを通知します。その場合、逆の翻訳はそれほど難しくないはずです。悲しいことに、私は今それを書くほど Emacs が得意ではありません。ちなみに、pandoc のマークダウン パーサーは、org-mode によって生成された + を受け入れます。

もう少し詳しく見てみると、org-mode の既存のフックには、テキストの周りに少し手抜きが必要であり、いくつかの編集機能が適切であると思います。これは私の最初の emacs lisp の試みであるため、orgtbl と markdown の間で変換する私の emacs lispは恐ろしいものではありませんが、テスト テーブルを変換することができました。

于 2013-09-02T13:44:18.397 に答える