はじめまして。今年の4月に謎の集団Zeneloへ新卒で入団したMarcyです!
Qiitaへ投稿するのも初めてなので、暖かい目で読んでいただけるとありがたいです!
今回、普段の開発における生産性的な問題(精神衛生上的な問題?)に関わるかもしれないことについてのことを書きました!
この記事のゴール
- 普段Vimバインドではない方が、ペアプロ・モブプロの際に何も打てない状況にはならないこと
- 少しでも多くの方がVimバインドを使ってみようかなと思えること
※エディタ自体をVimに変えようというのではなく、普段使っているエディタをVimバインドにしてもいいよというモチベーションです
この記事を書こうと思った経緯
僕は普段ScalaやTypeScriptをVimバインドのIntelliJで(本当はneovimで書きたいけどScalaのLSPがまだまだなので仕方なく...)書いています。
最近のZenelo集団では、ペアプロ・モブプロで開発をする機会が増え、色んな方のPCでコードを書く機会が増えてきました。
そこで、僕のPCで開発をする度にVimバインドをオフにしていたり、他の方のVimバインドではない環境で開発する際に全く慣れる気配がなかったからです。
なので、少しでも多くの方がVimバインドに慣れて欲しい!(むしろ使ってほしい)
てことでVim初心者のための基本Vimバインド講座いってみましょー!
※とりあえずこれだけ覚えておけば不自由なく開発できそうなことだけ書くので、普段Vimバインドの方には物足りないかもしれないです。
基本的なVimバインド講座
の前に、caps lock
キーは殺しましょう!
わざわざほとんど使うことのないキーを残しておくよりもctrl
キーにしておく方がVimmerにとっても、そうでない方にとっても打ち間違いが少ないからですね。(macのデフォルトキーバインドではemacsバインドが使われており、ctrl
を多様するので、それも素晴らしいキーバインドだからです)(できるだけホームポジションから移動したくないニートですね)
気を取り直して基本的なVimバインド講座行きます!
まずはじめに知っておくべきこと
Vimには3つのモードがあります。
- normalモード・・・基本的にesc押せばこのモードになります
- コマンドを打つモードです(ex. 保存する、文字列を置換する)
-
insertモード・・・normalモードから
i
を押すとこのモードになります
- 文章を書くモードです
(最悪このモードにいれば何も書けないことはないかと)
-
visualモード・・・normalモードから
v
を押すとこのモードになります
- 複数行の文字を削除/コピーしたいときなどに使用するモードです
このモード管理によって今何がしたいのかが明確に分けることができ、究極に手の移動を少なくすることができます。
今回は特に2. のnormalモードについて説明していきます!
normalモード
主に開発をしていて、やりたいこととしては移動/保存/削除/コピー&ペースト/検索 ですね。
移動
- ←は
h
- ↓は
j
- ↑は
k
- →は
l
保存
- 保存は
:w
- 保存してファイルを閉じるは
:wq
削除
- 一文字→削除は
x
- 一文字←削除は
X
- 一行削除は
dd
- カーソル位置から文末までの削除は
D
コピー&ペースト
- 一行コピーは
yy
- コピーしたもののペーストは
p
検索
/検索したい文字列
これだけでも、macユーザであればcmd + shit + 矢印 + ○
みたいな操作がなくなったり、エディタ特有の機能を覚える必要がなくなりましたね。
※もし色々試していて、訳がわからなくなってもesc
を押しておけば、殆どの場合このモードに戻ることができます
応用編
置換
- ファイル内の文字列すべてを置換したいときは
:%s/対象文字列/置換したい文字列/g
ちょっとめんどくさいですね...
僕的にはVimバインドで最も強いところはジャンプ機能だと思っています!
ジャンプ
- ファイル先頭にジャンプしたいとき
gg
- ファイル末尾にジャンプしたいとき
G
- 例えばPRレビューのコメントをもらって、その箇所にジャンプしたいとき
:○行
これだけで、対象ファイルの○行目にジャンプすることができます。 - 一行内で対象の文字にジャンプしたいとき
f ○
-
easymotion
(これが最強だけど、プラグインを使うので詳しくは調べてください...)
例えばファイル内の任意の文字列(ここでは)Inject
にジャンプしたいときに、
23行目まで移動して Inject
まで移動しないといけないですが、
easymotionを使い頭文字I
に飛びたいとすると
このように、Inject
にアルファベットが割り当てられ、簡単にジャンプすることができます。
おわりに
今回、ペアプロ・モブプロで使用するキーバインドがVimバインドだった際に、困らないためにこれだけは覚えておいてほしいことだけを書きました。
本来、Vimを使う上で一番楽しいところは自分の使いたいようにvimrc
やconfig/nvim
を育てていくことや、新しいpluginを試していくことだと思っていますので、少しでも興味を持っていただいた方はぜひともVim教へ入信していただけるとありがたいです!