アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

【入門編】Viコマンドチートシート

Featured image of the post

Viエディタは、UNIXおよびLinux環境で広く使用されているテキストエディタの一つであり、その強力で柔軟なコマンドによって高い人気を誇っています。Viは基本的な操作から複雑な編集まで、多くの機能をキーボード操作で効率的に実行することができます。この記事では、Viエディタで頻繁に使用されるコマンドを紹介し、初めてViを使う人や、もっと効率的に使いたい方のために役立つ「チートシート」をまとめました。


Viの基本モード

Viには主に3つのモードがあります。それぞれのモードで動作が異なるため、まずこれを理解することが重要です。

  1. コマンドモード

    起動時にViはデフォルトでコマンドモードに入ります。このモードではテキストの編集を直接行うのではなく、カーソル移動や削除、コピーなどのコマンドを入力します。

  2. 挿入モード

    iaなどのコマンドを使って挿入モードに入ると、文字の挿入が可能になります。挿入モードでは普通のテキストエディタのようにテキストを入力できます。

  3. エクスコマンドモード

    :を入力することでエクスコマンドモードに入ります。このモードではファイルの保存や終了、テキストの検索や置換といった高度な操作が行えます。


コマンドモードの基本操作

コマンドモードでの操作は、主にカーソル移動、削除、コピー、貼り付けなどの編集作業に集中します。以下に頻繁に使用される基本的なコマンドをまとめました。

カーソル移動
  • h: 左に移動
  • j: 下に移動
  • k: 上に移動
  • l: 右に移動
  • w: 次の単語の先頭に移動
  • b: 前の単語の先頭に移動
  • 0: 行の先頭に移動
  • $: 行の末尾に移動
  • G: ファイルの最後の行に移動
  • gg: ファイルの最初の行に移動
テキスト編集
  • i: 現在のカーソル位置の前から挿入モードに入る
  • a: 現在のカーソル位置の後から挿入モードに入る
  • o: 現在の行の次に新しい行を挿入して挿入モードに入る
  • dd: 現在の行を削除
  • dw: 現在のカーソル位置から単語を削除
  • x: 現在のカーソル位置の文字を削除
  • u: 最後の操作を元に戻す(Undo)
  • U: 現在の行で行った全ての変更を元に戻す
コピーと貼り付け
  • yy: 現在の行をコピー
  • p: カーソル位置の後に貼り付け
  • P: カーソル位置の前に貼り付け

エクスコマンドモードの操作

エクスコマンドモードでは、ファイルの保存や終了、検索、置換などの操作が可能です。以下に代表的なコマンドを紹介します。

ファイル操作
  • :w: ファイルを保存
  • :q: Viを終了
  • :wq: 保存して終了
  • :q!: 保存せずに終了
  • :e ファイル名: 指定したファイルを開く
検索と置換
  • /文字列: 文字列を前方に検索
  • ?文字列: 文字列を後方に検索
  • n: 次の検索結果へ移動
  • N: 前の検索結果へ移動
  • :s/旧文字列/新文字列/g: 現在行の文字列をすべて置換
  • :%s/旧文字列/新文字列/g: ファイル全体の文字列をすべて置換

よく使うコマンドのまとめ

以下に、さらに実用的なコマンドをいくつか紹介します。これらは操作を素早く行うために便利です。

  • .: 直前のコマンドを繰り返す
  • J: 現在の行を次の行と結合
  • >>: 行をインデント
  • <<: 行のインデントを戻す
  • ^: 行の先頭(インデントを無視)に移動
  • ~: 大文字・小文字を切り替える

Viをマスターするために

Viを使いこなすためには、基本的なコマンドを覚えることが第一歩です。しかし、最初は慣れるまでに時間がかかるかもしれません。次のステップとして、特定のタスクを効率化するためにマクロやカスタムコマンドを学ぶことをおすすめします。また、Viの拡張版であるVimには、さらに多くの便利な機能が含まれているため、興味があればVimのチートシートも調べてみてください。


Viエディタの使い方をしっかり覚えることで、作業効率を大幅に向上させることができます。このチートシートを活用し、ぜひ日々の編集作業に役立ててください。

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会