EmacsとVimしたい(VSpaceCode
)
VSpaceCodeは、VS CodeでSpacemacsを使えるようにするプラグインです。 基本的にはEmacs操作したいけど、たまにVim操作するために慣れておきたいというひとにはもってこいだと思います。
画面構成の名称
Emacs |
VS Code |
---|---|
buffer |
editor |
window |
editor group |
frame |
window |
EmacsとVS Codeでは画面構成の名称が異なります。 Conventionsに対応表が載っていました。
よく使うキーバインド
キーバインド |
操作内容 |
---|---|
SPC SPC |
Command Palette |
Ctrl + g / ESC |
Cancel |
SPC g s |
Magit status |
SPC f f |
Open file/folder |
SPC w / |
Split window right |
SPC w w |
Focus next window |
SPC b b |
Show all buffers |
SPC j l |
Jump to line (EASYMOTION) |
モードを切り替えたい
Vimのようにモード切り替えできます。
- NORMALモード(Esc)
閲覧・編集モードです。 j / k / l / hでカーソルを操作できます。 また、コマンドモードとも呼ばれ、各種コマンドを使って編集できます。 iやaなどの挿入コマンドを押すとINSERTモードに入り変わります。
- INSERTモード(i / a / o /)
挿入モードです。文字を入力できます。 VSpaceCodeの場合、ここがEmacs操作の出番です。 Escキーを押すとNORMALモードに切り替わります。
- VISUALモード(v / V)
矩形選択モードです。 範囲を選択して、コマンド操作できます。 VSpaceCodeではあまり出番がありません。 このモードに入ってしまったら、とりあえずEscを押してNORMALモードに切り替えます。
注釈
すぐに書き込めないのは不便ですが、読むモードと書くモードを切り替えるのは、いまの作業に集中するのにも役立つかなと思っています。 Emacsでも読み取りモード(ctr-x + ctr-q)を愛用してました。 そのときはステータスラインに色をつけて、視覚的にモードを区別できるようにしてました。 VSpaceCodeでもそれをしたい・・・が、やりかたわからない。
モードごとにステータスバーに色をつけたい
{
"vim.statusBarColorControl": true,
}
モード別にステータスバーの色を変更できます。
設定項目でvim.statusBarColorControl
を有効にするか、
settings.json
に"vim.statusBarColorControl": true
を追記します。
色をカスタマイズしたい
{
"vim.statusBarColorControl": true,
// "vim.statusBarColors.モード名": ["#背景色", "#文字色"]
"vim.statusBarColors.normal": ["#e27878", "#161821"],
"vim.statusBarColors.insert": ["#84a0c6", "#161821"],
"vim.statusBarColors.visual": ["#a093c7", "#161821"],
"vim.statusBarColors.visualline": ["#a093c7", "#161821"],
"vim.statusBarColors.visualblock": ["#a093c7", "#161821"],
"vim.statusBarColors.replace": ["#e2a478", "#161821"],
// "vim.statusBarColors.commandlineinprogress": ["#818596", "#161821"],
// "vim.statusBarColors.searchinprogressmode": ["#818596", "#161821"],
// "vim.statusBarColors.easymotionmode": ["#818596", "#161821"],
// "vim.statusBarColors.easymotioninputmode": ["#818596", "#161821"],
// "vim.statusBarColors.surroundinputmode": ["#818596", "#161821"],
}
モードごとの色をカスタマイズできます。
normal
は書き込みNGなので赤系、insert
は書き込みOKなので青系、visual
は紫系、とすることにして、
Icebergというテーマを好んで使っているので、
そのパレットから色を選択しました。