vimとVSCode、VSCodeでvimキーバインドにする前に【至高のテキストエディタ】

この記事は
テキストエディタをvim(ヴィム)にしようかなと考えている人
いままでvimを使って来たけどVSCode(ヴイエスコード)なんか便利そうだなと考えている人
が主に当てはまりそうです。

もちろんテキストエディタ何にしよう?
Sublime text(サブライムテキスト)、Atom(アトム)、Emacs(イーマックス)、決められない
という方も。

テキストエディタの悩みは最初のみならず、手に馴染んで来てからも時折脳裏をよぎり常日頃ついてまわります。

だって、仕事の大半、人生の3分の1の仕事の大半共に過ごす相棒ですから。

少しだけvimについて語らせてください。

ここに来ている方は
「もうvimの魅力は知ってるよ」
「え、いまからVSCodeでvimキーバインドあるし乗り換えるんですけど」
って人もいるかもしれません。
はい、だってわざとタイトルをそれにしたので、、。

あ、1つ前もって言わせてください。

「VSCodeはやばい便利です!オススメです。」

プラグインもどんどん増えてきて便利な拡張機能がわんさかですよね。
オープンソースで勢いも凄い、スター数半端ないですね。
VSCodeの時代だと思っています。

その前提の上で少し話させてください。
最初に結論書きます。

VSCodeでvimはよく考えたほうがいい

これです。

なぜかと言うと経験者だからです。
過去に二度VSCodeに乗り換えました。
その二回とも見事にvimに戻りました。

正直これはvimを使っていた人はvimの魅力を知っているので
「まったくvimを使ったことがない状態の人」に言いたいです。

なぜ乗り換えたのか

vimはとても大好きです、vimmerの方もそうでない方もわかると思いますが、vimを使うと取り憑かれます。

ただvimmer目線で言わせてもらうと、どっぷり浸かってはいるものの周りが見えなくなったり、vim! vim!! vim!!! ではないんですよ、vimmerは。
言い換えるとエンジニアは。
何故かと言うとエンジニアは合理的な人が多いからです。(偏見?)

まっさらなvimrcを手塩にかけて育てる事に没頭している様に見えてちゃんと考えてます。
vimrcを書きながらそれに使う時間の損得勘定をしていることが多いです。
言い方を変えると損得勘定をしているからvimrcを書きます。

なにを言いたいかというと

要は凄く好きなんですけど、vimに執着していない、ということです。
vimrcを手塩にかけなくても最初からあるならそれにこしたことはないです。

エンジニアは面倒くさい事、二回同じ作業、が発生した時点で
「同じ事はやりたくない」ので対処します。

ただ効率よくスピーディに仕事ができれば別になんでもいいんです。
というかその方がいいんです。
それにつきます。効率厨なんです。

これが二度乗り換えている理由です。

私は自分でもわかっていますが、新しい物好きですし、見た目はかっこよくて綺麗な方がいい、便利が一番、機能は多ければ多い方が良いよね、エディタはなんでも手が届くコックピットにしたいと思っています。

すごくVSCodeの波に乗りたい、というか余計な考えは捨てよう、合理的に考えよう、効率よく、効率よくという考えの元乗り換えました。

戻った理由

長くなりそうなので結論、
二回とも「vimキーバインド
これで戻りました。

vimキーバインドにする人ってvimを使っていた人だと思うのですが、
あれはvimの基本的な「hjkl」、「モード操作」を再現しているものであってvimをそこそこ使ってきた人ならわかると思いますが、同じ様にコーディングはできません。

「最大限近づけることは可能ですが、vimが合体している訳ではない

重要なのは基本的なキーの割当はできても全く同じ様にできないというところです。
それは別のエディタなので当たり前ですよね、不満でもなんでもなく当たり前のことだと思います。

ここでvimを使う理由を思い出してください。
人それぞれなので、問題にならない場合もあります。

なぜvimなの?

これもまず結論、
マウスを使わないから」です。
vimのエディタ上でマウスを使うことはゼロです。

もっと言うなればターミナル(シェル)も踏まえてのエディタの行き来、すべてひっくるめた行動でマウスはゼロです。

ここができませんでした、微妙にターミナルとエディタの行き来はマウスなしでも行けますし、ツリーの移動もtabとかも駆使しつつ行けました。

ただ、遅くなってしまいます。
そもそもツリーはvimは出さない方が使いやすいと言いたいです。
これはまた別記事で語ります。

vimはターミナル=エディタみたいなものなのでターミナルがニョキってする部分も感覚が違います。

vimを使う理由は、

・テキストの入力、整形のショートカットを駆使しての早さ
・hjklはなんの為か?ホームポジションから手を離さない為(マウスはいらない)
・なんでわざわざモード切替するの?キー1つに対しての役割がモード分使える
別の言い方をすると、文字入力のキー(ABC...)が文字入力以外の機能で使える
それによりCtrl、Altなどを使わなくてすむ、基本ホームポジションからの距離にもよりますが、ホームポジションからずれる点と、近くてホームポジションからずれなかったとしても、何かを押しながら別のキーを押す「よいしょっ」という行動が遅くなります。

まだまだありますが少しあげるだけでも文章がだらだら長くなってしまう程あります。
ちなみにこれはテキスト入力に関してのみの話です。

ターミナルとエディタを縦横無尽に行き来して本領発揮になると思っています。
この場合個人的には「tmux(ティーマックス)」がないと生きていけません。

ここも話し出すとずっとだらだら喋りそうなので、結論、

「tmuxの動きがVSCodeでできないと縦横無尽は難しい」

ここもかなり自分にとっては痛かった。
VSCodeのターミナルでもtmuxは動かせますが、VSCodeのターミナルでtmuxを起動してその中でvimを開いて作業するという奇妙な現象になります。

主に上記で述べた

「vimキーバインド」
「tmux」

が上手く設定できず作業スピードが激減する、という結論を出し、VSCodeの魅力的な拡張、見た目、とさよならをしました。

まとめ

結論どちらも素敵なエディタです。
「すぐに使える便利で豊富な機能」→ VSCode
「準備が必要、でも慣れると凄く早い」→ vim
というイメージです。

VSCodeも正直使いたいです。
でないと二回チャレンジはしないです。

・VSCodeよりvimを使った方がいいと言いたい訳ではなく、
vimを(わりとヘヴィに)今まで使って来た人は、気づくとは思うけど良く考えて、というところと経験談を。

・vimのキーワードで来た人には何がvimのメリットでそれが自分の求めている物かを判断して選んでほしいという気持ちを。

・VSCodeしか考えてない人には、それはそれで良いんですが、何を重視するかによって特化しているエディタが存在するということを知った上で選んだ方が良いよって思います。

いいとこ取りした最強のエディタがあれば良いんですけどね、
断言します。

「そんなエディタは現状存在しません」

ただ、私は三度目の乗り換えの時期を狙ってVSCodeの動向を追っています。
それだけVSCodeは魅力的です。

Photo by Unsplash