org-captureですばやくメモを取る

設定

(global-set-key (kbd "C-c c") 'org-capture)
(setq org-directory "~/doc/org/")
(setq org-default-notes-file (concat org-directory "notes.org"))

起動

‘C-c c’でorg-captureが起動します。

キーバインド

キーバインドコマンド説明
C-c C-corg-capture-finalizeキャプチャバッファの編集を終える
C-c C-worg-capture-refile違う場所にメモをリファイルすることによってキャプチャプロセスを終える
C-c C-korg-capture-killプロセスを中断し、前の状態に戻る

テンプレート

キャプチャでは異なるタイプのテンプレートを使えます。

設定

(setq org-capture-templates
      '(("t" "Todo" entry (file+headline "~/doc/org/gtd.org" "Tasks")
         "* TODO %?\n  %i\n  %a")
        ("j" "Journal" entry (file+datetree "~/doc/org/journal.org")
         "* %?\nEntered on %U\n  %i\n  %a")))

キャプチャメニューでtを押すと、gtdのテンプレートが挿入されます。

参考リンク

Capture (The Org Manual)

org-modeでよく使うキーバインド

見出し・項目を入力する

キーバインドコマンド説明
M-RETorg-meta-return同レベルの見出しを入力
M-leftorg-metaleft見出しのレベルを浅くする
M-rightorg-metaright見出しのレベルを深くする
M-S-leftorg-shiftmetaleft小見出しごと見出しのレベルを浅くする
M-S-rightorg-shiftmetaright小見出しごと見出しのレベルを深くする

行・見出し・リストを移動する

キーバインドコマンド説明
M-downorg-metadown行・見出し・リストを下に移動
M-uporg-metaup行・見出し・リストを上に移動

見出しの折り畳み・展開

キーバインドコマンド説明
C-iTAB現在行の見出しの折り畳み・展開
C-u C-iS-TAB文章全体の見出しの折り畳み・展開

編集

キーバインドコマンド説明
C-korg-kill-line内容の切り取り
C-yorg-yank内容の貼り付け

TODO

キーバインドコマンド説明
C-c C-torg-todo見出し上でTODOを挿入する/DONEにする

引き出し

キーバインドコマンド説明
C-c C-zorg-add-noteLOGBOOKのための引き出しにタイムスタンプ付きのノートを追加

タグ

キーバインドコマンド説明
C-c C-corg-ctrl-c-ctrl-c見出し行にタグを挿入

他形式に変換

キーバインドコマンド説明
C-c C-eorg-export-dispatch他形式に変換

cc-mode付属のマイナーモードを有効化する

はじめに

cc-modeにはいくつかのマイナーモードが付属してます。

それらを有効化する方法を書きます。

cc-mode付属のマイナーモード

マイナーモード名説明切り替えコマンドモードラインの表示
syntactic-indentation modeC-jでインデントする(デフォルトで有効)c-toggle-syntactic-indentationなし
electric mode特定の文字を入力すると自動的にインデントする(デフォルトで有効)c-toggle-electric-statel
auto-newline mode特定の文字を入力すると自動的に改行を入れるc-toggle-auto-newlinea
hungry-delete mode<del>や<backspace>で空白文字を消すとき、次の文字が現れるまで空白文字をすべて消す(改行含む)c-toggle-hungry-stateh
subword modeM-fやM-bで移動するとき、次の大文字でストップするsubword-modew

auto-newline modeとhungry-delete-key modeを同時に切り替えできるc-toggle-auto-hungry-stateという切り替えコマンドもあります。

comment styleを切り替えできるモードもありますが、AWK modeのようにそれらの1つしかもたないモードでは無効ですので、設定していません。

マイナーモードの設定方法

CC Mode共通の設定は、「c-mode-common-hook」というフックで設定します。

ここでは、my-c-mode-common-hookという自前のフックを設定し、c-mode-common-hookに追加しています。

(defun my-c-mode-common-hook ()
  (c-toggle-auto-newline 1)
  (c-toggle-hungry-state 1)
  (subword-mode 1)
  )
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

参考文献(参考リンク)

awk-modeの設定とキーバインド

awk-modeとは

AWKのコードを編集するためのメジャーモードです。

cc-modeで定義されています。

拡張子が.awkのファイルを開くと、自動的にawk-modeになります。

CCモードのバージョンを確認するには

「M-x c-version」と打ちます。

そうすると、ミニバッファに「Using CC Mode version 5.34.1」のように表示されます。

CC Mode共通の設定は、「c-mode-common-hook」というフックで設定し、awk-mode固有の設定は「awk-mode-hook」で設定します。

主なキーバインド

よく使うキーバインドを列挙します。

キーバインドコマンド説明
C-M-ac-awk-beginning-of-defun関数の最初にカーソルを移動
C-M-ec-awk-end-of-defun関数の最後にカーソルを移動
M-ac-beginning-of-statement文の最初にカーソルを移動
M-ec-end-of-statement文の最後にカーソルを移動
C-c C-ac-toggle-auto-newline特定の文字を入力すると自動的に改行を入れる
C-c C-ccomment-regionリージョンをコメントにする
C-c C-lc-toggle-electric-state特定の文字を入力すると自動的にインデントする
C-c C-qc-indent-defun関数をインデントする
C-c C-sc-show-syntactic-informationシンタックス情報を表示する
C-c C-zc-display-defun-name関数名を表示する
C-c .c-set-styleコーディングスタイルを設定する

Emacsの四角いカーソルをバーにかえるbar-cursor-elのインストールと設定

bar-cursor-elとは

四角いカーソルをバーカーソルにかえる簡単なパッケージです。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • bar-cursor-el:elpa-bar-cursor(2.0-1)

インストール

apt install elpa-bar-cursor

設定

(require 'bar-cursor)
(bar-cursor-mode 1)

リンク

「/usr/share/doc/elpa-bar-cursor/README.md」

改良されたScheme interactionモードGeiserのインストールと設定

Geiserとは

改良されたREPLとEmacsの基本的なschemeメジャーモードを改善する一連のマイナーモードを特徴としています。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • Geiser:elpa-geiser(0.8.1-4)

インストール

apt install elpa-geiser

設定

(setq geiser-active-implementations '(chicken guile))

REPL起動

M-x geiser

起動時、どのscheme処理系を使うか聞いてくるので答える。

カスタマイズ

M-x customize-group RET geiser RET

リンク

「/usr/share/doc/elpa-geiser/README.gz」

Geiser: Top

モードラインに文字数を表示するwc-modeのインストールと設定

wc-modeとは

モードラインに単語、行数、文字の数を表示するマイナーモードです。
所定の単語数を加えたり、削除したりするための目標を設定することができます。
これによって日々書いたり、編集したりする目標を設定することができます。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • wc-mode:elpa-wc-mode(1.4-1)

インストール

apt install elpa-wc-mode

設定

;; org-modeで有効化
(add-hook 'org-mode-hook 'wc-mode)
;; Markdownで有効化
(add-hook 'markdown-mode-hook 'wc-mode)
;; すべてのテキスト系のモードで有効化
(add-hook 'text-mode-hook 'wc-mode)

カスタマイズ

(setq wc-modeline-format "[Words: %tw, Chars: %tc]")

これは、すべての単語、文字の数を表示します。

リンク

「/usr/share/doc/elpa-wc-mode/README.org」

GitHub – bnbeckwith/wc-mode: Wordcount minor mode for Emacs

週刊Emacs News 2016年11月14日 – Qiita

in Emacs wc-mode, how to count characters only in current buffer? – Stack Overflow

Emacsのハッシュテーブルライブラリht-elのインストールと設定

ht-elとは

ハッシュテーブルを簡単に扱えることを目標としたライブラリです。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • ht-el:elpa-ht(2.2-2)

インストール

apt install elpa-ht

使い方

ファイルの先頭に次のように書きます。

(require 'ht)

リンク

「/usr/share/doc/elpa-ht/README.md.gz」

GitHub – Wilfred/ht.el: The missing hash table library for Emacs

Emacsのための文字列操作ライブラリs-elのインストールと設定

s-elとは

Emacs Lispで文字列を扱うAPIライブラリです。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • s-el:elpa-s(1.12.0-3)

インストール

apt install elpa-s

使い方

ファイルの先頭に次のように書きます。

(require 's)

リンク

「/usr/share/doc/elpa-s/README.md.gz」

GitHub – magnars/s.el: The long lost Emacs string manipulation library.

モダンなファイル、ディレクトリを扱うAPIのf-elのインストールと設定

f-elとは

f.elはEmacs Lispでファイル、ディレクトリを扱うための多くの有益な関数を提供する。

インストール環境とソフトウェアのバージョン

  • OS:Debian Bullseye(testing)
  • f-el:elpa-f(0.20.0-2)

インストール

apt install elpa-f

使い方

ファイルの先頭に次のように書きます。

(require 'f)

リンク

「/usr/share/doc/elpa-f/README.md.gz」

GitHub – rejeep/f.el: Modern API for working with files and directories in Emacs