投稿

ラベル(orgmode)が付いた投稿を表示しています

Emacs Org mode : 表(Table)の基本操作

イメージ
Org modeの表(Table)機能 Org modeは基本テキストベースですが、表(Table)機能を使うことが出来ます。機能としてはオフィスソフトの文書作成で表を挿入するのと同じようなものですが、表計算ソフトのような計算機能も使用することが出来る優れものとなっています。 (ただ計算機能に関しては独自の書式を覚える必要があるので、ちょっととっつきにくいかも。今回は表の基本だけ説明していくので計算機能についてはまた別で記事にする予定です) 表の形式 テキストベースの表と言っただけではどういったカタチなのか謎でしかないので、とりあえずスクリーンショットで示すことにします。 Org modeの表の形式 このスクリーンショットのように、表は区切りも含めて全て文字で構成されます。なのでテキストベースでも表が作れるということになります。各列の区切りは「|(縦線)」で構成され、行の区切りは必要なところには「-(ハイフン)」が入ります。 さて、これだけなら作ろうと思えばキーボードから1文字ずつ区切りも含めて入力しても作ることは出来ます。手間がかかりますが。しかしOrg modeでは表を作成するときにそれ用のキー操作となるので、行や列の挿入、順番の入れ替え、自動整形などが簡単に行うことが出来ます。 表の作成 表を作成するには行頭に「|」の文字を書きます 。そうすればそこから表と見なされることになり、表作成、編集用のキー操作を行えるようになります。 簡単に表作成について説明すると、まず以下のようにいくつかのセルを横一列書いていきます。 | a1 | a2 | a3 | そして、a3まで書いたあとにEnterキーを押すと表に新しく行が1つ追加されます。またTabキーを押すと、1つ右のセルにカーソルが移動します。この操作を繰り返していけば簡単な表を作ることが出来ます。 表(Table)でのキー操作 カーソル移動 上述したようにTabキーを押すとカーソルが次(右)のセルに移動します。Enterキーを押すと下のセルに移動。表の一番下でEnterキーを押すと一行分表が追加されます。 自動整形 セルに文字や数字を入れていくとセルのマスが大きくなって表がズレますが、表の中で Tab Enter C-c C-c のいずれかを押すと表が自動整形されま...

Emacs Org mode : アウトラインツリーのレベルをサブツリーごと変更する方法

Org modeでのアウトラインツリー Org modeで例えば料理のレシピ集をまとめている場合にアウトラインが次のようになったとします。 * カレーのレシピ ** 材料** 手順 *** 炒める *** 煮る ** 参考レシピ集 * ぶり大根のレシピ ** 材料 ** 手順 *** ぶりの臭み抜き *** 大根の下茹で **** 下茹でする方法 **** 下茹でしない方法 ** 参考レシピ集 これをトップレベルのヘッドラインだけ表示すると * カレーのレシピ * ぶり大根のレシピ となります。 今回の話としては、ヘッドラインをサブツリーまで含めて一括でレベル変更をしようという内容になっています。例えば上の「* カレーのレシピ」というヘッドラインを、「** カレーのレシピ」というように1つレベルを落とす、かつサブツリーもそれに合わせて1つレベルを下げるのを一括で行うといった内容です。 レベルの変更 Org modeでは「*」の数がヘッドラインのレベルとなっていて、直接「*」をテキスト入力すればレベルを任意に変更出来ます。また、ヘッドライン上でキーバインド Alt + →(もしくは←) を用いることでもレベルの変更が可能です。 サブツリーごとまとめてレベルを変更するには では、サブツリーを含むヘッドラインのレベルをまとめて変更するにはどうしたらいいでしょう?上で出した料理のレシピを例にすると、各レシピそれぞれを「魚のレシピ」「肉のレシピ」「鍋料理のレベル」などを新しくトップレベルとしてまとめ直したくなる場合にそのような操作が必要になってきます。 単純にはサブツリーまで全表示した状態で個別にレベルを変更します。ただこれでは一つずつ操作する必要があるため手間と時間がかかってしまいます。 そして上記の「Alt + →(もしくは←)」のキーバインドは、サブツリーがある場合には使うことが出来ません(下のツリーを非表示にしている場合)。 ではどうすればいいかというと、サブツリーまで含めてレベル操作するキーバインドを用いることで解決出来ます。そのキーバインドは Alt + Shift + →(もしくは←) です。 このキーバインドによりトップレベル「*」のレベルを「**」と1つ下げると、その下、さらに下のサブツ...

Org modeでどうもagendaがうまく使えてないなぁ、と思ったら設定方法が間違っていただけだった話

EmacsのOrg modeでどうにもTODOリストの取得がうまくいってないなぁ、と思って、Emacsの設定ファイル(init.el)を読んでみたら (setq org-agenda-files (list "~/org")) の設定はあるのだけど、その下のcustom-set-variablesの方で個別のファイルを指定するように書かれていた。たぶんそこで設定が上書きされて、初めに書かれた方は無視されていた模様…。 まぁ両方とも自分で設定したわけだけど、init.elはたまに見返してチェックしないとダメですね…。 もう使ってないような設定もいくつか残っているので、必要ないのはバッサリ削ってキレイにしておきたい。

Org-mode(Emacs)でのリンクの使い方について(簡単な範囲)

Org-mode(Emacs)でリンクを書くときの書式をよく忘れてしまうので、個人的なメモとして書き記しておきます。 基本書式は以下の通り。ダブルブラケットで囲ってあげます。 [[URL][タイトル]] [[URL]] リンクを扱うキーバインドは基本的には以下の2つ。 C-c C-l : リンクを編集する C-c C-o : リンクを開く リンクはマウスクリックでも開くことが出来ます。 URL以外にローカルにあるファイルを指定する場合はURLの部分を以下のように記述します。 絶対パス : file:/home/yutarine/test.pdf 相対パス : file:test-dir/image.jpg その他にもURLやファイル以外にもいろいろ指定出来たりするのですが、とりあえず基本的にはこんなところ。

Org-Mode(Emacs)のコードブロック機能でちょっとしたお遊び

イメージ
EmacsのOrg-Modeにはソースコードを扱えるコードブロックという機能があります。これは単にソースコードを書くだけでなく、Emacs内で実行してそのまま出力も得ることが出来ます。コードブロックは #+BEGIN_SRC sh echo 1 #+END_SRC こんなように簡単に書けて、これをコード内で実行(C-c C-c)するとコードブロックの下に #+RESULTS: : 1 と出力されます。この例では「sh」と指定してshellコマンドを実行していますが、他にもemacs-lispやpython、gnuplotなども指定して実行することが出来ます。 実行するには当然システムの方に指定したコマンドがインストールされている必要があります。また、実際にソースコードを実行するにはEmacsの設定ファイル内でどのプログラムを有効にするのか指定する必要もあります。もしコードブロックを書いても何も実行されない場合は、そのへんの設定を洗い直す必要があります。 (そのあたりはまた別でブログに書こうと思います) もう少しこの機能で遊んでみると、以下の動画のようにEmacsに書いた文章を喋らせるといったことも出来ます。これはコードブロック内でOpen JTalkという日本語音声を喋らせることの出来るコマンドを実行しています。 この例では若干コマンドが長くなっていますが、そのへんはシェルスクリプトを作るなどすればもっと簡単に書けるかと思います。テキストエディタであるEmacs内でそのまま実行出来るわけなので、使いようによってはおもしろいことも出来ると思います。 Org-Modeについてはその他にも数多くの機能があって実際結構役に立つことが多いので、また何かネタがあったらブログに書いていこうと思います。

スポンサーリンク