一連の行を作業用HTMLリストに変換する方法は?


11

現在、これはgeditのようなものではるかに簡単だと思うタスクです。「\ n」(改行)を「</ li> \ n <li>」に置き換えるだけで、リストを取得できるためです。

Emacsですぐに実行できないと思われるいくつかの小さなことの1つですが、頻繁に使用するものです。

回答:


7

これを行う最も直接的な方法は、

  • リストになるテキスト行の領域をマークします
  • M-%query-replace)を押す
  • タイプC-q C-j RET </li> C-q C-j <li> RETC-q C-j引用符で囲まれた改行文字を挿入)
  • 押す!とすべての出現箇所を置き換えます

開始タグと終了タグを変更する必要がありましたが、これでうまくいき、Cq Cjを覚えさせることができると思います。
mattl 2014

10

代わりにクエリ置換を行うには、複数カーソル使用できます。

ここに画像の説明を入力してください

次のようなものの使用も検討してください。

(defun wrap-html-tag (tagName)
  "Add a tag to beginning and ending of current word or text selection."
  (interactive "sEnter tag name: ")
  (let (p1 p2 inputText)
    (if (use-region-p)
        (progn
          (setq p1 (region-beginning) )
          (setq p2 (region-end) )
          )
      (let ((bds (bounds-of-thing-at-point 'symbol)))
        (setq p1 (car bds) )
        (setq p2 (cdr bds) ) ) )

    (goto-char p2)
    (insert "</" tagName ">")
    (goto-char p1)
    (insert "<" tagName ">")
    ))

ソース


この種の編集を定期的に行っている場合は、複数カーソルパッケージを強くお勧めします。時々私はそれなしでどうやってうまくいったのかと思います。
nispio 2014

@ welldan97どのようにしてそのGIFを作成しましたか?ちょうど好奇心が強い…
lunaryorn 14

@ lunaryorn、LICEcap for OS X 経由。まだ試していませんが、Quicktimeの方が良いと聞きました。
welldan97 2014

8

query-replace-regexpC-M-%)を使用できます。交換してください^\(.*\)$<li>\1</li>


1

フル機能のソリューションについては、テキストを組織モードのリストに変換し、HTMLにエクスポートします。行の前に「*」、アクティブorg-mode、実行を付けorg-html-export-to-htmlます。


「本当にテキスト操作を使ってHTMLを生成するべきではありません」-これを実行したい理由はたくさん考えられます(常に入力を制御できるわけではありません)。
shosti 2014

入力行の前に '*'を付けることはあまり質問しませんか?
artagnon 2014

組織モードのエクスポートは自動化されたソリューションには優れていると思いますが、HTML生成のための基本的なテキスト操作を思いとどまらせることは役に立たないと思います。
dgtized '23

それを回答として追加したい場合は(すべての行の前に「*」を付け、アクティブ化してorg-modeからHTMLにエクスポートします)、それで問題ありませんが、「迅速かつ汚い」ことを求めて人々を叱るのは理に適っていないと思いますHTML生成。
shosti 2014

けっこうだ; 言い換えました。
artagnon 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.