Vim と Nano を使用した Linux でのテキストファイル編集

CompTIABeginner
オンラインで実践に進む

はじめに

この実験では、Linux において不可欠な 2 つのテキストエディタ、vi/vimnano を使用するために必要な基本スキルを習得します。これらは Linux 環境で最も一般的に使用されるテキストエディタであり、それぞれに独自の強みとユースケースがあります。

まず、Unix 系システムで強力かつ遍在的なツールである vi テキストエディタから始めます。ファイルの作成、挿入モード(Insert Mode)を使用したテキストの入力、:w:wq などのコマンドによる作業内容の保存、移動キーを使用したナビゲーション、テキストの検索、単語の削除などの基本的な編集操作を学びます。

実験の後半では、初心者にとって最適な、よりユーザーフレンドリーなエディタである nano を探索します。その直感的なインターフェースを体験し、基本的な編集操作を学び、さまざまなタスクにおいて vim よりも nano を選択すべき場面を理解します。

この実験を終える頃には、両方のエディタを快適に使いこなせるようになり、Linux のワークフローにおけるさまざまなシナリオでどちらのツールが最適であるかを判断できるようになります。

ファイルの作成と挿入モードでのテキスト入力

このステップでは、vi エディタを使用して新しいテキストファイルを作成し、テキストを入力する方法を学びます。vi(およびそのモダン版である vim)は、Unix 系オペレーティングシステムにおいて強力でどこにでもあるテキストエディタです。これは異なる「モード」で動作し、最も基本的な 2 つのモードは、ノーマルモード(コマンド用)と挿入モード(テキスト入力用)です。

まず、正しい作業ディレクトリにいることを確認しましょう。この実験のすべての作業は ~/project ディレクトリで行います。

  1. ターミナルを開きます。プロンプトに project ディレクトリにいることが表示されているはずです。pwd(現在の作業ディレクトリを表示)コマンドでフルパスを確認できます。

    pwd

    現在地を確認する以下の出力が表示されるはずです。

    /home/labex/project
    現在のディレクトリを表示するターミナル
  2. 次に、vi エディタを起動し、test.txt という名前の新しいファイルを作成します。このコマンドを実行すると、vi が起動し、ターミナルウィンドウを占有します。

    vi test.txt

    ターミナルがクリアされ、左側にチルダ(~)が並んだ画面が表示されます。これらは空行であることを示しています。画面の下部には、ファイル名 "test.txt" [New File] が表示されます。現在は ノーマルモード の状態です。

  3. テキストの入力を開始するには、挿入モード に切り替える必要があります。キーボードの i キーを押してください。

    i

    画面の下部に -- INSERT --(または -- 挿入 --)と表示されることに注目してください。これで挿入モードになったことが確認でき、ファイルに直接テキストを入力できるようになります。

  4. 次の文章を入力してください。

    Now is the time for all good men to come to the aid of their country.

    挿入モードでテキストが入力された vi エディタ

    この時点では、入力したテキストはエディタのメモリバッファ上に存在しますが、まだディスクには保存されていません。次のステップでは、作業内容を保存してエディタを終了する方法を学びます。

:w と :wq を使用したファイルの保存と終了

このステップでは、変更を保存して vi エディタを終了する方法を学びます。これらのアクションは、ノーマルモード でコマンドを使用して実行されます。前のステップから現在は挿入モードになっているため、まずノーマルモードに戻る必要があります。

  1. 挿入モードからノーマルモードに戻るには、Esc キーを押します。

    Esc

    画面下部の -- INSERT -- 表示が消えることに気づくでしょう。これは現在ノーマルモードであることを意味し、キー入力はテキスト入力ではなくコマンドとして解釈されます。

  2. では、ファイルを保存しましょう。ノーマルモードでは、コロン(:)で始まるコマンドは画面下部のコマンドラインに表示されます。ファイルを書き込む(保存する)には、:w コマンドを使用します。

    次のシーケンスを入力して Enter を押します。

    :w

    Enter を押すと、vi はバッファの内容を test.txt ファイルに書き込みます。下部に次のような確認メッセージが表示されます。

    "test.txt" [New] 1L, 79C written

    このメッセージは、1 行 79 文字を含む test.txt ファイルが保存されたことを示しています。

  3. 最後に、vi を終了するには、"quit"(終了)を意味する :q コマンドを使用できます。より一般的なコマンドは :wq で、これはファイルの書き込みと終了を 1 つのアクションにまとめたものです。すでにノーマルモードにいるので、次のように入力して Enter を押します。

    :wq

    このコマンドは最終的な変更を保存してから vi エディタを閉じ、ターミナルのシェルプロンプトに戻ります。ターミナルにはおなじみのコマンドプロンプトが表示され、test.txt ファイルは ~/project ディレクトリに保存されています。

gg、h、j、k、l、および / を使用したナビゲーションと検索

このステップでは、vi の強力なナビゲーションおよび検索コマンドを練習します。これらのコマンドを使用すると、マウスを使わずにカーソルを移動させたり、テキストを効率的に見つけたりすることができます。これらの操作はすべて ノーマルモード で行われます。

  1. まず、test.txt ファイルを再度開く必要があります。~/project ディレクトリのシェルプロンプトから、次のコマンドを入力します。

    vi test.txt

    エディタが開き、ファイルの内容が表示されます。カーソルはおそらく 1 行目の先頭にあります。

  2. カーソルをファイルの完全に先頭に移動させるには、gg コマンドを使用します。ノーマルモードであることを確認し(不安な場合は Esc を押してください)、gg と入力します。

    gg

    カーソルは即座に 1 行目の最初の文字(このファイルでは 'N')にジャンプします。

  3. vi でカーソルを移動させる主な方法は、hjkl キーを使用することです。これは vi ユーザーにとって核心となるスキルです。

    • h:カーソルを左に 1 文字移動
    • l:カーソルを右に 1 文字移動
    • j:カーソルを 1 行下に移動
    • k:カーソルを 1 行上に移動

    これらのキーを押して、文章の中でカーソルを移動させてみてください。このナビゲーション方法は、あらゆるターミナル環境で機能します。

  4. 次に、テキストを検索してみましょう。/ コマンドは、ファイル内を前方に検索するために使用されます。文字 'a' のすべての出現箇所を検索するには、次の手順に従います。
    a. ノーマルモードであることを確認します(Esc を押す)。
    b. / に続けて検索したい文字(この場合は a)を入力します。その後、Enter を押します。

    /a

    カーソルは、現在の位置から後で見つかった最初の 'a' にジャンプします。

    c. 同じ検索語の次のインスタンスを見つけるには、単に n キー("next" の略)を押します。

    n

    n を数回押して、ファイル内のすべての 'a' を循環してみてください。

これで基本的なナビゲーションと検索を練習しました。次のステップでは、テキストを削除する方法を学びます。

dw による単語の削除と :q! による保存せず終了

このステップでは、テキストを削除する方法と、変更を保存せずに vi を終了する方法を学びます。これは、間違いを犯してしまい、最後に保存されたバージョンのファイルに戻したい場合に非常に重要なスキルです。前のステップから引き続き test.txt ファイルを vi で開いているはずです。

  1. まず、削除したい単語までカーソルを移動させます。ノーマルモード であることを確認してください。hl キーを使用して、カーソルを time という単語の最初の文字に合わせます。

  2. カーソルが timet の上にある状態で、dw コマンドを入力します。このコマンドは "delete word"(単語削除)の略です。

    dw

    time という単語とその後のスペースが画面から消えるのがわかります。文章が不自然になりますが、次のアクションの練習には最適です。

  3. これでエディタのバッファ内のファイルが変更されました。この削除が間違いだったと仮定しましょう。この誤ったバージョンを保存する代わりに、終了して変更を破棄します。これを行うコマンドは :q! です。q は "quit"(終了)を意味し、! は未保存の変更を無視してアクションを強制することを意味します。

    a. ノーマルモードであることを確認します(Esc を押す)。
    b. 次のコマンドを入力して Enter を押します。

    :q!

    このコマンドは即座に vi エディタを終了し、シェルプロンプトに戻ります。:q! を使用したため、単語 time の削除は test.txt ファイルに 保存されません。ファイルを再度開くと、time という単語はまだそこに残っています。

さらなる練習のための対話型 vimtutor の起動

このステップでは、vi/vim のスキルを実践的に学ぶために設計された対話型チュートリアル vimtutor を紹介します。この実験では絶対的な基礎を扱いましたが、vimtutor はすべての新規ユーザーに強く推奨される、包括的で自分のペースで進められるコースを提供します。

  1. ~/project ディレクトリのシェルプロンプトにいるはずです。チュートリアルを開始するには、単に vimtutor と入力して Enter を押します。

    vimtutor
  2. このコマンドは、特別なチュートリアルファイルを使用して vi を開きます。ファイル自体にすべての指示が含まれています。テキストを読み、説明されているコマンドをチュートリアルファイル内で直接練習します。ファイルのコピー(一時ファイル)で練習するため、安全かつ効果的に学習できます。

    チュートリアルはいくつかのレッスンに分かれており、完了までに約 25 〜 30 分かかると予想されます。自分のペースで進めることができます。

  3. チュートリアルが終わったとき(またはいつでも中断したいとき)は、通常の vi セッションと同じように終了できます。チュートリアルファイルへの変更を保存する必要はないため、終了する最良の方法は :q! コマンドを使用することです。

    a. Esc を押してノーマルモードであることを確認します。
    b. :q! と入力して Enter を押します。

    :q!

これで、この実験の実践部分は終了です。これらのステップを完了することで、vi エディタを使用したファイルの作成、編集、保存、およびナビゲーションの基本スキルを習得しました。

nano エディタの紹介

このステップでは、初心者や素早い編集に最適なユーザーフレンドリーなテキストエディタ nano の使い方を学びます。vi とは異なり、nano は画面下部に役立つショートカットを表示し、異なるモードを持たないため、新しいユーザーにとってより直感的です。

  1. まず、nano を使用して新しいファイルを作成しましょう。~/project ディレクトリのシェルプロンプトから、次のコマンドを入力します。

    nano welcome.txt

    nano エディタが空のファイルで開きます。下部にある利用可能な機能を示す便利なメニューに注目してください。

  2. vi とは異なり、モードを切り替えることなく、nano ではすぐにタイピングを開始できます。次のテキストをコピーして貼り付けてください。

    下部にショートカットが表示された nano エディタのインターフェース
    Welcome to Linux Text Editing!
    
    This file was created using the nano editor.
    Nano is beginner-friendly and intuitive.
    
    Key advantages of nano:
    - No modes to switch between
    - Shortcuts displayed at bottom
    - Easy to learn and use
    - Perfect for quick edits
  3. では、ファイルを保存しましょう。nano の保存機能(WriteOut)を使用します。ファイル名を尋ねるプロンプトが表示されます。現在の名前 welcome.txt がすでに表示されています。Enter を押して確定し、ファイルを保存します。

    下部に、書き込まれた行数とともに、ファイルが正常に書き込まれたことを示すメッセージが表示されます。

  4. nano を終了するには、終了(Exit)機能を使用します。すでにファイルを保存しているため、nano はすぐに終了し、シェルプロンプトに戻ります。

nano と vi/vim の比較:各エディタを使い分けるタイミング

最後のステップでは、nanovi/vim の主な違いについて学び、各エディタをいつ使用すべきかを理解します。違いを実証するために、両方のエディタを使用して比較ファイルを作成してみましょう。

  1. まず、nano を使用して比較ファイルを作成します。

    nano editor_comparison.txt
  2. nano で次の内容を入力します。

    TEXT EDITOR COMPARISON: nano vs vi/vim
    
    NANO EDITOR:
    Pros:
    - Beginner-friendly interface
    - No modes to learn
    - Shortcuts displayed on screen
    - Immediate text input
    - Good for quick edits and simple tasks
    
    Cons:
    - Limited advanced features
    - Less efficient for complex editing
    - Not available on all systems
  3. ファイルを保存して nano を終了します。

  4. 次に、同じファイルを vi で開いて、さらに内容を追加しましょう。

    vi editor_comparison.txt
  5. G(大文字の G)を使用してファイルの末尾に移動し、o を押して新しい行を開き、挿入モードに入ります。次の内容を追加します。

    VI/VIM EDITOR:
    Pros:
    - Extremely powerful and feature-rich
    - Available on virtually all Unix/Linux systems
    - Highly efficient once mastered
    - Excellent for programming and complex editing
    - Extensive customization options
    
    Cons:
    - Steep learning curve
    - Modal interface can be confusing for beginners
    - Requires memorizing many commands
  6. Esc を押してノーマルモードに戻り、:wq で保存して終了します。

  7. 完成した比較ファイルを確認してみましょう。

    cat editor_comparison.txt

    これにより、両方のエディタで追加された内容を含む完全な比較が表示されます。

各エディタを使い分けるタイミング:

  • nano を使用する場合:

    • Linux のテキスト編集が初めての場合
    • 素早く簡単な編集を行う場合
    • たまに設定ファイルを操作する場合
    • シンプルで直感的なインターフェースを好む場合
  • vi/vim を使用する場合:

    • 大規模なプログラミングやテキスト操作を行う場合
    • リモートサーバーで作業する場合(vi は常に利用可能です)
    • マクロ、プラグイン、複雑な検索/置換などの高度な機能が必要な場合
    • コマンドを習得した後の効率とスピードが重要な場合

どちらのエディタも Linux ユーザーのツールキットにおける貴重なツールであり、両方を知っておくことで、さまざまな状況に柔軟に対応できるようになります。

まとめ

この実験では、Linux における 2 つの不可欠なテキストエディタ、vi/vimnano の使い方を学びました。

vi/vim では、モーダル編集の基本概念をマスターし、ノーマルモードと挿入モードを切り替える方法を学びました。ファイルの作成、テキストの入力、:w および :wq による保存、移動キー(hjkl)によるナビゲーション、/ による検索、dw などのコマンドによる編集、そして :q! による保存せず終了を練習しました。また、継続的な学習のための対話型 vimtutor も発見しました。

nano では、より初心者向けのテキスト編集アプローチを体験しました。モードを気にせずにファイルを作成・編集する方法を学び、画面下部にショートカットが表示される直感的なインターフェースを使用し、ファイルの保存や終了などの基本操作を練習しました。

重要なポイント:

  • nano は、直感的なインターフェースと表示されたショートカットにより、初心者や素早い編集に最適です。
  • vi/vim は、複雑な編集タスクにおいてより強力で効率的ですが、学習への投資が必要です。
  • 両方のエディタは価値のあるツールです。シンプルさなら nano、パワーと汎用性なら vim です。
  • 各エディタをいつ使用すべきかを理解することで、さまざまな Linux のシナリオでより効果的に作業できるようになります。

これで、特定のニーズに合わせて適切なテキストエディタを選択するための基礎が整いました。引き続き両方のツールでスキルを磨いていきましょう。