編集:私はまだバベルのロープを学んでいる間、私は約読んだ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: 24+
#+BEGIN_SOURCE EMACS-LISP
[Some other configuration for Mac and Emacs 24+]
#+END_SOURCE
揚げる大きな魚はプラットフォームです。私が使用しているemacsとemacsenのバージョンは、ほとんどの状況でこれから推測できるためです。プラットフォームは、上記で提案したものよりも粗くなる可能性があることを述べておかなければなりません。(私がLinux、Windows、またはMacディストリビューションを使用しているかどうかを本当に知る必要があるだけです。)また、これらが組み込み機能ではない場合、このようなコードブロックヘッダーを作成するにはどうすればよいですか?
編集:次のようになる可能性も高いと思います。
#+BEGIN_SOURCE EMACS-LISP :os Linux :emacs GNU :emacs-version 24+
[Some configuration for Linux and GNU Emacs 24+]
#+END_SOURCE
これが存在する場合、ドキュメントのどこかにあると思いますが、コードブロックのヘッダーの包括的なリストを見つけることができなかったようです。あなたが提供できる助けをありがとう!