viエディタは普通のテキストエディタとやれることは同じ
まず結論から言うと、vi はテキストエディタなので、言うなれば普段使っている「メモ帳」と同じなんです。
なので全く恐る必要はありません。(間違って編集してしまったら戻すこともできるので。)
vi エディタとは(ざっくり)
一言でいえば、ただのテキストエディタです!
vi 自体はコマンドで、以下のように任意のファイルに対してコマンドを実行することで、指定した任意のファイルを vi のテキストエディタで開きます。
vi ファイル名(拡張子含む)
ファイルを開いた後の編集方法については後ほど詳しく解説します。
vi ってどこで使えるの?
そもそも vi コマンドが使える環境とそうでないものがあります。
Linux を使ったことがある方はご存知でしょうが、Linux系のOSには標準で搭載されており、cli(コマンドを実行するインターフェース)上で実行可能です。
Mac の場合は、「ターミナル 」というアプリケーションで実行可能です。ターミナルはOSにデフォルトで入っているので、Mac を買ってすぐに利用できます。
Windows の場合は、「PowerShell」などで実行可能です。
(あるいはWSLが標準装備されているので、そちらでやるパターンもあります)
viエディタの使い方
いよいよ具体的な使い方の解説です!
前述の通り、viエディタはテキストエディタなので、「メモ帳」のアプリなどとやれることは基本的に同じです。
(viの方が色々できて高機能だったりします)
その中でも、viに慣れていない人向けに、とりあえずテキスト編集してファイル更新をする方法をご紹介します!
2つのモードがある
viエディタはキーボードのみで操作するように作られており、マウスが使えません。
つまり、「メモ帳」などのアプリにあるような “保存” や “検索” といったボタンが存在せず、これらを気ボードで実行することになります。
このために、viエディタでは大きく以下の2つのモードがあります。
(厳密には他にもモードがありますが、慣れるまでは2つ覚えておけばOKです)
- ノーマルモード(コマンドモード)
- 編集モード(インサートモード)
ノーマルモード
viエディタを開いた最初の状態がノーマルモードです。(コマンドモード等いろんな呼び方されてます)
実際に Macのターミナルでテキストファイルをviで開いてみると以下のような感じになります。
このモードの状態ではファイルに文字を打ち込むことが出来ず、カーソルの移動や、任意のコマンドが実行可能です。
カーソル移動
キーボードのH,J,K,Lキー、もしくは矢印キーで移動できます。
Ctrlキーを押しながら移動することで数文字分まとめて移動することも出来ます。
※Macだと他のショートカットが優先されてしまいますが。
コマンドについて
ノーマルモードの状態でのみコマンドが実行できます。
このコマンドとは、”保存” や “ファイルを閉じる” 等の動作をいいます。
「メモ帳」であればマウスでクリックして済んだものを、viではコマンドで実行する必要があるんですね。
まずは “ファイルを閉じる” コマンドを覚えましょう。
コマンドの実行は基本的に ” :(コロン)” を打ってから、内容を打ち、最後にEnterで実行します。
“ファイルを閉じる” コマンド
:q
ファイルを閉じると、元いたターミナルの画面に戻ります。
ここで戻れない場合は、ファイルが更新され、内容が保存されていない状態のため、次のコマンドで保存してください。
“保存” コマンド
:w
もし保存しないで閉じたい場合は、保存コマンドは実行せず、次のコマンドを実行してファイルを閉じましょう。
“保存しないで閉じる” コマンド
:q!
viエディタに慣れるまでは、ひとまず上記3つのコマンドを覚えておけばファイル編集には困らないでしょう。
編集モード
vi で開いたファイルの内容を編集するためには、キーボードで ” I(アイ)”キーを押します。
これで編集モードになります。
実際に Mac のターミナルで編集モードにした画面が以下です。
赤枠で囲った左下の部分が “–INSERT–“となっている状態が編集モードです。
この状態で以下のように好きな文字を入力できます。
もちろん、コピー&ペーストも出来ます。
編集モードを抜けてノーマルモードに戻るには、キーボードの “esc(エスケープ)” キーを押します。
ノーマルモードで前述のコマンドを入力してEnterでファイルを閉じます。
コマンドは組み合わせることも出来て、ファイルを保存して閉じる場合は以下のコマンドで一挙に保存して閉じることが可能です。
:wq
まとめ
vi をあまり使ったことが無い人向けに、vi の初歩的な使い方を解説しました。
これからエンジニアになる人や、サーバー側もやり始めるような人などは、最低限これぐらいの内容は抑えておいた方が今後のためにもなると思います!
ぜひ実際に手を動かしてみて、vi へのニガテ意識を少しでも解消できれば何よりです!
おまけ
vi に少し慣れてくると、カーソルの移動が遅くて何か方法がないかググる事になると思います。
なので、ここで軽くカーソルの高速移動方法を何個かご紹介しておきます。
※これらの方法はノーマルモードを前提とした方法のため、編集モードの場合はescで抜けてください。
単語の末尾へ
e
行頭へ
^
行末尾へ
$
段落の移動
{ ←段落の先頭へ
} ←段落の末尾へ
コメント