org-mode 私の使い方

他の人がどういう風にorg-modeを使っているのかorg-modeを使い初めたときは気になりました。なにせ機能が多いので、ひとまず誰かの使い方を真似てみようと思い、org-modeによるGTDの実践方法などを読みました。海外の方が書かれたものの翻訳が以前あったのですが、探してみたところ、残念ながら見つけられませんでした。

今回はこれからorg-modeを始める人の為に私のやっている方法を紹介してみようと思います。ただし、全体を俯瞰できるよう、細かな説明は省いています。詳しくはマニュアルなどを参照して下さい。

OrgMode マニュアル

“org-mode 私の使い方” の続きを読む

GoogleとYahooのかな漢字変換Web APIをEmacsから使ってみた

私はEmacsで日本語を書くときはDDSKK-NICOLAという入力方式を使っています。親指シフト入力というかな入力方法、プラス、送り仮名を指定することで効率よく漢字できるとされるSKKが組み合わされたものです。

私はさらに配布されたレイアウトをいじって濁音と半濁音は二打鍵(「た」と打ったあとで「゛」を打つ)で入力するようにしています。本来親指シフト入力といのは一文字一打鍵ですべての仮名をキーボードの数字キーを使わず下の三段で入力できるように考案されたものなので、残念な感じはしますが、キーボードを選ばないし(親指シフト入力では左右の親指それぞれで押しやすいキーが独立してないといけない)、かえって入力しやすくなる文字などもあるのです。

とはいえ、濁音・半濁音だけでなく、DDSKK-NICOLAのかな漢字変換を使っているので、その分を含めると打鍵数が多くなってしまいます。DDSKK-NICOLAでは、変換対象を指定するための打鍵が必要なのです。

そこで打鍵数を減らすためにYahootやGoogleのかな漢字変換Web APIを使ってみることにしました。

目指すのは平仮名を入力した選択範囲をAPIに送って、戻ってきた変換後の値を選択したリージョンと置き換えるというものです。

APIでは、変換候補を返してくれるので、Emacs Lispでマクロが作れれば、普通のIMEのように変換候補を選びながら入力していくことが実現することが出来るでしょう。誰か作ってくれると良いのですが。

“GoogleとYahooのかな漢字変換Web APIをEmacsから使ってみた” の続きを読む

どこでもEmacs を Virtualbox で実現

WindowsやMacでEmacsを使えるようにするのは、なかなか面倒ではないでしょうか。

OS毎に設定も異なりますし、LinuxのEmacsでさえ新しいPCに環境を整えるのはちょっと気合がいります。

いっそのことVirtualboxにEmacs(on Linux)を入れてTeratermやらMacのターミナルからアクセスすれば良いのではないかと考えました。Virtualboxを通じてホストOSのファイルシステムにアクセスもできますし。

Debian 8のNet install 版を入れて試してみることにしました。テキストしか扱わないので、Desktop環境は入れません。

一応Emacsインストールまでやりました。今現在使っている Linux Mint のEmacsやMacのCarbon Emacsと同じような状態にもっていくのには、しばらく時間がかかりそうです。

でも、これならPCが変わってもすぐに馴染んだ環境で作業できるようになるはずです。

Org-modeやMarkdown形式の見出し行のリンクを生成するだけのブックマークレット

Org-modeやMarkdown形式の見出しのあるファイルをブラウザでみるためのブックマークレットを作ってみました。とりあえず「見出しレット」と名付けました。
ブックマークレットではなく、ドラッグアンドドロップするタイプもあります。

比較的長い文章を、見出しリンクをマウスでポチポチしながら閲覧したいときはEmacsならSpeedbarがありますが、そうした環境がないとき、また、そうした環境のない人とファイルを共有するときなどに使えるのではないかと思います。Org-modeにはHTMLエクスポート機能がありますが、ちょくちょく更新するようなファイルだとその都度エクスポートするのは面倒だったので作ってみました。

以下のような特徴があります。

  • 使い方が簡単。ドラッグアンドドロップかブックマークレットを呼び出すだけです。
  • jQueryなどのライブラリは不要。ドラッグアンドドロップタイプでも1ファイルのみ。
  • ウェブサーバーに設置する必要はなく、デスクトップでも動作します。オフラインでもOK。
  • ウェブブラウザさえあれは良い
  • Markdownの見出し # に対応。

ただし、見出しのリンクを作る以外のことはしていません。書式は完全無視でベタ書きとみなして<br>をいれているだけです。見た目もショボいです。まあアイデアを紹介するための試作といった程度のものと思って下さい。

ブックマークレットタイプ

ドラッグアンドドロップタイプ

自分以外とドキュメントを共有するという点については、「markdown 共有」なんかで検索するとそういった機能を提供するサービスが沢山見つかります。gitのリポジトリを提供しているようなところであれば大体Markdownに対応していると思います。自分以外にそれらのアカウントを作ってもらったり、アプリをインストールしてもらえるようであればそれらを使ったほうがもちろん良いでしょう。

Symfony 3 学習メモ[03] ー ページ作成とデモアプリ

Getting Startedを一通り読み、ちょっとした達成感が得られたので、ひとまずSymfonyはここまでにしたいと思います😓。ですが、次にまた始める時になるべくスムーズに始められるようページ作成とサンプルのインストールくらいまではやっておくことにします。

“Symfony 3 学習メモ[03] ー ページ作成とデモアプリ” の続きを読む

親指シフト残念配列

親指シフト入力をご存知でしょうか。まあほとんどの方は知らないと思いますが、説明は省かせてもらいます。今回は親指シフト入力を知っている方だけが分かる話です。

私は親指シフト入力をするときにEmacsのDDSKK-NICOLAモードを使っています。それ以外ではローマ字入力をしています。Emacs以外で長い文章を書くこともあまりありませんし、とにかくEmacsさえインストールすれば、OSが違っても同じ操作で入力出来るので気に入っています。

さて、私が使っている「親指シフト残念配列」とはどういうものかと言うと、濁音や半濁音を2打鍵で入力してしまうという非常に残念な配列です。それをやったらもはや親指シフト入力ではない、と言う人がほとんどかも知れません。

実は2打鍵で濁音、半濁音を入力する機能というのはこのDDSKK-NICOLAに初めから実装されているものです。(勘違いでした。半濁音の「 ゜」はomeletでは左親指キーとのクロス打鍵時。2018/4/12)

私はskk-omelet-jis.elをカスタマイズして使っていますが、はじめから「 ゜」や「 ゛」が単独で配置されていました。それに気付いたとき、「もう、いいやこれで。」と思ってしまいました。

ということで、普通は親指シフトとクロス打鍵で出力する濁音、半濁音を潰してしまい、クロスで打っても同じ側の親指で打った文字が出るように改変してしまいました。半濁音は全角のピリオド「.」(単独打鍵時のzの場所)にアサインしました。(「半濁音〜」は2018/4/12に追記)

残念なことです(笑)。しかし実際、親指シフトに適したキーボードってなかなか無いですよ。ノートパソコンやMacなどスペースキーがどーんと真ん中にありますよね。私は気にしませんが、やはりMacを使うのにPCキーボードって、という人も居るでしょう。マイキーボードを使うことにしてもOSごとに環境を整えないといけない。私は家ではLinux Mint、会社ではMacとWindowsを使っています。全部の環境で同じような操作性にするのは大変そうです。OSのアップデートで入力のカスタマイズアプリが未対応だったりすると親指シフトそのものがしばらく出来なくなったり。

「残念配列」にすることでキーボードやOSの違いによるストレスから開放されます。それと本来同じ側の親指シフトで入力すべき文字がクロス打鍵で入力出来て、これが意外と楽です。

「○○、親指シフト止めるってよ」という人がいたら最後の手段として教えてあげてもらえると嬉しいです。しかし、残念配列より先に「親指シフトorzレイアウト」のほうが適当かもしれません。公式サイトは、orzレイアウト | JIS日本語キーボードでも親指シフトを楽チンにorz )です。

以上、世界で私唯一人しか使っているものの居ない「親指シフト残念配列」の話でした。

 

 

ORG-MODEでカードのようにテキストを並べて編集する

目標

以下のようにカードを並べるようにして編集する方法を紹介します。

やり方 – ファイルを分割してINCLUDEする

カードとして扱うセクションをそれぞれ別ファイルにしてメインのテキストに以下のように書いていきます。

#+TITLE: メモ
#+INCLUDE: “./001.org” :minlevel 1
#+INCLUDE: “./002.org” :minlevel 1
#+INCLUDE: “./003.org” :minlevel 1

TEXやマイクロソフトワードでも同じような機能はあったと思います。

以下では周辺のこまごました説明を行います。

“ORG-MODEでカードのようにテキストを並べて編集する” の続きを読む

MacではEmacsのキーバインドが使えて良い

Macはテキストの編集があるところではEmacsの基本的なキーバインドがつかえる。結構便利だ。Emacsユーザーが多いと思われるLinuxだが、各アプリで設定する必要があるのだろうか。文章はEmacsで書けばよいし、シェルはEmacsキーバインドなので、そんなに困ることはないのではあるがウィンドウマネージャーの設定を確認してみよう。

 

親指シフト入力 on Emacs のススメ

Emacsは人気のあるテキストエディタです。たくさんのマクロ(スマホでいえばアプリのようなものですかね)があり、文書作成やプログラミングに便利な環境を整えることができます。

Emacsの素晴らしい機能はたくさんありますが、私がおすすめしたいのは、Emacsでは、日本語入力(変換)もマクロを使おう、というものです。Emacsは大抵のOSで使えますので、テキスト編集に関してどのOSでも同じように作業ができるわけですが、さらに日本語の入力もEmacsのマクロをつかうことで、どの環境でもほとんど違和感なく作業ができるようになります。

Emacs上で使える日本語入力マクロはいくつかありますが、おそらくもっとも多く使われているのはskkではないかと思います。skkを使うことでかなり便利になると思いますが、私はローマ字入力方式のskkではなく、skkのパッケージに含まれている親指シフトカナ入力のskk-nicolaというものを使うことで、さらに便利になっている(はず)と考えています。

カナ入力というのがポイントです(親指シフト入力についてはここでは説明を省かせてもらいます)。ただのローマ字のskkだと、OSのデフォルトのIMEのローマ字入力との微妙な違いに混乱してしまいますが、カナ入力だとそうならないわけです(多分ね)。そして、長めの文章を書くときはEmacs上で、検索フォームなどに入力する程度はOS標準のローマ字入力で、という使い分けをするわけです。

そして、繰り返しになりますが、Emacsなので、OSが異なっていてもその慣れた入力方法が全く同じ使用感で使えるということになります。

親指シフト入力については、どのキーボードでも快適に入力できるわけではないというのが難点ですが、マイキーボードを常に携帯すれば買えば解決です。もしくは、私のように濁音、半濁音を2打鍵にしてしまうという残念な使い方もあります。一度、親指シフト on Emacs を試してみませんか。

org-mode期間別の作業時間集計

org-modeで計測をするとタスクの集計が分かるのだが、週毎、月毎に振り返ってみるにはどうすれば良いか分からなかったので、タスクの子階層に日毎のアイテムを「アイテム(1)」、「アイテム(2)」といった感じやっていたが、ちょっと面倒。なんとかならないかと調べてみた。

社内で他にタスク管理ツールを使っていてそれにも記録しないといけないといったケースもあるかもしれない。その場合1日の作業毎の時間がすぐに分かれば転記しやすい。

アジェンダモードで C-c C-x C-c とやると時間がカラム表示されるのであるが、ひとつのアイテムを複数の日に渡ってやっている場合はその合計が表示されてしまう。

解決策としては、「C-c C-x C-r (org-clock-report)」を使えば良いことが判明。

当たり前の答えで、読み始めから違和感を感じていた人も多いに違いないとは思うが、ひょっとしたら私と同じようにorg-modeは沢山機能があり過ぎるので、とりあえず知っいる範囲でなんとかやりくりしていて同じ悩みを持っている人がいるかも知れないということで。

やり方は、
C-c C-x C-r を実行したあと、clocktableの属性を以下のような感じに変える。「step day」が一日毎の表示指定。stepを使うときは、:blockもしくは、期間指定(:tstart、:tend)を使う必要がある。

#+BEGIN: clocktable :maxlevel 3 :scope subtree :step day :block 2015-09 :stepskip0

1日分を見たいときは、

#+BEGIN: clocktable :maxlevel 5 :scope agenda :step day :stepskip0 :fileskip0 :block today

のtodayのところで、「shift + 矢印キーの左右」で1日分を確認できる。

とても便利なので「C-c C-x C-r (org-clock-report)」のマニュアルを読んでみてはどうだろう。