--- Title: SpacemacsについてるEmacs Evilのチュートリアルまとめ Author: santamn Web: 'https://mimemo.io/m/xn7vg4W6WRlAa1q' --- # SpacemacsについてるEmacs Evilのチュートリアルまとめ Emacs Evilで使っているときに使えるキーバインドを整理してみます.内容はSpacemacsのEvil Tutorialを参考しました.ドキュメントなどを参考にしたわけではないので,不正確な部分があるかもしれません. ## 移動 ### 1文字移動 `h`,`j`,`k`,`l`でカーソルを移動させることができる.移動する方向は次の通り. ![画像コマンドの向き](https://i.gyazo.com/47e2d769d04d33d9ea65f4f055b69a2d.png) ### オブジェクト また以下のオブジェクトは次のような意味を持つ. - `w` :カーソル位置から単語の終わりまで.単語の切間となるスペースも含む. - `e` :カーソル位置から単語の終わりまで.単語の切間となるスペースを含まない. - `$` :カーソル位置から行末まで. これらのオブジェクトは単体で入力することでカーソルの移動に利用することができるが,他のコマンドと組み合わせてコマンドの適用範囲の指定することもできる. ### バッファ - `gg` :バッファの先頭に移動 - `G` :バッファの末尾に移動 - `:[行番号]` :指定した行の先頭に移動 ### 括弧 `{`,`}`,`[`,`](`,`)`の上で`%`を押すと対応する括弧に移動する.これはLisp系の言語で括弧の対応を見る上で役に立つ. ## 削除 削除された文字列はKill Ringにストアされる(と思う) ### 一文字削除 `x`:カーソル位置の一文字を削除 ### `d`キーバンド `[number] d [object]` OR `d [number] [object]` `d [object]`で削除の範囲を指定し,その操作をnumber回だけ行う.numberが指定されない場合は1回だけ行う. ### `dd`キーバインド `dd`はカーソルが存在する行全体を削除する.`[number] dd`とすることでnumber回操作を繰り返すことができる. ## 置換・変換・上書き ### 一文字置換 `r[new]` :カーソル位置の一文字を`[new]`に置換 ### 一括置換 - `:s/[old]/[new]` :カーソル位置から後方で最初に`[old]`に一致した単語を一つだけ`[new]`に置換する - `:s/[old]/[new]/g` :カーソル位置のある行全体について上と同じような置換を行う - `:[n],[m]s/[old]/[new]/g` :n行目からm行目の間で置換を行う - `:%s/[old]/[new]/g` :バッファ内全体で置換を行う - `:%s/[old]/[new]/gc` :バッファ内全体で置換を行う際に一語づつ確認を行う ### 変更 `[number] c [object]` OR `c [number] [object]` `d`キーバインドと同じような形で文字列の指定を行い,その部分を削除した上で挿入ステートに移行できる. ### 上書き `R` :置換ステートに移行し,`ESC`が押されるまで書いてある内容を上書きする ## 保存と終了 - `:qa!` :保存せずに終了 - `:wqa` :保存して終了 ## 検索 - `/[word]` :カーソル位置から後方へ検索 - `?[worc]` :カーソル位置から前方へ検索 オプションとして`n`,`N`が存在する.`n`は検索の方向と同方向に同じ単語の検索を継続,`N`は検索の逆方向に同じ単語の検索を行う. `SPC s s`でも検索できる ## 挿入 - `i` :カーソル位置から挿入ステートに移行 - `a` :カーソル位置の右側から挿入ステートに移行 - `A` :行末に移動して挿入ステートに移行 - `o` :下に改行(選択行が一列あがる)して挿入ステートに移行 - `O` :上に改行(選択行が一列下がる)して挿入ステートに移行 ## その他 - `u` :undo - `CTRL-R` :undoのundo - `p` :Kill Ringにある内容をペースト - `:![cmd]` :コマンドが実行できる - `:w [filename]` :指定したファイル名でバッファの内容を保存 - `:[n],[m] w [filename]` :指定した行数の部分を保存 - `:r [filename]` :指定したファイルの内容がカーソルの位置に挿入される `SPC '`でターミナルを起動することができる ## 終わり ここには書かれていないことも書いてあった記事がありましたので,載せておきます. Spacemacsでこの記事の内容がどれくらい適用できるのかは検証していません. - [vim コマンド集](https://qiita.com/ktoyod/items/0a8491cdb6c0191ab0cc) - [Document](https://evil.readthedocs.io/en/latest/overview.html)