このページでは,GNU Emacs の設定について紹介しています.
Org-Mode は,スケ ジュール管理向けの機能が充実したアウトラインモードです.予定や TODO を 箇条書きにしておけば,それを整形して様々な形式で表示することができるの で,非常に効率的にスケジュール管理が行えます,
Org-Mode を初めて使う人は,まず チュートリアル に目を 通すのがおすすめです.Org-Mode は非常に多くの機能が備わっていますが,こ のチュートリアルで紹介されている機能を使うだけでも十分活用できます.
マニュアルは こちら にあります.
Org-Mode の設定は下記のように行います.コピペする場合は, (setq my-todo-file "~/doc/Schedule/todo.org") の行だけ適宜書き換えてください.
(require 'org)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-ca" 'org-agenda)
; 最初はツリーを開いた状態にする
(setq org-startup-folded nil)
; TODO -> WAIT -> DONE の状態遷移
(setq org-todo-keywords '("TODO" "WAIT" "DONE")
org-todo-interpretation 'sequence)
; DONE 状態になった時の時刻を記録
(setq org-log-done t)
; アーカイブのファイル名には .archive を追加
(setq org-archive-location "%s.archive::")
; 末尾以外の * を表示しない
(setq org-hide-leading-stars t)
; * の数は奇数個にする
(setq org-odd-levels-only t)
; アジェンダモードで記述元と同期して表示
(setq org-agenda-start-with-follow-mode t)
(setq my-todo-file "~/doc/Schedule/todo.org")
(setq org-agenda-files (list my-todo-file))
; C-x T で todo.org を開く
(defun todo () (interactive) (find-file my-todo-file))
(define-key ctl-x-map "T" 'todo)
| TAB | ツリーの折りたたみ状態の変更 |
| C-u TAB | バッファ全体の折りたたみ状態の変更 |
| C-a | 全てを表示 |
| C-c C-f | 同一階層の次の見出しに移動 |
| C-c C-b | 同一階層の前の見出しに移動 |
| M-<RET> | 同一階層の見出しを作成 |
| M-<left> | 階層を一段上げる |
| M-<right> | 階層を一段下げる |
| C-c ^ | 一つ下の階層の見出しをソート |
| C-c $ | 見出しをアーカイブに移動 |
| C-c / | 検索 |
| C-| | 選択した範囲を表に変換 |
| C-c C-t | TODO の状態を遷移 |
| C-c , | TODO に優先順位をつける |
| C-c C-c | チェックボックスのトグル |
| C-c C-d | 期限を設定 |
| C-c C-s | 予定を設定 |
| C-c . | 現在の日付を挿入 |
| Cu C-c . | 現在の日時を挿入 |
| C-c C-x C-i | 時間計測を開始 |
| C-c C-x C-o | 時間計測を終了 |
行頭が「|」で始まると,作表モードになります.
M-x turn-on-orgtbl とすることで,他のメジャーモードと組み合わせて使用 することもできます.
| TAB | 次のセルにカーソルを移動 |
| S-TAB | 前のセルにカーソルを移動 |
| RET | 次の行にカーソルを移動 |
| C-c - | 下の行に区切り線を挿入 |
| C-c C-c | 表を整形 |
| C-c a t | TODO の一覧を表示 |
| C-c a a | カレンダーの表示 |
| C-c L | タイムラインの表示 |
| w | 一日ビューに切り替え |
| d | 週間ビューに切り替え |
Flymake を使うと,ファイルの保存時 等に自動的に文法チェックを行えます.文法違反している箇所は下記のように ハイライトされます(この例では printf と書こうとして, prinf になっ てしまっている).
文法チェックは,バックグラウンドで make などのビルドプログラムを走ら せ,その出力を解析することで実現されています.
Flymake の設定は下記のように行います.
(require 'flymake)
; C/C++ 言語の場合に実行するコマンドの定義
; ex. a.cpp を編集している場合,「make a.o」を実行
(defun flymake-get-make-cmdline (source base-dir)
(list "make"
(list "-s"
"-C"
base-dir
(concat (file-name-sans-extension source) ".o"))))
; GNUmakefile にも対応させる
(defun flymake-simple-gmake-init ()
(flymake-simple-make-init-impl 'flymake-create-temp-inplace t t "GNUmakefile"
'flymake-get-c-make-cmdline))
(push '("\\.cpp\\'" flymake-simple-gmake-init) flymake-allowed-file-name-masks)
(push '("\\.c\\'" flymake-simple-gmake-init) flymake-allowed-file-name-masks)
; C/C++ ファイルを開いた場合には自動的に flymake-mode を有効にする
(add-hook 'c-mode-common-hook '(lambda () (flymake-mode)))