目次
目標
(2019/7/15追記:ファイルを分割するより、インダイレクトバッファーを使った方が便利ですね)
以下のようにカードを並べるようにして編集する方法を紹介します。
やり方 – ファイルを分割してINCLUDEする
カードとして扱うセクションをそれぞれ別ファイルにしてメインのテキストに以下のように書いていきます。
#+TITLE: メモ
#+INCLUDE: “./001.org” :minlevel 1
#+INCLUDE: “./002.org” :minlevel 1
#+INCLUDE: “./003.org” :minlevel 1
TEXやマイクロソフトワードでも同じような機能はあったと思います。
以下では周辺のこまごました説明を行います。
INCLUDEの書き方
#+INCLUDE: “./001.org” :minlevel 1
まず、「001.org」というファイルを読み込むというところは分かると思います。
「:minlevel 1」はどういう意味かと言うと、インクルードされたファイルの見出しの一番上位(一番少ない(min)アスタリスク)の階層のレベルを「1」にするという意味。
INCLUDEを使うとインクルードされたキテスト内に書かれた見出し行の深さが、直前にある見出しの子階層と見做されるというのが既定の動作なのでこれを変更するための記述です。
ウィンドウの移動
ウィンドウを沢山並べますので、C-x o とやっていては大変です。
以下のように設定ファイルに記述することで、コントロールキー+PageUP/PageDownでウィンドウを移動出来るようになります。
(global-set-key (kbd “<C-next>”) (lambda () (interactive) (other-window 1)))
(global-set-key (kbd “<C-prior>”) (lambda () (interactive) (other-window -1)))
参考: http://d.hatena.ne.jp/rubikitch/20100210/emacs
windmoveというパッケージでもっと設定できそうでしたが、org-modeのキーバインドが使えなくなってしまいそうでったので、最小限の設定にしました。
Control+PageUp/PageDownは、emacsのデフォルトではスクロール右左だったようです。初めて知りました。
また、分割したウィンドウの状態を崩したくないけど、広いウィンドウで編集したい場合には、フレームを新たに作れば良いでしょう。C-x 5 2 で作成できる。フレームの移動はC-x 5 o です。他はマニュアルを参考に。
分割ファイルを簡単に作ったり、開いたりするには
#+INCLUDE: “./分割ファイルを簡単に作る.org”
のようにmain.orgに記載しているところにカーソルを持ってきて C-c ‘ というショートカットでその名前がついたファイルが作成され、バッファに開かれます。
ウィンドウとフレームの状態保存
M-x desktop−* のコマンドを使います。
バージョン24からでないとウィンドウやフレームの状態は残らないようです。
デフォルトではホームディレクトリ以下に設定が保存されるようになっていますが、ここでは、編集している文書ごとに状態を保存する場合のやり方について説明します。
まず、状態を保存するには、
「 M-x desktop-save 」を実行して、状態データの保存先を編集作業のディレクトリにします。
次に起動した際に「M-x desktop-save-in-desktop-dir」を実行するとウィンドウの状態が復元されます。
「M-x desktop-save-mode」で自動セーブをON/OFFできます。
参考:「Emacsの終了時の状態を保存する」( http://lioon.net/emacs-desktop )
また、
emacs desktop-read Error (frameset): Wrong type argument: number-or-marker-p, nil
といったエラーが出る場合は以下を設定ファイルに書くと良いようです。エラーはターミナル内でウィンドウ状態を復元しようとするときに出るものだと思います。
(setq desktop-restore-forces-onscreen nil)
以下のように回避のために3行書くという記事もありましたが、私は上の一行で解決しました。
(setq desktop-restore-frames t)
(setq desktop-restore-in-current-display t)
(setq desktop-restore-forces-onscreen nil)
ファイル結合
org-modeのエクスポート機能を使います。
メインのテキストウィンドウで(別フレームでやったほうが良いでしょう)エクスポートします。
プレインテキストでの出力は、
「C-c C-e 」とすれば、フォーマットの一覧がでますので、
続けて、「 t u 」
とします。utf-8でファイルに出力されます。uが大文字であればバッファに出力されます。
単に一つのorg-mode形式のテキストにしたい場合は、シェルコマンドで繋げれば良いと思います。順番がばらばらになりますが、org-modeのキー操作M-Up 、M-Downで簡単に並べ変えられるでしょう。
さいごに
私は文章をまとめるのが苦手なので、いつも良い方法はないだろうかと考えてしまいます。しかしそんなふうにあれこれ考えるより沢山書くほうが上達するのだろうなと思いますが、org-modeが何でも出来てしまうので、ついつい今回もあれこれ試してしまいました。