0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Macのような操作をEmacsで実現する設定

Posted at

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") ; ペースト

詳細説明

  1. マーク (\M-@ -> \C-@)

    • Emacsのデフォルトでは、マークを設定するのにC-@(Ctrl + @)を使用します。この設定では、MacのCmd-Shift-2に相当する操作をM-@(Meta + @)にリバインドしています。
  2. 切り取り (\M-x -> \C-w)

    • 通常、Emacsでテキストを切り取るにはC-w(Ctrl + w)を使用しますが、MacのCmd-xに対応するようにM-x(Meta + x)に変更しています。
  3. コピー (\M-c -> \M-w)

    • テキストをコピーする場合、EmacsではM-w(Meta + w)を使用しますが、これをMacのCmd-cに対応させるためM-c(Meta + c)にリバインドしています。
  4. ペースト (\M-v -> \C-y)

    • Emacsではペースト操作にC-y(Ctrl + y)を使用しますが、MacのCmd-vに対応するようにM-v(Meta + v)に変更しています。

Metaキーについて

Emacsでは、Metaキーは重要な役割を果たしますが、慣れていないユーザーにとっては少し戸惑うことがあるかもしれません。Metaキーは以下の方法で使用できます:

  • AltキーをMetaキーとして使用: 多くのキーボードでは、AltキーがMetaキーとして機能します。例えば、Alt-xM-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と協力して生成しました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?