(2020-01-24更新)
GNU Emacsについて「知らなかったけれど後から調べたら便利だった」というようなことを自分用にメモしています。
目次:
操作
単語やリージョンを大文字/小文字/キャピタライズする
- 後続の単語を
M-l
- 小文字に変換するM-u
- 大文字に変換するM-c
- 大文字で始める
- リージョンを
C-x
C-l
- 小文字にするC-x
C-u
- 大文字にする
単語や文 (コードブロック) で移動する
- 単語
M-b
- 前の単語へ移動M-f
- 次の単語へ移動
- 文 (コードブロック)
M-a
- 前の文の先頭へ移動M-e
- 次の文の最後へ移動
指定した文字まで削除する
M-z
e
- 次の e まで削除するC-u
2
M-z
e
- 2つ目の e まで削除する
連続したスペースを1つにまとめる
M-SPC
- 連続したスペースを1つにまとめる
タブやスペースを見られるようにする
M-x
whitespace-mode
RET
現在のファイルをディスクから再読み込みする
M-x
revert-buffer
RET
yes
RET
行番号や桁を表示する
~/.emacs に以下を書き加える。
常に行番号を表示する。
;; 26.0.50以降 (global-display-line-numbers-mode) ;; 26.0.50より前 (line-number-mode t)
モードラインに現在行と桁を表示する。
(column-number-mode 1)
カスタマイズする
M-x
customize
でバッファにカスタマイズ画面が表示され、グループを選んで設定を変更できる。
各種プログラミング言語用モードは Programming
グループに入っている。
各種モード
Erlang (erlang-mode)
Erlang -- Erlang mode for Emacs - 公式ドキュメント
~/.emacsか~/.emacs.d/init.elに以下のように記入する。 (パスはArch Linuxの例)
(setq load-path (cons "/usr/lib/erlang/lib/tools-3.2.1/emacs/" load-path)) (setq erlang-root-dir "/usr/lib/erlang/lib/") (setq exec-path (cons "/usr/lib/erlang/bin/" exec-path)) (require 'erlang-start)
erlang.elでインデントにスペースを使うようにする - YAMAGUCHI::weblog
インデントをタブではなくスペースにするには以下を追加する。
(add-hook 'erlang-mode-hook '(lambda() (setq indent-tabs-mode nil)))
代表的な操作:
- コードは自動的にインデントされる。インデントが間違っていたら
TAB
で調整 - 選択範囲を
C-c
C-c
でコメントアウト、C-c
C-u
でコメントを外す- 現在行ではなく選択範囲に対して行われるので注意すること
- コードを書いたら
C-c
C-k
でコンパイル - Erlang shellバッファが開くので操作する
- Erlang shellバッファを閉じるには
init:stop().
を入力してからC-x
k
でバッファを削除
Go言語 (go-mode)
基本的にはemacsで快適なGo言語ライフを送るための設定 - Qiitaに従う。
ただしgolintの取得で次のエラーが出たのでURLを変更して取得した。
go get github.com/golang/lint/golint package github.com/golang/lint/golint: code in directory /home/paz/.go/src/github.com/golang/lint/golint expects import "golang.org/x/lint/golint" go get golang.org/x/lint/golint
reStructuredText (rst-mode)
C-c
C-a
C-a
で見出し文字が挿入される。
繰り返すと文字が変わる。
書いている最中に変なインデントが入ったら TAB
キーで是正できる。
参考:
- Emacsのrst-modeショートカット – 楽しくやろう。
- 普段使うコマンドの簡単なまとめ
- reStructuredText(reST)をEmacsで書く際のまとめ - YAMAGUCHI::weblog
- 普段使うコマンドの簡単なまとめ
- Emacs Support for reStructuredText
- rst.elの本家。上記ページからリンク有
シェル (sh-mode)
(setq tab-width 4)
- タブを4にする(setq sh-basic-offset 4)
- インデントを4にする(setq indent-tabs-mode nil)
- タブ文字ではなく空白文字でインデントするnil
をt
にするとタブ文字を使用する
以下のようにまとめて指定できる。
(add-hook 'sh-mode-hook (lambda () (setq tab-width 4 sh-basic-offset 4 indent-tabs-mode t)))