Emacsのtips

emacsを使う上でよく使うコマンド、設定をまとめた。




emacsコマンド


よく使うコマンド(+は同時押し、,は一回指を離して押す)

動作 コマンド
保存 cntl+x, cntl+s
閉じる cntl+x, cntl+c
行末に移動 cntl+e
行頭に移動 cntl+a
最終行に移動 cntl+x, ]
先頭行に移動 cntl+x, [
コピー meta+w (metaキーはlinuxだとalt、macだとデフォルトでesc(macで変更できる))
貼り付け cntl+y
切り取り cntl+w
カーソル行の切り取り cntl+k
単語検索 cntl+s (cntl+sで次、cntl+rで前の一致部分に移動)
マークをつける(選択開始) cntl+space (マークを付けると、そこから選択を開始できる)
文字の置換 meta+%
矩形でマークをつける cntl+x, space (矩形選択、縦の列を揃えて選択できる)
矩形で文字列入力 cntl+x, e
コマンドキャンセル cntl+g

設定


emacsの設定は、ホームディレクトリの.emacs.dの中にinit.elを新しく作って、 そこに記載する。

;;; 環境を日本語、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)

;;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)

;;; バックアップファイルを作成させない
(setq make-backup-files nil)

;;; 終了時にオートセーブファイルを削除する
(setq delete-auto-save-files t)

;;; タブにスペースを使用する
(setq-default tab-width 4 indent-tabs-mode nil)

;;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")

;;; 複数ウィンドウを禁止する
(setq ns-pop-up-frames nil)

;;; ウィンドウを透明にする
;;; アクティブウィンドウ/非アクティブウィンドウ(alphaの値で透明度を指定)
(add-to-list 'default-frame-alist '(alpha . (0.85 0.85)))

;;括弧の補完
(electric-pair-mode 1)

;;; メニューバーを消す
(menu-bar-mode -1)

;;; ツールバーを消す
(tool-bar-mode -1)

;;タブを使えるようにする
;;(tab-bar-mode t)

;;; 列数を表示する
(column-number-mode t)

;;; 行数を表示する
(global-linum-mode t)

;;; カーソルの点滅をやめる
(blink-cursor-mode 0)

;;; カーソル行をハイライトする
;;(global-hl-line-mode t)

;;; 対応する括弧を光らせる
(show-paren-mode 1)

;; スクリーンの最大化
(set-frame-parameter nil 'fullscreen 'maximized)

;; フルスクリーン
(set-frame-parameter nil 'fullscreen 'fullboth)

;;; ウィンドウ内に収まらないときだけ、カッコ内も光らせる
;(setq show-paren-style 'mixed)
;(set-face-background 'show-paren-match-face "grey")
;(set-face-foreground 'show-paren-match-face "black")

;;; スペース、タブなどを可視化する
;;(global-whitespace-mode 1)

;;; スクロールは1行ごとに
(setq scroll-conservatively 1)

;; シフト+矢印で範囲選択
;;(setq pc-select-selection-keys-only t)
;;(pc-selection-mode 1)

;; C-kで行全体を削除する
(setq kill-whole-line t)

;;C-z suspend削除
(global-set-key "\C-z" nil)
(define-key global-map (kbd "C-z c") 'tab-new)
(define-key global-map (kbd "C-z n") 'tab-next)
(define-key global-map (kbd "C-z p") 'tab-previous)

;;折りたたみ
(define-key global-map (kbd "C-^") 'hs-toggle-hiding)

;;; "yes or no" の選択を "y or n" にする
(fset 'yes-or-no-p 'y-or-n-p)

;;; beep音を消す
(defun my-bell-function ()
  (unless (memq this-command
        '(isearch-abort abort-recursive-edit exit-minibuffer
              keyboard-quit mwheel-scroll down up next-line previous-line
              backward-char forward-char))
    (ding)))
(setq ring-bell-function 'my-bell-function)

;;クリップボードを有効化
(setq x-select-enable-clipboard t)

;;バックスペースを使用可に
(normal-erase-is-backspace-mode 0)
;;(global-set-key "\C-h" 'delete-backward-char)