2020年1月25日土曜日

Emacs で org-babel-tangle を使ってみた

Emacs で org-babel-tangle を使ってみた。結構、便利かもと思った。

きっかけは、`~/bin` に置いているスクリプトを Emacs で一元管理できるかも、と思ってしまったから。 Emacs の設定ファイルは、org ファイルから el を吐き出してるのだから、出来るはず。

結果は、org-mode のbabelが設定出来てれば、 特に新しいライブラリの読み込み設定とかの必要もなかった。 ただ、私が使いこなせてなかっただけだった。

以下のように記述して、 “M-x org-babel-tangle” するだけ。 スクリプトのファイルが無事作成される。ただ、attributeは +x とはならない。当然か。

#+BEGIN_SRC shell :tangle "~/bin/test1.sh"
#!/bin/sh
echo "hello 1"
#+END_SRC

#+BEGIN_SRC shell :tangle "~/bin/test2.sh"
#!/bin/sh
echo "hello 2"
#+END_SRC

#+BEGIN_SRC shell :tangle "~/bin/test3.sh"
#!/bin/sh
echo "hello 3"
#+END_SRC

でも、これを知るまで、1時間かかってしまった。改めて初心者だと自覚する。 あと、上書き確認とか出来ればと思うが、そこまで達してない。
append は見付けた。

#+BEGIN_SRC shell :tangle "~/bin/test2.sh"  :output append
#!/bin/sh
echo "hello 2a"
#+END_SRC
とりあえず、良しとしておこう。

2 件のコメント:

  1. :shebang "#!/bin/bash" でいけるようです。
    permission を executable にする、とOrg-modeのドキュメントにありました。

    :tangle-mode (identity #o755) でもいけるんじゃないかと思います。

    返信削除
    返信
    1. ありがとうございます。
      動作確認しました。codeblock内のshebangは不要ですね。

      削除

Emacs の lsp の設定、なう(202310)

前回さらしてから、さらに1年。そう、3年めになる。 が、今回は一段と自信がない。 環境は、 Debian GNU/Linux 12 (bookworm) + emacs(29.1)。consult + company。 embark は未だに使ってない。 用途は、メモ と ...