Vim
Vi IMproved
Vim は1991年、ブラム・ムーリナー(Bram Moolenaar)によって開発・公開されたフリーのテキストエディタです。Unix系OS のテキストエディタとしては GNU Emacs と並んで有名な存在である Vi(VIsual editor:ビル・ジョイ,1976年)の進化形に位置付けられるもので、MacOS にはデフォルトでインストールされています。
ターミナルから起動する CUI ベースのツールです。
- 公式サイト:https://www.vim.org/
はじめに
前提
この記事は、MacOS ユーザーの方を対象としています。ある意味ではマニアックなツールなのですが、40以上、変わらず使い続けられているサスティナブルなエディタです。限定されたシステム環境下でも動作するので、その存在を知っておいて損はありません。災害時には、原始的な技術の方が役に立つ・・というのと同じです。以下、前提です。
- ターミナルから起動するCUIベースのソフトウエアです。したがって、アプリケーションフォルダの中を探しても見つかりません。
- CUIツールなので、基本的にすべてキーボードだけで操作します。ターミナルウインドウ内での操作という意味でのマウス操作も可能ですが、マウス操作(ポイントする操作)は片手がキーボードがから離れる点で、効率が悪くもあります。全ての操作をキーボードで行うという仕様が生産性を向上させることもあって、このツールのインターフェイスは、そこにフォーカスしたデザインになっています。
- 通常のソフトにあるようなウインドウはなく、メニューもありません。
- テキストエディタです。できるのは文字列の編集だけです。
- AtomのようなGUIツールではないので、一般のユーザーには違和感があると思いますが、IT系の人には著名なツールで、慣れると非常に使いやすく、現在も多くのファンが存在します。
- T-shirt https://www.freewear.org/?org=Vim
- Vimグッズ https://suzuri.jp/kmdsbng
起動
- MacOSメニュー>移動>ユーティリティー>ターミナル
- プロンプトから、vi または vim コマンドを打つと起動します。
$ vim
- 以下のように起動時に新規ファイル名を指定
$ vim [ 新規に作成するファイル名 ]
参考
Atom に Vim Mode Plus というパッケージを導入すると、Vimのキー操作がAtom で使えるようになります。Atom を常用している方で、Vim も使える人になりたい場合は、Vim-Mode-Plus の導入を検討してみてください。
モードの理解
Vim を使うには、はじめに「モード」を理解する必要があります。編集操作を行うノーマルモード と 文字を入力するインサートモード の使い分けが基本で、加えて、コマンドモードとビジュアルモードが存在します。
みなさんが普段使っているエディタは文字入力と編集が同時にできるので、このモード切り替えというのは非常に面倒に感じると思いますが・・。
ノーマルモード
操作:[ESC]キーを押す
vimの起動時はこのモードです。 カーソルの移動や、行のコピー、ペースト(貼り付け)、削除や 他のモードへの移行を行う事が出来ます。
インサートモード
モード移動: [ i / I ] [ a / A ] in Normal Mode
文字列を書き込む事ができるモードです。インサートモードでは、ウィンドウ左下に -- INSERT --( -- 挿入 -- )と表示されています。
コマンドモード
モード移動:[ : ] [ / ] in Normal Mode
ファイルの保存等のコマンドや置換え、 検索を実行する事が出来るモードです。マンドモードでは、ウィンドウ左下にカーソルが移り、コマンドを入力できます。右図は、ファイルの保存操作。
- [ : ]:コマンドライン
- [ / ]:検索
- n 順方向に次の検索結果へジャンプする
- N 逆方向に前の検索結果へジャンプする
ビジュアルモード
モード移動:[ v ] [ V ] [ Ctrl+v ] in Normal Mode
カーソルを移動する事によって文字が反転し選択する事ができます。GUIツールではわざわざ切り替える必要がありませんが、キーボードしか使わない前提だと、こういうモードが必要になるのです。ビジュアルモードでは、ウィンドウ左下に -- VISUAL -- ( -- ビジュアル -- )と表示されます。
キー操作
起動
- $ vi または vim
- $ vi [ファイル名]:ファイル名指定で新規作成
ノーマルモードへ移動
- [ ESC ] 重要:状況がわからなくなったらとにかく [ ESC ]
カーソル移動|ノーマルモード
- h:左
- j:下
- k:上
- l:右
編集操作|ノーマルモード
- [ u ] ndo
- ctrl + [ r ] edo
- x:カット(削除)
- yy:一行コピー(2yy:2行コピー)
- p:ペースト
- dd:一行カット(2dd:2行カット)
検索|ノーマルモード> [ / ]
- /[ 検索文字列 ]
- n 順方向に次の検索結果へジャンプする
- N 逆方向に前の検索結果へジャンプする
コマンド|ノーマルモード> [ : ]
- :e [ ファイル名 ] :ファイルを開く
- :w:上書き保存
- :w [ ファイル名 ] :ファイル名を指定して保存
- :wq:保存して終了
- :q:終了
- :q!:強制終了
- :set number:行番号表示
- :set nonumber:行番号非表示
- :syntax on:コードに色付け
- :syntax off:色付け解除
- :sp:画面を上下に分割
- :vs:画面を左右に分割
- Ctrl + w + w:分割された画面間の移動
- :close:画面を閉じる
- :help:ヘルプ