法律家のためのorg-mode
1 はじめに
Emacs,特に,org-modeは,法律文書最速で作成可能なツールと考えます。
とても,マイナーで,ニッチにもほどがあるといわれそうですが,固まった分について,ここでUPしておきます。
1.1 私の環境,バージョン等
OS:Ubuntu10.04LTSデスクトップ日本語remix
Emacs:GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
1.2 重要度(とても主観で)
重要度を示してみました。Emacsは,とても奥深いものですが,使ってみてこれは,使える!というのを,主観で,★で示してみました。 ★5つが最高で,目安として, ★5つは無いと死ぬ,★4つは便利,★3つは好み,です。
1.3 更新現在日時(ちなみに,org-modeで,「C-c .」で現在日時を出力できます)
:第1回更新(初作成)
2 ドット.emacs
これは,設定ファイルです。ここに書き込むことで,自分だけのEmacsが使えるようになります。 といっても,私も少し読めるだけで,到底書けるわけではありません。 もう少し修行が必要となります。
ちなみに,ドットが付くファイル名(例:.emacs)は,Ubuntu10.04 LTS Desktop日本語Remixでは,隠しファイル扱いとなります。
3 org-mode(★★★★★)
ここが本論ですが,入り易いのですが極めるのは,とても大変なモードです。 とにかく,最低限のことを覚えて使いながら慣れるというのがいいのかと思います。 私もそうです。
3.1 基本操作
後の基本コマンドとは,少し異なる要素があります(リージョン選択とか)。 とにかく慣れれれば,最速の人になれます(ホントかいな?)。 アウトラインを使い,文章を書くということだけ考えれば最低限,次だけです。
3.1.1 C-RET,M-RET
見出しを作ります。
3.1.2 M-←,→
見出しのレベルを下げたり,上げたりできます。
3.1.3 M-↑,↓
見出しごと,文章を移動できます。
3.1.4 Tab-S
これで,見出しを折りたたんだりできます。
3.1.5 C-x,C-e b or h
bで,HTML出力して,ブラウザーを開きます。 hで,単にHTMLファイル作成です。
メニュー(英語ですが)が出ますので,選択するだけです。
3.2 このWebサイトでの設定
3.2.1 このWebサイト
このWebサイトは,連絡文書用の書式に(近づくように)作っています。 バッファ設定と,css作成とインクルードで, 適当ですが,できるようにしました。後は,連絡先等を,HTMLで補充すればよいです。 (私の実際のは日々進歩しますので,あくまで更新時点のものです)。
3.2.2 バッファのどこかに書き込み
ちなみに,
#+BEGIN_EXAMPLE #+END_EXAMPLE
で囲むことで,下記のようになります。
#+TITLE: 法律家のためのEmacs #+AUTHOR: #+EMAIL: #+LANGUAGE: ja #+OPTIONS: toc:nil num:t author:nil creator:nil LaTeX:nil timestamp:nil #+STYLE: <link rel="stylesheet" type="text/css" href="org.css"> #+MACRO: em @<font size=+1 color=red>$1@</font> #+STARTUP: showstars
3.2.3 適当なcssファイル(現在,試行錯誤中)
ファイル名(org.css)は任意です。 org-modeで扱っているファイルとおなじところに置けば,それでよいようです(詳しくは分からない)。
#+INCLUDE: "org.css" example
で,インクルード(ファイルの中身を反映)させています。張り付けると,日々進化には耐えられない…。
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin: 0; padding: 0; } html { overflow-y: scroll; } p { border-left-width: 10mm; padding: 2.5mm 5mm 0mm 10mm; margin-left: 0mm; margin-right: 5mm; } h1, h2, h3, h4 { border-style: none none none none; font-weight: bold; } h1 { border-style: none none none none; background-color: white; border-left-width: 20mm; padding: 4ex 0.6ex 0.6ex 2ex; } h2 { border-style: none none none none; background-color: white; border-left-width: 20mm; padding: 4ex 0.6ex 0.6ex 1.6ex; } h3 { border-style: none none none none; background-color: white; border-left-width: 20mm; padding: 3ex 0.6ex 0.6ex 2ex; } h4 { border-style: none none none none; background-color: white; border-left-width: 20mm; padding: 2ex 0.6ex 1ex 2ex; } a:link:hover, a:visited:hover { color: darkred; background-color: yellow; } body { background-color: white; color: black; border-left-width: 10mm; padding: 2.5mm 5mm 0mm 10mm; margin-left: 0mm; margin-right: 5mm; } code, tt { font-family: monospace; font-weight: bold; font-style: normal; } pre { background-color: gainsboro; font-family: monospace; font-weight: bold; font-style: normal; white-space: pre; margin-left: 40pt; margin-right: 40pt; padding: 10pt; font-weight: normal; } pre.src { background-color: #eeeeee; } ul li { margin: 0; padding: 0; list-style-type: none; }
4 基本のコマンド
C:Ctrl,M:Alt,RET:Enter,S:Shiftで表します。
ちなみに,例えば,C-x,C-wの場合は,Cを押し続けながら, 間を開ける,C-x hの場合は,hを押すときに,一旦Cを離します。
全て半角操作ですので,F10をふんだんに使うことになります。
4.1 取消し・やり直し関連
4.1.1 C-g:取消し
とにかく間違えたらこれ(★★★★★) 最重要コマンドの一つです。
4.1.2 C-/:ando(一つ前に戻す)
_の,C,Shift-ろでできますが,これが,ワンストロークで一番よいです(★★★★★)
4.1.3 C-g,C-/:redo(andoを取り消す)
取消しすぎた場合に戻すものです(★★★★★) 取消し(C-g)て,ando(C-/)で覚えられます。
4.2 操作関連
4.2.1 C-w:カット(Win:C-x)
カットです。これで,貼り付けができます(★★★★★)
4.2.2 M-w:コピー(Win:C-c)
コピーです(★★★★★)
4.2.3 C-y:ペースト(Win:C-v)
俗にペーストといいます(★★★★★)
4.2.4 C-x,h:オールリージョン(全範囲選択)
(Win:X-a) 全範囲選択です。(★★★★★)
4.2.5 C-x,o(オー):編集中の窓を移動します
oを押すとき,Crtlから離します。(★★★★★)
4.2.6 C-x,0(ゼロ):編集中の窓を消します。
(★★★★★)
4.2.7 C-x,3:左右2分割します
2だと上下分割になりますが,横に長いPCが普通でしょうから,左右分割がよいです(★★★★★)
4.2.8 M-q:見た目だけでなく,80行で行を折り返し(C-x,f,数字で何行を決めることが出来ます)
(★★★★)(引用するときに使います。)
4.2.9 M-g,M-g:行飛び(H230404:最近はあまり使っていません)
半角数字を入力,ERTで飛びます(Altを押しながら半角g,gです)(★★★)
4.2.10 C-v,M-v:上(M)下(C)スクロールです。
(★★★★)
4.2.11 M-y:Killバッファ履歴(カスタム)
コピー・カット履歴,選択してERT(Enterキー)で張付け(★★★★★)
browse-kill-ringについては,elispが必要です。
ここから, http://www.bookshelf.jp/soft/meadow_32.html#SEC458
ちなみに,Ubuntu10.04 LTS Desktop 日本語 Remixの場合では, インストールの意味は,
ダウンロードして,拡張子を,「.el」にして,そのファイルを, ロードパスの通ったところに放り込むことで完了します。 (このロードパスが悩みますが…一口で説明できません)。
4.3 保存関係
4.3.1 C-x,C-s:上書き保存です。
いわゆる(Win:C-s)(H230404:auto-saveを使えばほとんど使いません)(★★★★★)
4.3.2 C-x,C-c:保存して終了です。
C-x,C-eでドット.Emacs評価ですが,そうできない場合は,一旦終了させます。(★★★★★)
4.3.3 C-x,C-w:別名保存
別名で保存です。(★★★★★)
5 anything.el(★★★★★)
必須です。色々なコマンドをひとまとめでできるといえばよいでしょうか。
これは,私も,
[anything][emacs]anything導入のeverything ~3分で使えるanything.el~
(http://d.hatena.ne.jp/rubikitch/20100718/anything)
で紹介されたとおりにやっています。 ロードパスだけが難しい(?)。
anything-filelist+までいって, ショートカットを設定(私の場合,C-x,a,f)すると幸せになります。
6 ドット.emacs関係(カスタムです。最低限のものしかのせていません)
6.1 ドット.emacsにコピペでできるはず(?)です。
;;ロードパス設定(私の場合です);;ないとelispが動きません。デフォルトで動きます。 ;;最高に難しいのは,ここです。私もよく分かっていません。(setq load-path (cons "~/.emacs.d/elisp" load-path))(add-to-list 'load-path "/home/iwahara/.emacs.d/mylisp/lisp") (add-to-list 'load-path "~/.emacs.d/") ;;日本語の設定;;★★★★★(文字化け防止!) (set-language-environment "Japanese") (prefer-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (set-clipboard-coding-system 'utf-8) ;;BS(BackSpace)で削除;;★★★★★(これが一番感覚が違うと思います) (delete-selection-mode 1) ;;一行まるごとカット(カーソル以後:C-k,前も含めて:M-k);;★★★(便利ですが好みです) (defun kill-whole-line (&optional numlines) "One line is deleted wherever there is a cursor." (interactive "p") (setq pos (current-column)) (beginning-of-line) (kill-line numlines) (move-to-column pos)) (define-key esc-map "k" 'kill-whole-line) ;;HomeをC-aにShift+Homeで選択したまま行頭へ ;;EndをC-eに;;★★★(好みです) (pc-selection-mode) ; クリップボードにコピー;;★★★★★(これがないと他からコピペができません) ; 切り取ってクリップボードへ;;★★★★★(〃) (global-set-key "\M-w" 'clipboard-kill-ring-save) ; クリップボードにコピー (global-set-key "\C-w" 'clipboard-kill-region) ; 切り取ってクリップボードへ ;;バッファ巡回 「C-,」,「C-.」;;★★★★★(便利すぎです) (autoload `cyclebuffer-forward "cyclebuffer" "cycle forward" t) (autoload `cyclebuffer-backward "cyclebuffer" "cycle backward" t) (global-set-key [?\C-,] 'cyclebuffer-forward) (global-set-key [?\C-.] 'cyclebuffer-backward) ;; デフォルトの透明度を設定する (80%) ;; カレントウィンドウの透明度を変更する (80%),下が透けます。数字が小さいほど透明 ;;★★★★(便利。動かさずに下を見ながら書けます) (set-frame-parameter nil 'alpha 80) (add-to-list 'default-frame-alist '(alpha . 80)) ;;Ubuntu10.04 LTS Desktop日本語Remixなら不要となっています。 ;; 背景色を黒に(デフォルトは白でチカチカ);;★★★(好みです) (set-background-color "Black") (set-foreground-color "LightGray") (set-cursor-color "Gray") ;; browse-kill-ring;カットコピーの履歴,M-yで呼び出し選択してRETで貼り付け,qで止め ;;ないととても不便;;★★★★★ (require 'browse-kill-ring) (global-set-key "\M-y" 'browse-kill-ring) (setq browse-kill-ring-display-style 'one-line) (setq browse-kill-ring-quit-action 'kill-and-delete-window) (setq browse-kill-ring-resize-window t) (setq browse-kill-ring-separator "-------") (setq browse-kill-ring-highlight-current-entry t) (setq browse-kill-ring-separator-face 'region) (setq browse-kill-ring-maximum-display-length 100) ;; org-modeの初期化 (require 'org-install) ;; (add-to-list 'load-path "~/.emacs.d/elisp/") (require 'org) (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) (define-key global-map "\C-cl" 'org-store-link) (define-key global-map "\C-ca" 'org-agenda) (setq org-log-done t) ;; org-mode 見出し移動C-矢印,C,S-矢印 (define-key org-mode-map [(control up)] 'outline-previous-visible-heading) (define-key org-mode-map [(control down)] 'outline-next-visible-heading) (define-key org-mode-map [(control shift up)] 'outline-backward-same-level) (define-key org-mode-map [(control shift down)] 'outline-forward-same-level);;行番号を表示;★★★(好みです)(require 'linum)(global-linum-mode)