こんにちは!
今回は、Emacsの基本的なチートシートと、私が日々使用している.init.elの設定をご紹介します。
この記事を読めば、Emacsの基本操作から効率的な設定まで、すぐに実践できるはずです。
Emacsチートシート
基本モード
- ノーマルモード: デフォルトモード。移動、編集、コマンド実行などの操作を行う。
- インサートモード: テキスト入力モード。Ctrl-x Ctrl-eで有効に。
- ビジュアルモード: テキスト選択モード。Ctrl-spaceで開始。
- コマンドモード: M-xでコマンド実行。
モード切り替え
- Ctrl-g: 任意の操作をキャンセルしてノーマルモードに戻る。
- Ctrl-x Ctrl-f: ファイルを開く。
- Ctrl-x Ctrl-s: ファイルを保存。
- Ctrl-x Ctrl-c: Emacsを終了。
基本的な編集操作
- Ctrl-d: カーソル位置の文字を削除。
- Ctrl-k: カーソル位置から行末まで削除。
- Ctrl-y: ペースト。
- Ctrl-/: 直前の操作を取り消し(Undo)。
カーソル移動
- Ctrl-f: 右へ移動。
- Ctrl-b: 左へ移動。
- Ctrl-n: 下へ移動。
- Ctrl-p: 上へ移動。
- M-f: 次の単語の先頭へ移動。
- M-b: 前の単語の先頭へ移動。
- Ctrl-a: 行頭へ移動。
- Ctrl-e: 行末へ移動。
ファイル操作
- Ctrl-x Ctrl-f: ファイルを開く。
- Ctrl-x Ctrl-s: 保存。
- Ctrl-x Ctrl-w: 名前を付けて保存。
- Ctrl-x k: バッファを閉じる。
検索と置換
- Ctrl-s: 前方検索。
- Ctrl-r: 後方検索。
- M-%: 置換。
ウィンドウ操作
- Ctrl-x 2: 垂直分割。
- Ctrl-x 3: 水平分割。
- Ctrl-x 0: 現在のウィンドウを閉じる。
- Ctrl-x o: 次のウィンドウに移動。
その他の便利な機能
- Ctrl-x u: やり直し(redo)。
- Ctrl-x Ctrl-u: 直前の操作を繰り返す。
- M->: ファイルの末尾へ移動。
- M-<: ファイルの先頭へ移動。
高度な編集操作
- M-w: 選択範囲をコピー。
- Ctrl-w: 選択範囲をカット。
- M-u: カーソル位置の単語を大文字に変換。
- M-l: カーソル位置の単語を小文字に変換。
init.elのおすすめ設定と解説
以下に、私が日々使用している.init.elの設定を紹介します。
これらの設定はEmacsの使い勝手を大幅に向上させる!(きっと!)
;; パッケージ管理の設定
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")))
(package-initialize)
;; use-packageのインストール
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
;; 基本設定
(setq inhibit-startup-message t) ;; スタートアップメッセージを非表示
(setq make-backup-files nil) ;; バックアップファイルを作成しない
(setq auto-save-default nil) ;; 自動保存を無効化
(global-display-line-numbers-mode t) ;; 行番号を表示
;; パッケージ設定
(use-package ivy
:ensure t
:bind (("C-s" . swiper)
("C-c C-r" . ivy-resume)
("M-x" . counsel-M-x)
("C-x C-f" . counsel-find-file))
:config
(ivy-mode 1))
(use-package magit
:ensure t
:bind (("C-x g" . magit-status)))
(use-package which-key
:ensure t
:config
(which-key-mode))
;; テーマ
(use-package doom-themes
:ensure t
:config
(load-theme 'doom-one t))
;; カスタム関数
(defun open-init-file()
(interactive)
(find-file user-init-file))
(global-set-key (kbd "C-c I") 'open-init-file)
;; キーマッピング
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "M-o") 'other-window)
(global-set-key (kbd "C-c r") 'replace-string)
;; インデント設定
(setq-default indent-tabs-mode nil) ;; タブをスペースに変換
(setq-default tab-width 4) ;; タブ幅を4に設定
(setq indent-line-function 'insert-tab)
;; スペルチェック
(use-package flyspell
:ensure t
:config
(add-hook 'text-mode-hook 'flyspell-mode)
(add-hook 'prog-mode-hook 'flyspell-prog-mode))
;; 自動補完
(use-package company
:ensure t
:config
(global-company-mode))
;; シンタックスハイライト
(global-font-lock-mode t)
;; 行末の空白を可視化
(setq show-trailing-whitespace t)
;; マウス操作の有効化
(xterm-mouse-mode 1)
;; 80文字目にラインを表示
(use-package fill-column-indicator
:ensure t
:config
(setq fci-rule-column 80)
(setq fci-rule-width 1)
(setq fci-rule-color "darkgray")
(add-hook 'prog-mode-hook 'fci-mode))
設定の解説
- 基本設定: スタートアップメッセージの非表示、バックアップファイルの無効化、行番号の表示などを設定しています。
- パッケージ設定: use-packageを使用してIvy、Magit、Which-key、Doom-themesなどのパッケージを管理しています。
- カスタム関数: open-init-file関数を作成し、init.elを簡単に開けるようにしています。
- キーマッピング: よく使うコマンドをカスタムキーバインディングに割り当てています。
- インデント設定: タブをスペースに変換し、幅を4に設定しています。
- スペルチェック: flyspellを使用してスペルチェックを有効にしています。
- 自動補完: companyを使用して自動補完を有効にしています。
- シンタックスハイライト: global-font-lock-modeを有効にしてシンタックスハイライトを行っています。
- 行末の空白を可視化: 不要な空白を見つけやすくするために設定しています。
- マウス操作の有効化: xterm-mouse-modeを有効にしてマウス操作を可能にしています。
- 80文字目のライン表示: fill-column-indicatorを使用して80文字目にラインを表示しています。
まとめ
今回はEmacsについてまとめました。
これらの設定を活用することで、Emacsをより効率的に使用することができます。
ぜひ、自分の好みに合わせてカスタマイズしてみてください。
Emacsの世界は奥が深く、探求し続けることができます。Happy Hacking!