Categories: 技術

Viエディタの完全攻略ガイド: Linuxユーザーならこれが使えて一人前!

Viエディタは、Linux/Unix環境で広く使用される強力なテキストエディタです。

最大の特徴は、2つの基本モードを使い分けることですが、独特のコマンド体系により初心者にとってはとっつきにくいエディタとして知られています。しかし、一度習得すれば非常に効率的な編集が可能となるため、この記事では基本から実践的な使い方まで徹底解説します。

Viエディタの基本概念

コマンドモード

  • テキストの編集以外の操作(移動、コピー、削除など)を行うモード
  • Viの起動時のデフォルトモード
  • ESCキーで他のモードから戻れる

入力モード

  • 実際のテキスト入力を行うモード
  • iやaキーでコマンドモードから移行

基本操作

起動と終了

# ファイルを開く/新規作成
vi ファイル名

# 保存して終了
:wq

# 保存せずに終了
:q!

モード切り替え

入力モードへの移行:

  • i – カーソル位置から入力開始
  • a – カーソルの次の位置から入力開始
  • o – 現在の行の下に新しい行を作成して入力開始
  • O – 現在の行の上に新しい行を作成して入力開始

編集操作

カーソル移動

基本移動:

  • 左右移動: h(左), l(右)
  • 上下移動: k(上), j(下)
  • 行頭へ: 0
  • 行末へ: $

高度な移動:

  • ファイル先頭へ: gg
  • ファイル末尾へ: G
  • 特定の行へ: :行番号

テキスト編集

削除操作:

  • x – カーソル位置の1文字を削除
  • dd – 現在の行を削除
  • dw – カーソル位置から単語末尾まで削除

コピー&ペースト:

  • yy – 現在の行をコピー
  • p – カーソル位置の後にペースト
  • P – カーソル位置の前にペースト

高度な機能

検索と置換

検索:

  • /検索文字列 – 前方検索
  • ?検索文字列 – 後方検索
  • n – 次の検索結果へ
  • N – 前の検索結果へ

置換:

text:%s/old/new/g    # ファイル全体でoldをnewに置換
:s/old/new/g     # 現在の行でoldをnewに置換

その他の便利機能

操作の取り消し:

  • u – 直前の操作を取り消し
  • Ctrl + r – 取り消した操作をやり直し

行番号表示:

text:set number      # 行番号を表示
:set nonumber    # 行番号を非表示

Tips

  1. 変更を保存せずにViを終了したい場合は:q!を使用します
  2. 複数の行を一度に削除する場合は、数字を指定できます(例:3ddで3行削除)
  3. 行の連結はJコマンドを使用します
  4. ファイルの内容を確認するだけの場合はviewコマンドを使用すると安全です

まとめ

コマンド一覧表

モードコマンド説明
コマンドモード(移動)h左へ移動
l右へ移動
j下へ移動
k上へ移動
0行頭へ移動
$行末へ移動
ggファイル先頭へ移動
Gファイル末尾へ移動
コマンドモード(編集)x1文字削除
dd行削除
dw単語削除
yy行コピー
p貼り付け
u取り消し
Ctrl + rやり直し
コマンドモード(検索)/文字列前方検索
?文字列後方検索
n次の検索結果
N前の検索結果
入力モードへの切り替えiカーソル位置から入力
aカーソル後ろから入力
o下に行を追加して入力
O上に行を追加して入力
Exコマンド:w保存
:q終了
:wq保存して終了
:q!保存せずに終了
:set number行番号表示
:s/old/new/g現在行の置換
:%s/old/new/gファイル全体の置換

基本的な使用手順

  1. vi ファイル名でファイルを開く
  2. コマンドモードで移動や編集操作を行う
  3. 入力モードに切り替えてテキストを入力
  4. ESCキーでコマンドモードに戻る
  5. :wqで保存して終了

これらのコマンドを習得することで、Viエディタを効率的に使用することができます。初めは基本的なコマンドから始めて、徐々に上級者向けの機能を習得していくことをお勧めします。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村