Emacsは非常にカスタマイズ性が高いエディタで、キーバインドを自由に設定することができます。特に、Macの操作に慣れているユーザーにとって、Emacsのデフォルトのキーバインドは少し使いづらいかもしれません。そこで、Macのような操作をEmacsで実現するための設定例を紹介します。この設定を使えば、Emacsでも直感的に作業を進めることができるようになります。
設定内容
以下に示す設定を.emacs
ファイルに追加してください。
(global-set-key "\M-@" "\C-@") ; マーク
(global-set-key "\M-x" "\C-w") ; 切り取り
(global-set-key "\M-c" "\M-w") ; コピー
(global-set-key "\M-v" "\C-y") ; ペースト
詳細説明
-
マーク (
\M-@
->\C-@
)- Emacsのデフォルトでは、マークを設定するのに
C-@
(Ctrl + @)を使用します。この設定では、MacのCmd-Shift-2
に相当する操作をM-@
(Meta + @)にリバインドしています。
- Emacsのデフォルトでは、マークを設定するのに
-
切り取り (
\M-x
->\C-w
)- 通常、Emacsでテキストを切り取るには
C-w
(Ctrl + w)を使用しますが、MacのCmd-x
に対応するようにM-x
(Meta + x)に変更しています。
- 通常、Emacsでテキストを切り取るには
-
コピー (
\M-c
->\M-w
)- テキストをコピーする場合、Emacsでは
M-w
(Meta + w)を使用しますが、これをMacのCmd-c
に対応させるためM-c
(Meta + c)にリバインドしています。
- テキストをコピーする場合、Emacsでは
-
ペースト (
\M-v
->\C-y
)- Emacsではペースト操作に
C-y
(Ctrl + y)を使用しますが、MacのCmd-v
に対応するようにM-v
(Meta + v)に変更しています。
- Emacsではペースト操作に
Metaキーについて
Emacsでは、Meta
キーは重要な役割を果たしますが、慣れていないユーザーにとっては少し戸惑うことがあるかもしれません。Meta
キーは以下の方法で使用できます:
-
AltキーをMetaキーとして使用: 多くのキーボードでは、
Alt
キーがMeta
キーとして機能します。例えば、Alt-x
はM-x
として解釈されます。 -
EscキーをMetaキーとして使用:
Meta
キーが無い場合、Esc
キーを押してから次のキーを押すことで、Meta
キーの操作と同じになります。例えば、Esc
キーを押してからx
を押すと、M-x
と同じ効果があります。 -
Caps LockキーをMetaキーとして再設定:
Caps Lock
キーをMeta
キーとして再設定することもできます。この方法はMacユーザーにとって特に便利です。システム環境設定からキーボード設定に移動し、修飾キーを変更することで設定できます。
このように、Metaキーを使う方法は複数ありますので、自分に合った方法を選んでください。
この設定を行うことで、Macに慣れたユーザーでも、直感的にEmacsを操作することができます。Emacsの柔軟なカスタマイズ機能を活用して、快適な編集環境を整えましょう。
その他、おすすめの.emacs
設定
参考までに、私の .emacs
の中身は現状こんな感じです。
;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)
;; 色の設定
(load-theme 'manoj-dark t)
;; 環境を日本語、UTF-8にする
(set-locale-environment nil)
(set-language-environment "Japanese")
(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-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)
;; ホワイトスペースを自動で削除する
(add-hook 'before-save-hook 'delete-trailing-whitespace)
;; 起動時に分割
;(setq w (selected-window))
;; 列数を表示する
(column-number-mode t)
;; 行数を表示する
(if (version<= "26.0.50" emacs-version)
(global-display-line-numbers-mode)
)
(if (version= "24.3.1" emacs-version)
(global-linum-mode 1)
(setq linum-delay t)
(defadvice linum-schedule
(around my-linum-schedule () activate)
(run-with-idle-timer 0.2 nil #'linum-update-current)
)
)
(setq linum-format "%4d ")
;;fringe(フレーム左右の余白部分,行番号との境界)の色
;;(custom-set-faces
;; '(fringe ((t (:background "gray30")))))
;; カーソル行をハイライトする
;;(global-hl-line-mode t)
;; 対応する括弧を光らせる
(show-paren-mode 1)
;; スクロールは1行ごとに
(setq scroll-conservatively 1)
;; "yes or no" の選択を "y or n" にする
(fset 'yes-or-no-p 'y-or-n-p)
;; Symbolic link to Git-controlled source file; follow link? (y or n)」という確認メッセージを表示しない
(setq vc-follow-symlinks t)
;; 格納ディレクトリーの変更
;; (対象ディレクトリー . 格納ディレクトリー) のリスト
(setq backup-directory-alist '((".*" . "~/.ehist")))
;; png, jpg などのファイルを画像として表示
(setq auto-image-file-mode t)
;; 選択した範囲に色をつける
(transient-mark-mode t)
;; オリジナルコマンドの設定
(global-set-key "\M-@" "\C-@") ; マーク
(global-set-key "\M-x" "\C-w") ; 切り取り
(global-set-key "\M-c" "\M-w") ; コピー
(global-set-key "\M-v" "\C-y") ; ペースト
この記事は、ChatGPT4oと協力して生成しました。