ワンライナー組織ソースのもつれ


7

時々、特にメモを取る場合、文芸的なorgファイルには、次のように1行のソースブロックを含めることができます。

* Taking notes
:PROPERTIES:
:tangle: whatever.pl
:comments: org
:END:

Perl set command
#+BEGIN_SRC perl
set $random_var=1;
#+END_SRC

Perl unset command (just making it up... :P)
#+BEGIN_SRC perl
unset $random_var;
#+END_SRC

このようなアプリケーションの場合、#+BEGIN_SRC...#+END_SRCプラグマは過剰に見えます。簡単なテンプレートは入力を減らしますが、組織のドキュメントはまだ少しあふれています。

これを行う簡単な方法はありますか?aで始まる行:が自動的に逐語的テキストになることを知っています。org-tangleで同様のことを行う方法はありますか?

親モードのソースの強調表示機能と複雑な機能を維持しながら、次のようなソリューション、または少なくともこれらの行に近いソリューションを探しています。

* Taking notes
:PROPERTIES:
:tangle: whatever.pl
:comments: org
:mode: perl
:END:

Perl set command
: set $random_var=1;

Perl unset command (just making it up... :P)
: unset $random_var;

見た目がすっきりしていて見やすく、IMHOは少しうるさくありません。

任意の提案をいただければ幸いです。前もって感謝します!


ソースコードブロックの開始と終了について、ファイル全体に対して非表示/再表示コマンドを実行し、間に挟まれたものは何でもかまいませんか?開始と終了を持ってしまう...代わりに、またはあなたが隠されたテキスト(例えば、スマイリーフェイスを示すために、好きな速記何でも使用することができます)、またはあなたは隠されたラインのための一切の指標持つことはできません
lawlist

@lawlist例を理解できません...デモを見せてもらえますか?
ディージェイ2016

1
最初の例を含むバッファで、次のスニペットを評価してテキストを非表示に (save-excursion (goto-char (point-max)) (while (re-search-backward "#\\+BEGIN_SRC\\|#\\+END_SRC" nil t) (let ((ov (make-overlay (line-beginning-position) (1+ (line-end-position))))) (overlay-put ov 'invisible t)))) します(remove-overlays)。テストが終了したら、を評価します。これは、テキストを非表示にする簡単な例です。見た目...や目的に合わせて、隠しテキストのプレースホルダーを作成できますhidden text lies here。コードを評価するM-x eval-expression
法律家

@lawlistありがとう。バッファを大幅にクリーンアップします。しかし、私は上記で提案された組織モードの解決策をもっと熱望していました。1つの質問:コードを関数でラップしようとしましたが(defun clean-org-buffer() (save-excursion (goto-char (point-max)) (while (re-search-backward "#\\+BEGIN_SRC\\|#\\+END_SRC" nil t) (let ((ov (make-overlay (line-beginning-position) (1+ (line-end-position))))) (overlay-put ov 'invisible t)))))、この関数を評価すると次のようなエラーが発生しますWrong type argument: commandp, clean-org-buffer。これを助ける方法を提案できますか?
ディージェイ2016

1
M-x eval-expression RET (clean-org-buffer) RET(スニペットに変更を加えずに)を使用するか(interactive)、以前のコメント(上記の2段落)のスニペットの直前に追加して、でインタラクティブに使用できるようにしM-x clean-org-bufferます。
法律家、2016

回答:


4

(org)コードブロックの構造から:

ライブコードブロックは、インラインで指定することもできます。

src_<language>{<body>}

または

src_<language>[<header arguments>]{<body>}

したがってsrc_perl{set $random_var=1;}、完全なブロックの代わりに使用できるはずです。


1
これは機能していないようです。1)構文の強調表示がなくなった、2)絡まったコードがコメントとして表示される-出力ファイル内のステートメント(この場合はwhatever.pl)ではない。私はそれを間違っていますか?
ディージェイ2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.