0371.Blog

vimtutor やってみた。

2022-06-12

こんにちは、0371です。

今回は、Vimの操作方法などを1時間程度でサラッと学ぶことができる「vimtutor」をやってみました。
普段からCLIでサーバを触るときにvim (vi)を使用するので、業務効率の向上のために勉強します。

「vimtutor」を行う方法について

vimtutorは、vimが入っているPCであれば、すぐに開始できます。 ターミナルなどを開いて下記のコマンドを実行しましょう。

vimtutor

vimのチュートリアルが、日本語で表示されるはずです。

各章のなるほどorいいねポイント

個人的に「なるほど」や「いいね」と思ったポイントをピックアップします。

レッスン 1.1: カーソルの移動

j キーは下矢印キーのようなキーです。

この覚え方はいいなと思いました。
jとkで上下のどっちに行くか毎回わからなくなるんですよね。

レッスン 1.5: テキスト編集 - 追加

カーソルの位置に文字を挿入するには、ノーマルモードで i とタイプします。
i テキストのタイプ <ESC> カーソル位置に追加
A テキストの追加 <ESC> 行末に追加

Aがあったことを知りませんでした。
いつもカーソルを行末まで移動させていたので、これは便利ですね。

レッスン 2.3: オペレータとモーション

w - カーソル位置から空白を含む単語の末尾まで。
e - カーソル位置から空白を含まない単語の末尾まで。
0 - カーソル位置から行頭まで。
$ - カーソル位置から行末まで。

これも覚えないといけないですね。
特にwとeの使い分けを意識する必要がありそうです。

レッスン 2.4: モーションにカウントを使用する

何回も行いたい繰り返しのモーションの前に数値をタイプします。

3w と入力すると3単語分の移動が可能になります。
これもとても楽ですね。

レッスン 2.5: より多くを削除するためにカウントを使用する

既述の削除のオペレータとモーションの組み合わせにカウントを追加することで、
より多くの削除が行えます:
d 数値 モーション

d3w とやると、3単語分の削除ができます。
3dw でも可能でした。

レッスン 2.7: やり直しコマンド

最後のコマンドを取り消すには u を押します。U は行全体の取消です。

大文字のUは知らなかったですね。
行全体の取り消しは頻度としてはそんなに高くなさそうですが、覚えておいて損はないですね。

レッスン 3.2: 置き換えコマンド

カーソルの下の文字を置き換えるには r をタイプします

これもいいですね。
文章を見返した時に、「入力ミスってた!」というときなどによく使用できそうです。

レッスン 3.3: 変更コマンド

単語の一部、もしくは全体を変更するには cw とタイプします

レッスン 3.4: c を使用したその他の変更

c$ ならば行の終わりまでを変更します。

これも上記のrと同じで便利です。

レッスン 4.1: 位置とファイルの情報

ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。
ファイル内のある行に移動するには G をタイプします

500G は、/500 Enter でもできますが、Enterを押す手間が省けるのでいいですね。
今度からはGの方で移動しようと思います。

レッスン 4.2: 検索コマンド

語句を検索するには / と、前方検索する語句をタイプします。

  1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと
    同じ様に / が現れることに気づくでしょう。
  2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。
  3. 同じ語をもう一度検索するときは 単に n をタイプします。
    逆方向に語句を検索するときは N をタイプします。
  4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。
  5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプします。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。

これは全部憶えておく必要がありますね。

レッスン 4.3: 対応する括弧を検索

対応する ),] や } を検索するには % をタイプします

これも地味に有効活用できそうですね。 プログラム書くときに括弧の記述忘れに気がつくことができそうです。

レッスン 4.4: 間違いを変更する方法

'old' を 'new' に置換するには :s/old/new/g とタイプします
:#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定します。 :%s/old/new/g ファイル全体で見つかるものに対して変更する。 :%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりながら変更する。

これは置換ですね。
ソースコードの一部分を変更したいときに使用したいと思います。 上の方で記載した変更コマンドよりも使用回数が増えそうです。

レッスン 5.1: 外部コマンドを実行する方法

:! の後に実行する外部コマンドをタイプします

これも知りませんでした。
いちいち!wq で入力を終えてからコマンド打ってました。

レッスン 5.4: ファイルの取込と合併 ファイルの中身を挿入するには :r ファイル名 とタイプします
いつも閉じて開いてコピーしてってやっていました。

レッスン 6.3: その他の置換方法

1文字以上を置き換えるには大文字の R とタイプしましょう

rよりも使用頻度が高そうですね。

今日の一言

Vimの基本を頑張って覚えたいと思います😱