こんにちは!ITエンジニアの あおのり です。
Linuxでシステム開発をすることになったんだけど、Linuxっていろいろとハードルが高いよね?
ファイルを1文字修正したいだけなのに、ファイルをWindows PCにコピーして、修正して、そのファイルをLinux PCにコピーしなおす。
とにかく時間がかかって大変なんだよ…
Linuxではコマンドライン上でテキストファイルを編集することができるよ。
Linuxのテキストエディタ「vi」の基本を押さえて、簡単なファイル編集をできるようになろう!
Linuxでシステム開発をするとき、コマンドラインでの操作が中心になるとこがあります。
その中でも、大きな壁となっているのが、viエディタでのファイル操作ではないでしょうか?
そこで今回は、Linuxのテキストエディタ「vi」の基本知識を紹介し、簡単なファイル編集をする方法を紹介します。
本記事では「vi」エディタの基本知識と、簡単なファイル編集に必要な最低限の操作方法を紹介します。
viエディタから派生した、高機能版の「vim」がありますが、こちらについては紹介しません。
vi エディタを本格的に学びたい方は、以下書籍をお勧めします。
viエディタとは
ほとんどのLinux環境に標準で搭載されているテキストエディタです。
コマンドライン上で動作するテキストエディタで、基本的にはマウスは使わず、キーボードで操作します。
このため、操作方法が独特でviエディタを使うには慣れが必要となります。
viエディタの基礎知識
viエディタには二つのモードがあります。
- コマンドモード
- 入力モード
この二つのモードを切り替えながら操作を行います。
コマンドを実行したり、テキストを入力したりするには、それぞれの操作を正しいモードで実行しなければなりません。
それぞれのモードと切り替え方を見ていきましょう。
コマンドモード
viエディタ起動時は、最初コマンドモードになっています。
カーソルを動かして目的のテキストに移動したり、ファイルを保存したりするためのモードで、viの基本となるモードです。
このモードでは、各キーにはさまざまなコマンドが割り当てられており、テキストの直接入力はできません。
テキスト入力モード
文字を入力するモードになります。
カーソルのある位置の直前から、入力したテキストを挿入することができます。
このモードで各キーを操作することにより、テキストを入力することができます。
モードの切り替え方
コマンドモードの状態で、新しく文書入力するコマンド「i」「a」などを入力すると、入力モードに切り替わります。
入力モードの状態で <esc>キー を入力すると、コマンドモードに切り替わります。
Hello vi editor ~はじめてのviエディタ~
viエディタの起動
新しくファイルを作成する、もしくは既存のファイルを編集する場合はLinuxのコマンドラインから以下のようにファイル名を指定してviコマンドを実行します。
ここでは「file.txt」というファイルを作成もしくは編集することにします。
画面の一番下(赤枠部分)が「“file.txt” [New File]」となり、新しくファイルを作成する状態でviエディタが起動しました。
文字の入力
テキスト入力モードへの切り替え
viエディタ起動時は、最初コマンドモードになっています。
新しく文書入力するコマンド、今回は「i」キーを入力して、テキストを入力するモードに切り替えます。
画面の一番下(赤枠部分)が「— INSERT —」となり、テキスト入力モードに切り替わりました。
文字の入力
テキスト入力モードの状態で各キーを操作することにより、テキストを入力することができます。
ためしに「Hello vi editer!」を入力してみましょう。
文字が入力できたかと思います。
コマンドモードへの切り替え
<esc>キーを入力すると、コマンドモードに切り替わります。
画面の一番下(赤枠部分)が「— INSERT —」が消えて、コマンドモードに切り替わりました。
カーソル移動
ファイルを保存する前にカーソル移動を試してみます。
カーソル移動コマンド「h」「j」「k」「l」 を入力してみましょう。
文字の下にあるカーソルの移動ができたかと思います。
カーソル移動コマンドについて後述します。ここではコマンドモードでのキー入力でカーソルの移動ができることを確認してください。
カーソル移動後、新しく文書入力するコマンド「i」「a」などを入力すると、その位置からの入力モードに切り替わります。
新しく文書入力するコマンドについては後述します。
ファイル保存とviエディタ終了
コマンドモードの状態で「:wq!」を入力後、<enter>キーを入力、してみましょう。
ファイルが保存され、viエディタが終了します。
まとめ:Hello vi editor ~はじめてのviエディタ~
viエディタを使うときは「コマンドモード」と「テキスト入力モード」を意識して切り替えながら使おう!
viエディタのコマンド
viエディタでよく使うコマンドをまとめてみました。
ここで取り上げていないコマンドも存在しますが、それらはviエディタに慣れてきたあと、必要と感じた時に調べてみてください。
ファイル内を移動するコマンド
h | カーソルを1文字左へ動かします。 |
j | カーソルを1行下へ動かします。 |
k | カーソルを1行上へ動かします。 |
l | カーソルを1文字右へ動かします。 |
カーソル移動のイメージはこんな感じです。
k | ||
h | カーソル | l |
j |
新しく文書入力するコマンド
i | カーソルの前から文書の入力を開始します。 |
a | カーソルの後から文書の入力を開始します。 |
o | カーソルの下に新しい行を追加して、文書の入力を開始します。 |
O | カーソルの上に新しい行を追加して、文書の入力を開始します。 |
文書をコピーするコマンド
yy | カーソルのある行をコピーします。 |
<num>yy | カーソルのある行から<num>行をコピーします。 |
3yy | カーソルのある行から3行をコピーします。 |
p | カーソルのある行の下にコピーした行を追加します。 |
文書を削除するコマンド
dd | カーソルのある行を削除します。 |
<num>dd | カーソルのある行から<num>行を削除します。 |
3dd | カーソルのある行から3行を削除します。 |
x | カーソルのある文字を削除します。 |
行番号を表示するコマンド
:set number | 行番号を表示します。 |
:set nu | 行番号を表示します。 |
:set nonumber | 行番号を非表示にします。 |
:set nonu | 行番号を非表示にします。 |
行表示をするとこんな感じになります。
行を移動するコマンド
:<num> | カーソルを<num>行目へ動かします。 |
:0 | カーソルを先頭行へ動かします。 |
:$ | カーソルを最終行へ動かします。 |
ファイルに書き込むコマンド
:w<enter> | ファイルに内容を書き込みます。 |
エディタを終了するコマンド
:q<enter> | エディタを終了します。(ファイル内容が変更されていてまだ保存されていなければ、終了指示を拒否します。) |
:q!<enter> | 変更した内容を放棄し、エディタを終了します。 |
まとめ:viエディタで簡単なファイル編集できるようになろう
今回は、Linuxのテキストエディタ「vi」の基本知識を紹介し、簡単なファイル編集をする方法を紹介しました。
viエディタでの簡単なファイル編集を覚えて、Linuxでの開発を効率的に行いましょう!
でも、Linuxやviを使えるように練習したいけど、Windowsパソコンしかもっていないよ…。勉強したいけどどうしよう?って方に向けて、後日、WindowsパソコンでLinuxを使う方法を投稿しようかと思います。
今回の記事が少しでも皆さんの役に立てば幸いです。
以上、あおのりでした!