株式会社リゾーム技術部システム開発第3グループの廣江です。 「Linux標準教科書」読書会の第5回レポートです。第4回目のレポートはこちらになります。
読書会の題材
前回に引き続きLinux標準教科書を題材としています。
5回目レポート
今回は6章「vi エディタ」で、参加者は5名でした。
それぞれの感想・意見交換
viの基本操作
- CentOS・Red Hat等、デフォルトで入っているエディタはvimなので、サーバー上でファイルを編集する際は、vimの知識は必須
- viが使える環境であればvimtutor(vimのチュートリアル)がある
- 保存はwコマンドとqコマンドを別々に使う方が安全なのだろうけどwqで済ませることの方が多い
- vi で開いて i でインサートモードにして編集して esc でコマンドモードに戻って :wq で保存する、これだけ覚えていれば最低限使える
- q!コマンドを知らなかったせいで、ファイルの書き込み権限がない時にviエディタから抜けられなくて困ったことがある
- ファイルを指定せずにviコマンドを実行すると新しいファイルを作成する...?
- そうだよ
インサートモードとコマンドモード
- aコマンドを使うことがほとんどで、iコマンドはほぼ使ってない
- 逆にaコマンドは使った事がなかった
- 行頭、行末への移動コマンドは使ったことなかった
- 0コマンドで行頭$コマンドで行末に移動できます
- 行頭・行末への移動はよく使う操作だから覚えておくと良い
- モード切り替えが煩わしく感じる
- 切り替えがiだったりescだったり変わるところが感覚的に合わない
- モード切替が直感的でないためこれも慣れが必要
- 初めて使ってみたが、使い続けたいとは思えなかった
- ESCは押すのが遠いので、ctrl+[ を使っている
編集中の大きな移動
- 上下左右の移動ぐらいしか使ってなかったのでページ単位や行指定、文書頭、文書末の移動は知らなかった
- ページ単位の移動は知らなかった
- 3章で出てきたページャの内容を読んだ後なので理解が進んだ
- 知ってると時間短縮になる、知らないとカーソル移動で何度も方向キーを押すハメになるので辛い
- ほとんど覚えていないのでよく間違える
様々な編集操作
- ペーストコマンドが大文字と小文字で区別されていて驚いた
- 大雑把にpコマンドのみをカーソルの下にペーストされる仕様なんだと思って使いそう
- ファイルに追記する際は、文書末が多いのでGコマンドは便利そう
- カットやコピーのコマンドは知らなかった
- カットのコマンドはよく使うが、コピーはマウス操作でやりがち
- 行ごとのカットやコピーは使うかもしれない
- 1文字とかは書き直すかも
- Pコマンドで"前に"ペーストは知らなかった
- 直感的にはコピーはcでペーストはvなんだけどなという気持ちがある
- ⌘c, ⌘v
- 1行削除もどうしてxxじゃないんだ...
- xxだと1文字削除を2回だねw
置換と検索
- 検索や置換のコマンドも知らなかった
- 文字の検索はよく使う(lessの時と同じ)
- 文字列の置換が出来る事は知らなかった
- 置換する対象を行範囲で指定できることになるほどと感じた
- optionにgを指定しないと行ごとで1回だけしか置換できないのはうっかりミスでよくありそう
その他
- コマンドモードでoキーを押すと改行してインサートモードに入れて便利
- コマンドモードで :set number を入力してエンターキー押すと行番号が表示される
- viの設定に書いておけば初期状態で表示する事も可能
- vimの操作に慣れるために、一時期VSCodeのvimのプラグイン入れていたが、めんどうになってやめた(おかげで割りと慣れた)
- 直前の変更を繰り返すドットコマンド「.」
- 「I」で行頭にインサートモード→「# 」を入力→「ESC」
- その後は「j」で一行下にカーソル→「.」で上と同じことが実行される
まとめ
開発中にviエディタを使うタイミングはそれほど多くないため、開発メインのメンバーはviエディタについて知らないことが多いことがわかりました。逆に保守作業をするときによく使うので、保守メインのメンバーから様々な知見が共有されたのがとても有意義だと感じました。開発メインであっても保守作業からは逃れられないため、いざという時に効率的に作業するためにもviエディタの各操作は覚えておいて損はないという認識で全員が一致しました。