1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeのModalEditで簡易的なVimエミュレーション

Last updated at Posted at 2020-05-30

ModalEditとは

VSCodeにVimエミュレーションプラグインを入れようと思って探したけど、一番定番であると思われるvscodevimはイマイチ評判が良くない様子、重いという評もある
まあどうせ完璧な再現なんて無理だし、微妙に違うとイライラするので、もっと軽くて簡易的なやつがいいなぁ
いろいろ見てみるとModalEditというのが私に合ってそう
コンセプトとしては

ノーマルモードとインサートモードといくつかの内部コマンドだけ作ったから、あとは各自勝手にキーバインドしてくれ

ってことらしい
自分に合わない部分は全部カスタムしてしまえばいいわけだし、軽そう
インサートモードになってる限りは普通にVSCodeをノーマルで使うのと一緒であるというのも調子良さそう

プリセットがない!

さてマーケットプレイスからポチポチっとインストールして動かしてみる
jkjkっと……

ModalEdit: Undefined key binding: j
ModalEdit: Undefined key binding: k
ModalEdit: Undefined key binding: j
ModalEdit: Undefined key binding: k

工エエェェ(´д`)ェェエエ工
デフォルトでは何もbindingされてないの!?
たしかにコンセプトはそうかもしれないけど、さすがにプリセットあるでしょ!?
チュートリアルを見てゼロから自分で作り上げろってこと!?

issueでも、プリセットあったほうがいいんじゃない?と突っ込まれているが、どうもポリシーをもってプリセットは無いみたい
ん?でも本人の設定がここにあるって?
おお、それでいい、それでいい
VSCodeの左下の設定アイコンからsettingsを開いて右上のアイコンをクリックするとsettings.jsonが開かれるので適宜JSONが崩れないようにコピペすれば完了
jkjkっと……
工エエェェ(´д`)ェェエエ工
移動がjkhlじゃない笑

探したらVimの標準的なプリセットはこっちに作ってくれてました
先月作ってくれたみたいですね、できたてほやほや
というわけでsettings.jsonに貼り付けて、ようやく動きました
その中のコメントにもある通りCTRL+なんとか系のコマンドはsettings.jsonには書けないらしいのでkeybindings.jsonに書くみたい
こちらはわざわざJSONで書くよりもGUIを使ったほうが楽かも
左下の設定アイコンからKeyboard Shortcutを開いて検索窓にmodaleditと入れれば独自の内部コマンドが全部出てきます
私の場合はmodaledit.enterNormalCTRL+jに直してとりあえず完了

使い勝手

こういうコンセプトなのでVimを完全に再現しているということは全然なくって、そもそも置換などを含むコマンド類は一切なし
コピペもpとPの区別がなかったり、文字のコピーと行のコピーの区別がなかったりとか、Vimのエミュレーションとしてはまだまだオススメ出来ない感じです
だけど、たぶん頑張ってsettings.jsonをいじれば(あるいは誰かがいじってくれれば)いい感じになるのではないでしょうか

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?