LoginSignup
93
76

More than 5 years have passed since last update.

Spacemacsでよく使う操作をまとめる

Last updated at Posted at 2016-09-13

Spacemacsいいですね!
慣れ親しんだ便利なEmacsのパッケージを使いつつ、Vimの簡潔なキー操作ができるので、とても気に入っています。

今はまだEmacsの操作感が抜けきっておらず、Vim(Evil)もわからないことが多いです。ちょいちょい操作を忘れてしまう。
Spacemacsに慣れるまではチートシートを育てていこうかなと思います。

キーバインド

起動、停止

Spacemacs Emacs 説明
SPC q q (spacemacs/prompt-kill-emacs) C-x C-c (save-buffers-kill-terminal) Emacsを終了する

編集

Spacemacs Emacs 説明
S-a
C-x h
C-x h (mark-whole-buffer) 全選択
x (evil-delete-char) C-d (delete-char) 一文字削除
d<text-obj> (evil-delete) (テキストを選択して) C-w (kill-region) テキストを削除、キルリングへコピーする
y<text-obj> (evil-yank) (テキストを選択して) M-w (kill-region-save) キルリングへコピーする
P (evil-paste-before) C-y (yank) カーソルより前の位置でペーストする
p (evil-paste-after) - カーソルより後の位置でペーストする
u C-x u (undo) Undo
C-r (redo) - Redo
SPC a u (undo-tree-visualize) - 変更履歴ツリーを辿って、Undo/Redoする
r<char> (evil-replace) - カーソル下の文字を<char>に置き換える
cs<t1><t2> (evil-surround-change) - 囲んでいる<t1><t2>に置き換える
cs<[など開き括弧を使うと置き換え時にスペースを追加する。cs>]など閉じ括弧を使うとスペースは追加しない。)

テキストオブジェクト(<text-obj>)がよくわからない時は、vでビジュアルモードにして選択してからdyを使う。

行操作

Spacemacs Emacs 説明
dd kill-whole-line 現在の行を削除、キルリングへコピーする
D (evil-delete-line) C-SPC C-e C-w カーソルより後を削除、キルリングへコピーする
yy - 現在の行をキルリングへコピーする
Y (evil-yank-line) C-SPC C-e M-w カーソルより後をキルリングへコピーする
J (evil-join) - 今いる行と次の行を結合(Join)する。行間にスペースを挟む。
gJ(evil-join-whitespace) - 今いる行と次の行を結合する。行間にスペースを挟まない。

挿入ステートへ移行

Spacemacs Emacs 説明
I (evil-insert-line) - ^の位置で挿入
A (evil-append-line) - $の位置で挿入
o (evil-open-below) - 改行文字を追加して、次の行で挿入
O (evil-open-above) - 改行文字を追加して、前の行で挿入
c<text-obj> (evil-change) - テキストを削除して、挿入
ESC (evil-escape)
fd
- 挿入ステートからエスケープする

領域選択/ビジュアルステート

vでビジュアルステートへ移行する。
SPC v (er/expand-region) で領域を伸長するのも便利。

Spacemacs Emacs 説明
s<text> (evil-surround-region) - 領域を<text>で囲む
([<html>のような左右で違う文字もよしなに処理する

矩形選択/ビジュアルブロックステート

C-vで矩形選択ステートへ移行する。

Spacemacs Emacs 説明
I 文字入力 Esc - 矩形の左端に文字挿入
A 文字入力 Esc - 矩形の右端に文字挿入

移動

Spacemacs Emacs 説明
C-l C-l (recenter-top-bottom) 現在行を画面中央、上、下に移動
zzztzbをトグルする
gg (evil-goto-first-line) M-< (beginning-of-buffer) ウィンドウの先頭へ移動
G (evil-goto-line) M-> (end-of-buffer) ウィンドウの末尾へ移動
H (evil-window-top) - 今表示しているスクリーンの先頭に移動
M (evil-window-middle) - 今表示しているスクリーンの中央に移動
L (evil-window-bottom) - 今表示しているスクリーンの末尾に移動
SPC j j (evil-avy-goto-char) - ヒントで示した位置にカーソルを移動
SPC j l (evil-avy-goto-line) - ヒントで示した行にカーソルを移動

検索

Spacemacs Emacs 説明
/<keyword> - 順方向に検索
?<keyword> - 逆方向に検索
* - 今カーソルがある位置の単語を検索
# - *の逆方向
// - 前回の検索を繰り返す
:noh - 検索結果のハイライトをリセットする
SPC s s (helm-swoop) - grepの要領でバッファ内を検索する

置換

Spacemacs Emacs 説明
:%s/pattern/pattern/gc C-M-% (query-replace-regexp) ファイル全体を確認して、置き換える

ファイル (SPC f)、バッファ (SPC b)

Spacemacs Emacs 説明
SPC f f (spacemacs/helm-find-files) - Helmインターフェースでファイルを開く
:w
SPC f s
C-x C-s (save-buffer) ファイルを保存する
SPC b b (helm-mini) - バッファ、最近開いたファイルなどを串刺しで検索、開く
SPC b d kill-this-buffer バッファを閉じる
SPC f o (spacemacs/open-file-or-directory-in-external-app) - Windows、OS X、Linuxで関連付けたアプリでファイルを開く
SPC f j C-x C-j (dired-jump) diredを開く
C-x RET f C-x RET f (set-buffer-file-coding-system) バッファの文字エンコーディング、改行文字を設定、変更する
SPC f e d (spacemacs/find-dot-file) - .spacemacsを開く
SPC f e R (dotspacemacs/sync-configuration-layers) - .spacemacsを再読込する

ウィンドウ (SPC w)

Spacemacs Emacs 説明
SPC w -
SPC w s
C-x 2 (split-window-below) ウィンドウを水平分割
SPC w /
SPC w v
C-x 3 (split-window-right) ウィンドウを垂直分割
SPC w d C-x 0 (delete-window) 現在いるウィンドウを閉じる
SPC w w C-x o (other-window) 他のウィンドウへ移動する
SPC w u winner-undo ウィンドウの構成を戻す
SPC w W (ace-window) - ヒントで示されたウィンドウへ移動する
SPC 1SPC 9 (winum-select-window-19) - N番目のウィンドウへ移動する

セッション管理

elscreenのようなウィンドウセッションの管理をするために、Spacemacsにはeyebrowseのレイヤがある。
2016/10/22追記:その後eyebrowseレイヤはなくなり、spacemacs-layoutsレイヤの一部になりました。.spacemacsでdotspacemacs-distribution 'spacemacsとしている状態であれば、レイヤの設定を追加することなくeyebrowseが使えるようになっています。

Spacemacs Emacs 説明
g t (eyebrowse-next-window-config) - 次のワークスペースへ移動する
g T (eyebrowse-prev-window-config) - 前のワークスペースへ移動する
C-c C-w 09 (eyebrowse-switch-to-window-config-09) - N番のワークスペースへ移動する。なければ新規に作成する
C-c C-w , (eyebrowse-rename-window-config) - ワークスペースの名前を変更する
C-c C-w " (eyebrowse-close-window-config) - ワークスペースを閉じる

ヘルプ (SPC h)

Spacemacs Emacs 説明
SPC ? (helm-descbinds) - キーバインドとコマンドの一覧を絞り込み検索する
SPC <f1> (helm-apropos) - コマンドの詳細

設定

挿入ステートではEmacsのキーバインドで操作したい

挿入ステートではカーソル操作にC-fなどEmacs風の操作ができない。

困るようなら、編集スタイルをhybridに設定する。

.spacemacs
   dotspacemacs-editing-style 'hybrid

C-;で挿入ステートからエスケープする

evil-escapeに直接キーバインドを設定する。

.spacemacs
  (global-set-key (kbd "C-;") 'evil-escape)

バージョンを更新する

新しいバージョンのSpacemacsがある場合は、Emacsのモードラインに↑が表示されるのでそれをクリックすればよい。

マニュアルで行いたい場合は、git fetchgit reset --hardする。

fish
$ cd ~/.emacs
$ git fetch
$ git reset --hard (git tag -l --sort=-v:refname | head -n 1)

参考

93
76
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
93
76