こんにちわ!
Linux系のOSで避けては通れないviエディタ。
今回は、viエディタについて解説いたします。
『viエディタのモードって何?』
『viのモード切替ができない!』
『viのカーソルすら動かない!』
こんな疑問に答えます。
【viのモード切替】コマンドモード⇔ノーマルモード⇔入力モード
viエディタには操作するモードという概念があります。
主なモードはノーマルモード・コマンドモード・入力モードの3つです。
【viのモード切替】ノーマルモード⇔入力モード
iキーとESCキーを押下することでモード切替【ノーマルモード⇔入力モード】を行います。
- 入力モード iキー
INSERT(またはINPUT)のiキーと覚えよう! - ノーマルモード ESCキー
【viのモード切替】ノーマルモード⇔コマンドモード
:キーとESCキーを押下することでモード切替【ノーマルモード⇔コマンドモード】を行います。
- コマンドモード :キー
- ノーマルモード ESCキー
【viのモード切替】キーボード入力~ファイルを保存まで
viでキーボード入力してファイルを保存するまでの主な流れです。
- iキーで入力モード
- キーボード入力
- ESCキーでノーマルモード
- :キーでコマンドモード
- wキーとEnterでファイルを保存(writeの頭文字でwキーと覚えよう)
- ESCキーでノーマルモード
ちなみに…
ノーマルモードのカーソル移動はこちら。
- 下にカーソルが移動…「j」キー
- 上にカーソルが移動…「k」キー
- 右にカーソルが移動…「l」キー
- 左にカーソルが移動…「h」キー
慣れてきたら右「l」と左「h」のカーソル移動はあまり使わなくなります。
(ノーマルモードの詳細は別の記事で書く予定)
【viのモード切替】ファイルを開いてから閉じるまで
viでファイルを開いてからファイルを閉じるまでの主な流れです。
(キーボード入力やファイルの保存は前章をご参照)
- vi コマンドでファイルを開く(もしくは新規作成)
- iキーで入力モード
- ESCキーでノーマルモード
- :キーでコマンドモード
- qキーとEnterでファイルを閉じる(quitの頭文字でqキーと覚えよう)
viのビジュアルモードと切替(ノーマル・ライン・ブロック)
viのモードは、基本となるコマンドモード・入力モード意外にもビジュアルモードがあります。
このビジュアルモードはテキストを選択するモードです。
ビジュアルモードは次の3種類。
- ビジュアルモード…文字単位で選択[v]
- ビジュアルラインモード…行単位で選択[V]
- ビジュアルブロックモード…矩形で選択[Ctrl-v] Windowsでは[Ctrl-q]
ビジュアルモードは使い道・使い方は?
ビジュアルモードはコピペで良く使います。
ビジュアルモードでテキスト選択したものをコピーして、別の所にペーストしたりです。
3種類のビジュアルモードで実際に選択するイメージをそれぞれ見てみましょう。
vimエディタとviエディタの関係
厳密にいうと、ビジュアルモードはviにはありません。
ビジュアルモードはviから派生したエディタであるvimに搭載されています。
基本的には今のLinuxはvimとなっている印象です。
viで起動してもailiasとしてvimが設定されており、実際に起動しているのはvimということも多いかと思います。
もっというと…
VimはCUIで動作しますが、GUIで動くVimをGvimと呼んでます。
viのモード切替が存在する理由【CUIとGUI】
モードなんて無い方がシンプルですよね。
そもそも、なぜviにモードがあるのでしょうか?
viに2つのモード(入力モードとコマンドモード)がある理由は…
viはCUI(キャラクタユーザインタフェース)のエディタだからです。
CUIとは
CUIはキャラクタユーザインタフェースと呼ばれ、エディタの見た目が文字ベースとなっています。
そして、viはCUIです。
CUIであるviは文字ベースの見た目のため、
文字を入力するモードと命令を実行するモードを分けないと操作がややこしくなる
という理由で、コマンドモードと入力モードを切替ながら作業します。
GUIとは
CUIに対して、GUIと呼ばれるグラフィカルユーザーインターフェースがあります。
GUIとは、ユーザが画面上で視覚的に捉えて行動を指定できるインタフェースのことです。
WindowsやMacのエディタは基本的にはGUIです。
WindowsやMacでエディタが立ち上がると…
ウィンドウとして表示されてマウスでドラッグや☓ボタンで閉じたりできますよね。
それは、GUIだからできる技なのです。
CUIは文字によるコマンド入力方式のインターフェースなので、ドラッグはもちろんの事、閉じたり保存したりもコマンドを入力が必要です。
viはコマンド入力モードと文字入力モードの2つで操作を切り替えているのです。
そういうことね
コマンド入力モードでは、ファイルの保存やカーソルの移動・文字のコピーペーストなどを行います。
入力モードでは、エディタに文字を入力します。
一昔前のパソコンがCUIでしたが、Windowsで一気にGUIが広まりました。
現在のパソコンのインターフェースは、ほとんどGUIを採用しています。
サーバはGUIである必要はないのでCUIであるviを使うことも多いです。
viのモード切替!まとめ
いかがでしたでしょうか?
viのモード切替について解説いたしました。
振り返ってみましょう!
- 入力モード iキー
- ノーマルモード ESCキー
- コマンドモード :キー
- ノーマルモード ESCキー
- ビジュアルモード…文字単位で選択[v]
- ビジュアルラインモード…行単位で選択[V]
- ビジュアルブロックモード…矩形で選択[Ctrl-v] Windowsでは[Ctrl-q]
ビジュアルモードはコピペで良く使う。
- iキーで入力モード
- キーボード入力
- ESCキーでノーマルモード
- :キーでコマンドモード
- wキーとEnterでファイルを保存
- ESCキーでノーマルモード
- vi コマンドでファイルを開く(もしくは新規作成)
- iキーで入力モード
- ESCキーでノーマルモード
- :キーでコマンドモード
- qキーでファイルを閉じる
最後に…
エディターは作業効率にかなり影響する部分です。
私がviエディタを初めて触ったときは
『なんじゃこりゃ』
使いにくいってレベルじゃありませんでした(笑)
でも、使っていくうちにviエディタの打ちやすさに目覚めて行きます。
慣れてくると『viじゃなきゃダメ』ってなるかも。
viに慣れすぎて…
メーラでカーソル移動を使用とすると「jjj」となることも(笑)
(ここまで来るとvi使い)
一緒に頑張りましょー
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級
ノーマルモードのカーソル上移動のキーの記述がhになってます。
ご指摘ありがとうございます!!
修正いたしました。