R.Shibataをフォローする

【初心者向け】「VSCode Vim」のコマンドを紹介

開発環境・ツール

はじめに

皆さん「VSCode Vim」というVSCodeの拡張機能をご存じでしょうか?
「VSCode Vim」を利用し始めてから1年経ったので、今回は皆さんに「VSCode Vim」を 布教 ご紹介しようと思います!

参考にさせていただいたサイト

VSCode Vim README.md(GitHub)
Vim 日本語ドキュメント

Vimってなに?

「VSCode Vim」の前にまずは「Vim」について軽くご紹介。

「Vim」は、Unix(Linux)のエディタである「Vi(ヴィーアイ)」から派生したテキストエディタの1つです。
Viエディタをより便利で使いやすくすることを目的としたエディタなので、ほとんどはViエディタの改良となっています。

それを踏まえてVSCode Vimとは、
“VSCode上でvimをエミュレーションする拡張機能”です!

どんなメリットがあるの?

1.コーディングがキーボードのみで完結する
  一番のメリットは、やはり”キーボードのみで全て完結する”事だと思います。

  マウスって結構繊細な操作を求められる場面が多くて、ミスの発生につながることがあります。
  Vimエディタであればマウス要らずでコーディングすることができ非常に便利です。
   
2.コーディング作業の効率化が図れる
  1による恩恵ですが、「キーボードのホームポジションから手を離さなくてよい」ってなかなかデカいです。
  マウスを使う場面が多いと、右手があっち行ったりこっち行ったり…と忙しくなりますよね。
  行ったり来たりする手間が省けるので、コーディング作業の効率化に繋がります!

続いてVimの「キホン」についてご紹介します!

”その1” Vim キホンの「キ」

Vimには様々なモードがありますが、今回は3つご紹介します!
Nomalモード
Insertモード

Visualモード

それぞれ以下の役割を担います。

Nomalモード

通称:ノーマルモード
Vimのテキスト編集コマンドを入力できるモードです。
※注意※
通常のテキストは入力できません!
エディタを起動すると大体このモードから始まります。
(コマンドモードとも呼ばれます。)

Insertモード

通称:挿入モード
通常のテキストを入力できるモードです。

Visualモード

通称:ビジュアルモード
テキストを範囲選択することができるモードです。
移動コマンドで選択範囲の拡大・縮小をすることができ、移動コマンド以外のコマンドを使用すると、選択範囲に対してそのコマンドを実行することができます。

”その2” Vim キホンの「ホ」

ここからは私が良く使うVimコマンドをグループに分けてご紹介します!
少々辞書的になってしまいますが、お付き合いください。

  • オペレーションコマンド
コマンド説明
cchangeのc 変更する
ddeleteのd 削除する
yyankのy コピーする
vvisualのv 選択する
  • 移動コマンド
コマンド説明
h左に移動
j下に移動
k上に移動
l右に移動
コマンド説明
shift + h画面上部に移動
shift + l画面中央に移動
shift + m画面下部に移動
  • オブジェクトコマンド
コマンド説明
iinnerのi 内部を指します
aaroundのa 全体を指します
[ or ]角括弧(ブラケット)を指します
{ or } or shift+b波括弧(ブレース)を指します
( or )丸括弧(パーレン)を指します
< or >山括弧を指します
シングルクォーテーションを指します
ダブルクォーテーションを指します
`バッククォートを指します
  • サラウンドコマンド
コマンド説明
y s <motion> <desired><motion>で指定した箇所を<desired>で囲む
d s <existing><existing>の囲いを削除する
c s <existing> <desired><existing>の囲いを<desired>にチェンジする
shift + s <desired>visualモードの選択箇所を<desired>で囲む
  • その他コマンド
コマンド説明
oopen lineのo 新しい行を下に追加して挿入モードに切り替えます
shift + o新しい行を上に追加して挿入モードに切り替えます
pputのp レジスタ内の文字列をカーソル下に貼り付けます
shift + pレジスタ内の文字列をカーソル上に貼り付けます

”その3” Vim キホンの「ン」

では、キホンの「ホ」でご紹介したコマンドの実践をしてみましょう!
応用例を3つご用意しました。

【応用①】
”括弧の中のテキストを削除したい時”・・・
 マウスであれば:括弧内を全選択して削除
 キーボードであれば:Shift + 矢印キーで選択して削除

・・・なかなか手間がかかりますよね。
そんな時は Normalモード で括弧の中のテキストにカーソルを合わせd → i → ( と順番に入力ってみましょう!

if文の括弧の中だけ削除することができました!

この d i ( コマンド意味としてはこんな感じ。
 ・d → 削除する(オペレーションコマンド:delete)
 ・i  → 内部を(オブジェクトコマンド:inner)
 ・(  → 括弧の(オブジェクトコマンド:( )
上記のように、 ”括弧の 内部を 削除する” という意味のコマンドになっています!

・・・と、こんな感じでVimは 各グループのコマンドを組み合わせて使用します!

【応用②】
”文字列の 内部を 変更する” 場合は・・・
 ・c → 変更する(オペレーションコマンド:change)
 ・i  → 内部を(オブジェクトコマンド:inner)
 ・” → ダブルクオーテーションの(オブジェクトコマンド:” )
なので、 c i ” になるわけですね!
※ オペレーションコマンドの”change”はコマンド実行後にInsertモードに移行します。
  そのため、削除後すぐにテキストを入力できます。

【応用③】
”括弧の 中に 波括弧を 入れたい”場合は・・・
 ( data ) → ({ data })
上記のように変更したい場合ですね。
これ、あるあるだと思います。

そんな面倒な入力も、Vimなら簡単!!
 ・ys → 囲む(サラウンドコマンド:ys)
 ・i  → 内部を(オブジェクトコマンド:inner)
 ・(  → 括弧の(オブジェクトコマンド:( )
 ・{  → 波括弧で(オブジェクトコマンド: { )
というように、 ys i ( { になります!

このように各グループのコマンドを組み合わせて、なんでもできるのがVimの魅力です!

「これコマンドで出来ないかなぁ・・・?」と思うことは大抵コマンドが用意されていますので、ご興味があればぜひ調べてみてください!

最後に

ここまで読んでいただいた方はVimに片足突っ込んでいるのと一緒です。
今すぐ拡張機能をご自分のVSCodeにインストールし、使ってみましょう!

Vimの難しいところでもあるのですが、今回ご紹介したコマンドを一気に覚えて使いこなそうとすると、身に付く前に挫折する可能性があります。

まずは”自分が何の動作を効率化したいか”を考え、そのコマンドを使うところから始めるのがおすすめです!
(私の場合、”括弧の中のテキストを消す”作業が面倒だったので、 d i ( から使い始めました)
使っていく内に、段々と「次はこれを効率化したい!」となりVimコマンドが身についていくと思います。

皆さんもVim教に入信しましょう!