タグ付けされた質問 「org-babel」

複数言語のソースコードを処理するOrgモードの機能。Orgモードのドキュメント内からソースコードを実行できるため、文芸的プログラミングドキュメントの作成や再現可能な研究の管理に便利です。[tag:org-babel]は[tag:orgmode]に「ソースコードの操作」として組み込まれ、個別の拡張機能ではなくなりました。

2
もつれたファイルの変更を元の組織ファイルに同期して戻す
脚本を書くために噴水モードで組織モードを使用しています。 組織のための組織と脚本の書式設定のための噴水。 これは私がこの目的のために使用するコードです: 組織内の(噴水)ソースブロックを操作するための設定。 ;; prevent org from messing with indentation of the source text. (setq org-src-preserve-indentation t) (setq org-edit-src-content-indentation 0) ;; open the buffer for editing fountain in another window. (setq org-src-window-setup (quote reorganize-frame)) ;; prevent a message in the edit buffer from being shown. (setq org-edit-src-persistent-message nil) ;; …

2
組織モードで2つの異なるコードブロックに共通のコードブロックを含めることはできますか?
私はorg-modeそれとは異なる要約を抽出するデータ二つのPythonコードブロックのテーブルを含むファイルを。 これらの2つのコードブロック間でいくつかの一般的な定数と関数を共有したいと思います。理想的には、他の2つのブロックのいずれかが評価されるたびに自動的に含まれて評価される別のコードブロックに共通コードをファクタリングすることでこれを行います。作成された構文では、次のようになります。 #+NAME: init_block #+BEGIN_SRC python ... common constants and functions here ... #+END_SRC #+NAME: summary_1 #+BEGIN_SRC python :prepend init_block ... data-processing code depending on init code goes here ... #+END_SRC #+NAME: summary_2 #+BEGIN_SRC python :prepend init_block ... more processing which also depends on init code ... #+END_SRC 私はこの:sessionオプションを使用できたと思いますが、2つの理由から、使用したくないでしょう。まず、C-c C-cコードブロックで使用するたびにゼロから実行するシステムではなく、ステートフルシステムをセットアップします。次に、関連して、ファイルを開くたびに共通の初期化コードを手動で評価することを覚えておく必要があります。データテーブルを更新し、サマリーブロックの1つに移動して更新するだけではできませんC-c …

1
org-babelのshとshellの違いは何ですか?
私はorg-modeから自分のシェルスクリプトにデータを取り込む実験をしていて、奇妙なことに遭遇しました。 #+tblname: simple-table | 1 | | 2 | | 3 | | 4 | | 5 | #+name: work-with-simple-list-shell #+begin_src shell :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-shell : 1 #+name: work-with-simple-list-sh #+begin_src sh :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-sh | 1 | | 2 | | 3 …

3
Org Mode Babel-インタラクティブコードブロックの評価
"cin"命令を含むC ++のソースコードブロックを組織モードで評価したいのですが、評価中にインタラクティブな評価(ユーザー入力による)を行う方法が見つかりません。コードの例: #+BEGIN_SRC C++ :results output :export code :tangle myfile.cpp #include <iostream> using namespace std; int main() { int a; cin>>a; cout<<a+1; } #+END_SRC このようなインタラクティブな評価やシミュレーション(ソースコードに偽の入力を与えること)は可能ですか?

4
Org Mode Babel-Pythonでのインタラクティブコードブロックの評価
この質問と同様に、「入力」命令を含むPythonソースコードブロックを(組織モードで)評価したいのですが、評価中にインタラクティブな評価(ユーザー入力による)を行う方法や、既知の入力を提供する方法が見つかりません事前に(たとえば、ファイルに格納されています)。 私の制約はinput、これらすべてが学生のための教科書に含まれるべきであるので、指示を明示的に使用することです。 コードの例: #+BEGIN_SRC python :results output a= input("Value") print(a) #+END_SRC そのようなインタラクティブな評価をしたり、それをシミュレートしたりすることは可能ですか(ソースコードに偽の入力を与えることによって)?

4
Org-mode:stdinとしてソースブロックの出力を次のソースブロックにパイプします
1つのソースブロックの出力を標準入力として次のソースブロックにパイプ処理しようとしています。ここに私がこれまでに持っているものの例: Create stdin data: #+header: :exports code #+header: :results output #+begin_src sh echo "That goes to the next" #+end_src #+name: piped #+RESULTS: : That goes to the next Use "piped" as stdin: #+header: :exports results #+header: :stdin piped #+header: :results output #+begin_src sh VALUE=$(cat) echo "I got:" echo "$VALUE" #+end_src …

1
組織モードでのコードブロックのデバッグ
組織モードブロックのエラーのトレースを簡単にするために利用できるツールはありますか?(私は特にPythonで作業しています) 現在のワークフローは、機能するコードをソースブロックにコピーし、最小限の変更のみを行うことです。大きなエラーが発生した場合は、それを別のファイルにコピーして戻すか、ブロックをもつれさせて結果のファイルをデバッグします。 不足しているツールはありますか?(たとえば、エラーが発生している行に移動するコンパイルモードのようなもの。) 編集:たとえば、Cc Cv vを見つけただけで、noweb参照が展開されたバッファーが表示されます。残念ながら、これにはヘッダー引数が含まれていないため、インタープリターに最初にそれらをインポートしないと、このコードは実行できません。同様に、returnステートメントがあり、それが実行されないようにしていて、バッファーが編集できない場合は、Pythonブロックから実行可能なソースを取得するためにいくつかの手順を実行します。

2
組織には、組織以外のユーザーとのコラボレーションなど、「逆絡み」操作がありますか?
自分のノート/テスト/コードを組織で記述してorg-bable-tangleから、ソースファイルの生成に使用したいと思います。ただし、これらのファイルはすべてバージョン管理の対象であり、組織環境外から変更される可能性があります。 いくつかのsrcブロックを用意して、それぞれがバージョン管理にコミットするさまざまなファイルに束ねられるようにしたいと思います。しかし、同時に、バージョン管理から変更をプルした後、これらの各ファイルを「もつれ」て組織ファイルに戻すことができます。 これを行う簡単な方法はありますか?私は今遊んで検討していますinsert-file-contents

4
組織モードでのClojureコード評価で出力が生成されない
読み書きのプログラミングを行うために、組織ファイルからclojureコードを実行しようとしています。 機能していないもの: ソースコードブロックを実行すると、が表示されNo output producedます。 サンプルsrcコードブロック #+begin_src clojure (+ 2 2) #+end_src clojure 機能しているもの: cider-jack-in は機能しており、nREPLでコードを実行できます .cljファイルからコードを実行できます ありがとう 細部 Spacemacsを使用したEmacs 25.1 Org-Mode 9.0.5 組織バベル構成 (defun dotspacemacs/user-config () (require 'ob) (require 'ob-clojure) (require 'paredit) (require 'org-babel-clojure) (setq org-babel-clojure-backend 'cider) (require 'cider) (org-babel-do-load-languages 'org-babel-load-languages '((clojure . t))) ) その他の情報が必要な場合はお知らせください

1
ソースブロックをもつれさせながら、STDINからユーザー入力を読み取ることはできますか?
ソースブロックをもつれさせながらSTDINからユーザー入力を読み取ることはできますorg-babel-tangleか? 私はこれを知っています:Org Mode Babel-インタラクティブコードブロックの評価。 それは助けには、それはまだシェルから適切なSTDIN入力を許可しないように、この特定のユースケースを解決しますが、限られた入力をシミュレートしていない内部のEmacsに。 バックグラウンド OrgのBabelを使用して、1つのorgファイルからいくつかのチュートリアルを実行することにより、新しいプログラミング言語(PerlとBash)を学びたいと思います。 問題は、多くのチュートリアルがSTDINに依存していることです。たとえば、次のperl tidbitを実行するとします。 #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is your name?"; my $name=<STDIN>; say "Hello $name, how are you?"; #+END_SRC EmacsはユーザーのインタラクションがSTDINに名前を正しく入力するのを待たず、すぐに出力します: #+RESULTS: : What is your name? : Hello , how are you? …

3
1つのバッファーで複数のソースブロックを編集する
同じファイルに絡まっている複数のソースブロックがあります。C-c '1つのブロック内で呼び出すと、この特定のブロックのみが新しいバッファーに表示されます。 (この特定のスニペットだけでなく)このバッファ内のこのファイルのすべての部分を表示する可能性はありますか? 例: #+begin_src emacs-lisp :tangle foo.el (defvar *ok* "") #+end_src This is where the variable is stored... #+begin_src emacs-lisp :tangle foo.el (defun add-one (n) (+ 1 n)) #+end_src C-c '最初のブロックでヒットすると、次のようになります。 (defvar *ok* "") でも私はしたい: (defvar *ok* "") (defun add-one (n) (+ 1 n))

1
組織モードのコードブロックにエラーと警告を表示する
OrgファイルのPythonコードブロックを評価するときに警告とエラーを報告できるようにしたいと思います。 コードブロックにPython構文エラーがある場合、Orgはそれらをと呼ばれる別のバッファーにポップアップ表示します*Org-Babel Error Output*。を使用して配列の結果をOrgモードにテーブルとして返す機能を保持しながら、そこにも自分の警告を送信できると便利です:results value。 明確にするために、これが私がうまくいくと思っていた種類のダミーの例です: #+BEGIN_SRC python import sys sys.stderr.write('Warning.\n') sys.stderr.flush() return [['Table', 'header'], ['table', 'data']] #+END_SRC #+RESULTS: | Table | header | | table | data | 追加のために編集:org-modeリストに関するこのディスカッションは、コードブロックの評価が失敗した場合にのみエラー出力が表示されることを示唆しています。したがって、これは可能であるように見えますが、exit(1)またはを使用して評価を中止することによってのみ同様です。

1
Org Babelは、システムタイプに基づいて条件付きでコードブロックをもつれさせることができますか?
編集:私はまだバベルのロープを学んでいる間、私は約読んだsystem-type、emacs-versionとwindow-system彼らは私がここで述べてきた動作を取得するために必要なすべての情報が含まれているような音の変数、。実際、必要に応じて、コードブロックでOS固有のコードを条件付きでラップすることもできます。しかし、これがこれに取り組む最善の方法であるかどうか疑問に思っています。 私はBabelを使用してEmacsの読み書き可能な設定ファイルを作成しています。私が頻繁に使用するすべてのプラットフォーム(基本的にはさまざまなLinuxディストリビューションやMac)で設定ファイルを機能させたいのですが、その一部にはシステムに依存する設定が含まれます(たとえば、Macで使用するデフォルトのフォントはLinux Mintで使用しているものとは異なります)。 私がelispを使用してMacを使用しているかどうかを確認する方法を見たのは確かです(したがって、システム固有の設定をこれに基づいて何らかの条件でラップすることができます)が、Org / Babelには、自分が使用しているシステムのタイプを検出する方法がいくつかあります。これにより、システムごとに異なるコードブロックを記述できます。さらに良いことに、これはEmacsの異なるバージョンでも実行できますか?私は次のようなコードを想定しています(プラットフォーム名とヘッダー名は意図的な例です) #+Platform: LinuxMint #+Emacs: GNU Emacs #+EmacsVersion: 24+ #+BEGIN_SOURCE EMACS-LISP [Some configuration for Linux Mint and GNU Emacs 24+] #+END_SOURCE #+Platform: LinuxMint #+Emacs: GNU Emacs #+EmacsVersion: 22.1 #+BEGIN_SOURCE EMACS-LISP [Some other configuration for Linux Mint and GNU Emacs 22.1] #+END_SOURCE #+Platform: Mac #+Emacs: Aquamacs #+EmacsVersion: …
10 org-babel 

3
org-babelを使用して、関数呼び出しの結果に名前を付けて再利用する方法
ではorg-mode、関数と変数を定義してから、最初の変数に対する関数呼び出しの結果を別の変数に割り当てようとしています。しかし、その後、この新しい変数を後続の関数呼び出しで使用できないようです。 関数呼び出しのインライン化は機能しますが、最初に変数の値に影響を与えると、最初の関数呼び出しで問題が発生した場合にデバッグを高速化し、コストがかかる可能性のある計算の重複を回避できます。 MWE:((require 'ob-emacs-lisp)必要に応じて使用) #+name: square #+begin_src emacs-lisp :var x=3 (message (format "%s" (* x x))) #+end_src #+RESULTS: square : 9 #+name: value : 45 #+name: squaredvalue #+call: square(x=value) #+RESULTS: squaredvalue : 2025 Now I try to reuse this value: #+begin_src emacs-lisp :var res=squaredvalue (message res) #+end_src #+RESULTS: : nil …

1
LaTeXソースブロックの一貫した構文強調表示を行う
org-babelコードブロックの構文強調表示のためのOrgマニュアルのソリューションは、ネイティブフォントをオンにすることです。 (setq org-src-fontify-natively t) ブロックで囲まれたLaTeXコードでうまく機能します #+BEGIN_SRC latex ただし、次のブロックは対象外です。 #+BEGIN_LATEX 両方のタイプのLaTeXソースブロックで同じLaTeX構文強調表示スキーム/設定を使用する方法はありますか?

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