学生の頃にちょっとだけLinuxを触ってたので、vi もなんとなく使える気でいたんですが、
現場でで使い始めると「あれ?どうするんだこれ?」と戸惑うことだらけでした。
同じように「実はviあんまりわかってない」って状態の人の参考になれば嬉しいです。
🔒 編集したくないときは view で開くと安心
「間違ってファイルの中身変えかけた」事件が起きてから、
教わったのが view。
view hoge.sh
これなら読み取り専用モードで開けるので、
いくらキーボードを叩いても内容は変わりません。
安心して読めます、精神的に助かります。
🔍 文字量多すぎ問題 → /で検索しないとやってられない
現場で設定ファイルとかログファイルを vi で開いたとき、
「いや、文字量多すぎ!?スクロールして探すの絶対無理…」ってなりました。
そんなときに知ったのが / を使った検索。
/検索したい文字
って入力すると、その文字列にジャンプできます。
例えば
/hugahuga
で「hugahuga」という単語にカーソルが移動します。
n を押せば次の一致箇所へ、N を押せば前の一致箇所に戻れます!
n → 次の検索結果へ
N → 前の検索結果へ
🔁 rキーで1文字だけ置換できるの地味に便利
ノーマルモードで r を押すと、
その場の1文字を置換できます。
例:20100830の日付を変えたいとき
カーソルが "3" にあるときに `r1` → "3" が "1" に
1文字ミスしたときや桁数を間違えたくないときに、わざわざインサートモードに入らず
サクッと修正できて安心です。
🧹 dw でカーソル位置から単語削除
最初、間違って rm とか打って
「あれ? 消えないしなんか変になった!?」ってなりました。
正しくはこれ
dw → delete word の略
カーソル位置から単語の末尾までを一発削除できます。
例えばこの文章で sample にカーソルがあるとき
This is a sample line.
dw を押すと:
This is a line.
すっきり。
(ノーマルモードで行います。)
🧊 Alt+Vを押したらviがフリーズした話(原因はわかってません)
作業中、vi でファイルを開いてノーマルモードでうっかり Alt + V を押してしまったことがありました。
コマンドライン上には間違えてペーストしてしまっても何もペーストされていないように見えたのでそのまま入力状態にした……ら、viが固まってしまいました。
具体的には
- キー入力が一切反応しなくなる
-
Ctrl + Qも効かない - Esc も効かない
- 画面はそのまま
- 終了もできない
詰みました。
📌 結局どうしたかというと…
新しく Tera Term を立ち上げ直して、別セッションから対処しました。
2回目以降ノーマルモードで間違えて貼り付けてしまった際は入力状態にすると固まってしまうので一度 :q で抜けて開き直して対処しています。
❓ 原因は?
正直、まだちゃんと調べきれてません…。
調べても上記に関する内容を見つけられませんでした。
✅ まとめ:viはなんとなく使える気でいたけど、全然奥が深かった
現場で本格的に vi を使い始めたら、学生時代に触っただけじゃ全然足りませんでした。
でも、少しずつ覚えた小技が役立ったのでまとめます。
| 機能 | コマンド | 内容 |
|---|---|---|
| 読み取り専用で開く | view ファイル名 |
誤操作防止に便利。安心して読める |
| 文字列検索 |
/検索語 + n/N
|
/検索語 で検索、n で次へ、N で前へ (ノーマルモード) |
| 1文字置換 | r[文字] |
1文字だけサクッと修正 (ノーマルモード) |
| 単語削除 | dw |
カーソル位置から単語末尾まで削除 (ノーマルモード) |
| 謎のフリーズ | Alt + V |
ノーマルモードで貼り付けて入力状態にするとフリーズするので注意(原因不明) |