gofujita notes

on outline processing, writing, and human activities for nature


Org との日々 #6

2. ぼくと Org

2-d. freewriting の〈カタチ〉

今回は具体的に、いちばん上に置いた項目「freewriting」の下で、ぼくがどんな〈カタチ〉でフリーライティングをはじめ、どんなプロセスをとおしてたとえばブログ記事のような文章をつくっているのかを、説明します。

この節は、Org のつかい方よりも文章のかき方が中心になっています。そして、Org とそのベースになった Emacs の機能が、ほんの少しずつ登場します。

そして、ぼくが実際に Org をつかってどんな操作をしているのか、イメージしてもらうことをいちばんに考えています。キーバインドや関数といったことばも出てきますが、まずは気にせず、よみ飛ばしても OK。少し先の節で、Emacs をインストールしたり Org をつかいはじめる方法を、ごくかんたんに紹介する予定でいます。

まず、「freewriting」にフォーカスします。つまり、この項目の下にあるものだけを画面に示すようにします。アウトライナーでは、フォーカス、あるいはズームインとよばれる機能ですが、Emacs では、narrowing といいます。

カーソルをその行まで移動し、narrowing のキーバインドを実行します。キーバインドとはショートカットのこと。具体的にはC-x n-sとタイプします。これはEmacs 独特のかき方で、C-xcontrolキーを押しながらxキーを押す。つぎにcontrolキーを離して、nそしてsキーを押す。この項目単位の narrowing は Org の機能です。

その結果、ほかの項目が消え、カーソルの位置にあった項目だけが表示されるようになります。

頻繁につかう機能なので、ぼくはこれをC-nと短くキーバインドしています。Controlキーを押しながらnキーを押す、です。

このキーバインド変更の仕方も、先の節で、紹介するつもりです。

最初に「freewriting」にフォーカスした画面はこんな感じ。

項目名の下はすべて白紙。この白紙に、何でもいいからとにかくフリーライティングをはじめるのが、ぼくは好きなので、わざと白紙にフォーカスしているワケです。

この段階では下位にデータがないので何も変化が起こりませんが、もし下位に何かデータがある場合、項目名にカーソルを置いてtabキーを押すと、下位に折りたたんでいたテキストなどが現われます。もう一度tabを押すと再び下位のデータが折りたたまれます。これは Org いちばんの基本操作ですから、お忘れなく。

さて本題。かきはじめに何も浮かばないことも多いですから、最初はだいたい「さて、何をかこうか」とタイプして、リターンキを押します。そのいきおいで、つづきをタイプします。

句読点は二の次、漢字も細かくは気にせず、頻繁に改行しながらタイプします。

たとえば、こんな風に。

え? 改行がおおくてヘンナカンジ?

記憶は曖昧ですが、たぶん10年ほどつづけている習慣。Tak.さんのブログ記事でみたのをマネしながら、はじめたのだと思います。でも、Tak.さんのやり方とすべて同じでもないはずです。

これがとても自分に合ったやり方だと、はじめてすぐ気づきました。

この〈カタチ〉でタイプしながらshift + spaceでかな漢字変換の確定を何度か繰り返してから、リターン。また、タイプしながらshift + spaceで漢字確定を何度か繰り返し、リターン、というリズムを意識します。

Org の話しからそれますが、このshift + spaceで確定という入力変換確定方法は、Tak.さんに教わった方法で、macOS の場合「かわせみ 3」という日本語入力プログラムで設定できます。Windows でも通常の日本語入力プログラムで設定可能と Hibiki Kurosawa さんからききました。英語をタイプするときのようなリズムに近いと、ぼくは感じていますし、Tak.さんもそういっていたように覚えています。

この頻繁に改行する〈カタチ〉の利点は、リズムをつくる以外にもうひとつ、文章を練るときに、文節などの文章の単位をならび変える作業でも便利になります。

たとえば、こんな文章があったとします。

これをよみ返すと、ちょっと読みづらい。「が」の繰り返しも気になります。まずは、短くすることを意識します。行の順番はそのままで、削ることができそうな「もう」や「ちょっと」、「たぶん」などを削ります。

つぎは、少し文章の意味に踏み込んでよみなおします。まず、「これも」という代名詞が最初にきているのが気になります。「これ」って何?

なので、行の順番を試しに入れ替えてみます。文章の意味を意識しながらよみ、句読点を見なおしながら、さらに削れそうな「です」などを見つけ、漢字のつかい方も変えます。

これでヨシ。

この行や文節の順番を入れ替えたり、一部を削除したりする作業には、Org の機能ではなく Emacs の kill と yank という機能をつかっています。

カーソルを移動させたい行の左端へ移動し、C-kで行すべてを削除 (kill。正確にはカーソルから行末まで削除)。移動先へカーソルを移動し、リターンキーを一度おして空白行をつくって、C-yでその行を貼りつけます (yank)。

複数行をまとめて移動するときは、カーソルを範囲指定の先頭 (最後尾) に移動してC-spaceでマークをつけ、範囲指定の最後尾 (先頭) までカーソルをもっていき、C-wですべてが消えます。その後は移動先でC-y

文章にすると少しややこしいので、たぶんもっとスマートな方法があると思いますが、ぼくはこの作業をマッスルメモリーする道を選びました (笑)。

一連の作業を無意識にできるようにしました。もちろん、まちがって、kill した行がなくなってしまうこともたまにありますが、そのときは、気にせずその行をもういちどかけばいい (ニヤリ)。

もちろん、Emacs には過去の修正履歴をさかのぼってたとえば30秒前のデータに戻す機能もあります (C-x u)。

ここでひとつ、小さいワザも紹介しておきます。

改行の多いかき方をしているといきおいにのって、すぐにカーソルが、入力している画面の下の方へ行ってしまいます。

ぼくは基本、カーソルが入力画面の真ん中あたりにあるのが好きなのでそんなときは、C-l(小文字のエル)。カーソルのある行が入力画面の真ん中へ移動します。

このC-lもマッスルメモリーして頻繁に使い、カーソルのある行が大体入力画面の真ん中にくるようにしています。このC-lも Emacs の機能です。

こうして、ひとまとまりの文章をかき、何度かリライトしたら、このままにしておくこともありますが、たてに長すぎてよみ難くいなと感じる場合もよくあります。

そんなときは、改行マーク (\n) をすべて削除します。ただし、空白行が入っている場所はそのまま空白行として残すようにします。

この作業は、Emacs の検索と置換機能で可能ですが、何度も空白行だけ残しながら、改行マークを削除という作業は少し面倒なので、この作業を一括して行なう機能をつくりました。

delete-linebreaksという自分の関数をつくって、それをC-oにキーバインドしました。範囲指定をしたあとのcontrol + oで、一括して空白行を残したまま改行をなくせるワケです。

先にもかきましたが、Org の強みは、Emacs をベースにしていること。Emacs の便利なところは、こういう小さい機能を、自分でつくりこめること。

この関数のつくり方についても、少し先の節で説明します。

空白行以外の改行マークを削除すると、フリーライティングはこんな見かけになります。

この形でもう一度か二度よみ直してリライトします。未来のぼくがよみ直したくなる程度に。

そして、このフリーライティングの一部を、別項目にします。

別項目にしたいテキストデータの上にカーソルを移動し、アスターリスク「*」のうしろに半角空白、そして項目名をかけば、その行が項目名になり、その下側すべてが下位のテキストデータになります。この場合、第2階層なのでアスターリスク2つ「**」と半角空白を行の先頭につけています。

ぼくの画面では、二重丸が左端についた青いテキストが第1階層 (前回の最初のスクリーンショット)、丸のついた緑のテキストが第2階層です。

そして、フォーカスをとき (Emacs では widen といいます)、すべての項目を折りたたんで、おしまい。

Widen のキーバインドはC-x n-w。ぼくはこれをより短いC-pとキーバインドしています。

では、項目の下位データを折りたたむのは..? そう、カーソルを項目行へ移動しtabキーを一度押すだけですね 。

Widen のキーバインドなのにC-wとしなかったのは、上で紹介した範囲指定内のテキスト削除のキーバインドとしてC-wをマッスルメモリーしていたため。なので、ぼくにとってタイプしやすい位置にあり、かつ parent tree に戻るということばをイメージして思い出せるpを選びました。

こうしてリライトがひと段落した文章は、そのままとっておくこともありますし、論文の一部になったり、今回のようにすぐブログの記事になることもあります。