この記事では、使い方も交え、テキストエディタ「Vim」の特徴を解説します。
こんにちは!インストラクターの井上です。
ViおよびVimというテキストエディタ、聞いたことはあっても
そもそもVim必要??
と手を出さなかった人も多いのでは無いでしょうか?
実際、かなり特殊なテキストエディタなので、色々な事を覚えないといけませんし、使い慣れるまでとても時間がかかります。しかし、高速にテキスト編集が出来るため、もう慣れれば他のテキストエディタを使うことが考えられなくなるでしょう。
今回はそんなVi/Vimの導入方法や、コマンドの使い方を、Vim歴5年の自分が徹底的に紹介していきます。是非この機会に導入して、高速に編集が行えるVim、使えるようになってみてください。
【こんな方に向けて書きました】
- 高速で編集を行いたい
- 自分にあったテキストエディタを探してる
- Vimは世界的に使用されているテキストエディタの拡張版
- Vimはコマンドで操作できるため作業を効率化できる
- Vimは動作が軽量でスムーズに操作できる
Vimとは/Viとは
Vim(ビム)とはVi(ブイアイ)という世界でも広く使われているテキストエディタの拡張版です。
そしてViとは、多くのWEBサーバとして広く使われている多くのLinuxOSに標準搭載されている、人気の玄人向けテキストエディタのひとつです。
ViおよびVimには根強いファンがおり、その使用者のことを一般にVimmer(ビマー)と呼びます。
Vimの特徴・メリット
Vimには愛されるテキストエディタとしての特徴があります。ここでは紹介しきれない様々な特徴がありますが、ここでは代表的なものを順に紹介していきます。
1.コマンドで操作が可能
コマンドを利用することで様々な操作を高速に実施することが可能になります。主なコマンドは後に紹介しますが、テキストエディタ上の移動・編集・ファイル操作などその殆どを独自のコマンドにて操作して行きます。
特に、「:10+コマンド」のように打ち込めば、その該当のコマンドの操作を10回分行ってくれます。このような使い方だけでもとても編集スピードが上がることが想像していただけるでしょう。
2.モードを切り替えて操作する
Vim(Vi)にはコマンドモードというもので操作を切り替える事ができ、これによりキーボードから手を離すこと無くほぼ全ての操作が可能になります。
文字の編集や加筆を行う「インサートモード」で文字を編集し、移動や編集コマンドを実行するときには「コマンドモード」に変更するといった具合です。もちろんこの「モード切り替え用のコマンド」もあります。
3.自由自在にカスタマイズが可能
特にVimにおいてはVimScriptというもので、Vimの拡張を自分で書いて表現することができます。
ただしものすごくマニアックな内容になるので、通常は他の人が書いてパッケージ化して配ってくれている「プラグイン」を使用します。
プラグインを導入することで、自分好みの操作方法を加えたりして、より早く・より使いやすくカスタマイズすることが可能です。
基本的な操作方法などを覚えたら、是非様々なプラグインを導入してみてください。特にエンジニアの方は各プログラミング言語での開発などをサポートしてくれるプラグインが沢山有るので、是非チェックしてカスタマイズしてみてください。
4.動作が軽量
Vimはとても高性能なエディタですが、その実ものすごく軽快に操作することが可能です。
カスタマイズによっては、特定の開発などに特化した統合開発環境、通称IDEに近い性能を発揮しますが、立ちあげスピードや操作は、EclipseやVisualStudioなどとは比べ物になりません。
サクッと立ち上がり、さっと操作ができる。その操作感に慣れている人にはIDEはとても鈍くさく感じてしまいます。
5.CUIでそのまま利用が可能
特にエンジニアの人にとって重要なのは、このCUIで操作ができるということです。CUIとはターミナルと呼ばれる黒い画面などで、「文字だけで全ての操作を行う環境」のことです。
エンジニアの人は自分のコンピュータ上でソースコードを書くだけでなく、他のコンピュータにインターネットを介してログインして、他のコンピュータ上で操作を行うことが度々あります。
このときそのコンピュータ上ですぐに使えるエディタとして、Linuxであれば大体Vimが入っているのでそのまま操作が可能です。
逆にViなどが使えないと、遠隔のコンピュータじょうで 操作・編集を行うための特別な設定が必要になってしまいます。
さて、ここまででVimの素晴らしさの一片が理解頂けたかと思いますので、実際にインストールを行い、実際にコマンドなどを体験してみましょう。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
Vimのダウンロード・インストール
各OS毎に若干準備方法が異なるため、簡単にダウンロードとインストール方法を記述していきます。
WindowsでVimを利用する
WindowsでVimを利用する場合、KaoriYa Vimが有名です。下記URLですぐに使えるVimのプログラムが配布されています。
URL:http://www.kaoriya.net/software/vim/
MacでVimを利用する
MacVimでもKaoriYa Vimの使い勝手を目指して開発されているものが有名です。
下記に導入に関する案内も記載されています。導入自体はとても簡単なので時間があればすぐに導入してしまいましょう。
URL:https://github.com/splhack/macvim-kaoriya
Linux/UnixでVimを利用する
Viはデフォルトでインストールされていることが多いですが、Vimは別途インストールする必要があります。
ソースコードをインストールして自身のPC上で組み立てる(コンパイルする)場合もありますが、簡潔にインストールできるyumなどのパッケージ管理ソフトを利用するほうが、慣れていない人には良いでしょう。
例えばyumというものを使っている場合は、
$ yum install vim
などでインストールを行って下さい。
パッケージ管理ソフトはデフォルトで利用しているものはLinuxOSによって異なるので注意して下さい。
それでは実際にVimを利用した時によく使うコマンドを30種類紹介していきます。それぞれ利用シーンや利用例も記載していきますので、確かめながら練習もしてみてください。
Viの使い方
KaoriYa Vim/MacVimの場合
AtomやSublimeTextなどのテキストエディタと同様、アプリケーションを立ち上げると利用可能です。実際のテキストの開き方なども変わりません。
ターミナルで利用する場合
Viはインストールして使用可能な状態になっていれば、
$ vi
というコマンドだけで起動することが可能です。
特定のファイルを開きたい場合、開きたいファイルの名前を指定して、
$ vi test.txt
というように編集することが可能です。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
ファイル操作系Viコマンド
実際にコマンドによる操作の方法を見ていきましょう。
まずはじめに覚えるべきは「ファイル操作系のViコマンド」です。Vim(Vi)は終了の仕方も特殊なテキストエディタなので、「間違えてViで開いてしまったけど閉じ方が分からない!」なんて話もよく聞きます。
そこで、はじめに次の5つのコマンドを覚えましょう。
「保存のコマンド :w」
コマンドモード(開いたばかりの状態)のときに、このコマンドを実施することで保存することが出来ます。
“vi”というコマンドのみでファイル名を指定せずに新しいファイルを開いた場合は、
:w new_file_name.txt
というようにすることでnew_file_name.txtという名前のファイルとして保存することも可能です。
「強制保存のコマンド :w!」
ファイルによっては「読み込み専用」であったり、「他の人が開いている状態」であったりして、その場で警告が出て保存できない場合があります。それでも保存したい!という場合は、ビックリマークを付けて強制的に保存することも可能です。
「Viを閉じるコマンド :q」
特に編集をせずに、開いたViを閉じる場合は、 :q のコマンドを実行することで、テキストエディタを終了することが可能です。
「Viを強制的に閉じるコマンド :q!」
編集後に:qコマンドを実施しても、その編集が破棄されるという警告が出てそのままでは閉じることが出来ません。それでもViを閉じたい場合には、 :q!のコマンドを実施して強制的に閉じましょう。
「保存してからViを閉じるコマンド :wq」
:w と :q を組み合わせたコマンドです。編集内容を保存した上でViを閉じることが可能です。
「保存してからViを強制的に閉じるコマンド :wq!」
:w! と :q! を組み合わせたコマンドです。編集内容を強制的に保存した上でViを閉じることが可能です。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
モード変更系コマンド
Viの基本操作はモード変更が出来ないと行えません。まずは基本的な編集が行えるように次の5つのコマンドを覚えましょう。
「カーソル位置の次の文字から編集を開始する a」
コマンドモードの時に aを押すことで、現在カーソルのある位置の次の文字から編集を開始することが可能です。最もよく使うインサートモード変更用のコマンドのひとつです。
「インサートモードを抜けるキー Esc」
Escキーを押すことで、インサートモードを抜けて再びコマンドでの編集などが出来るようになります。
「カーソルがある場所から編集を開始する i」
コマンドモードの時にiを押すことで、現在カーソルのある場所から編集を開始することが可能です。最もよく使うインサートモード変更用のコマンドのひとつです。
「先頭から編集を開始する I」
コマンドモードの時にI(shift + i)を押すことで、現在カーソルのある行の先頭へ移動してから編集を開始することが可能です。
「下に行を挿入して編集を開始する o」
コマンドモードの時にoを押すことで、現在カーソルのある行の下に1行追加して追加した行から編集を開始することが可能です。
移動系コマンド
Viにおけるスムーズな操作を支えている一つの要因は、様々なカーソル移動用のコマンドが存在していることです、概ねはじめは次の10個のコマンドを抑えておけば、不便を感じることは無いでしょう。
「左へ移動する h」
コマンドモードのときカーソルを左へ移動します。
「下へ移動する j」
コマンドモードのときカーソルを下へ移動します。
「上へ移動する k」
コマンドモードのときカーソルを上へ移動します。
「右へ移動する l」
コマンドモードのときカーソルを右へ移動します。
「先頭行へ移動する gg」
コマンドモードのときファイルの一番上の行へ移動します。
「最終行へ移動する G」
コマンドモードのときファイルの一番下の行へ移動します。
「行末尾へ移動する $」
カーソルを行の最後に移動します。
「行先頭へ移動する 0」
カーソルを行の先頭に移動します。
「行の文字の開始位置へ移動する ^」
カーソルを行の最初の文字に移動します。
「次の単語へ移動する w」
カーソルを次の単語に移動します。
編集系コマンド
特に数字と組み合わせると便利な編集系コマンドも覚えておきましょう。次の5つのコマンドを知るだけで、とても操作感が上がります。
「カーソル行をコピーする yy」
カーソルのある行をコピーします。
「カーソル行を削除する dd」
カーソルのある行を削除してコピーします。
「カーソル位置から後ろを削除する D」
カーソルがある位置から、後ろの部分を削除してコピーします。
「カーソル位置の後ろにペーストする p」
カーソルが有る位置の後ろにコピーしている内容を貼り付けます。
「カーソル位置にペースろする P」
カーソルが有る位置にコピーしている内容を貼り付けます。
検索系コマンド
「検索を行う /」
スラッシュの後に検索したい言葉を、
/検索したい言葉
のように入れることでその言葉がテキストエディタ内に存在するのか、どこにあるのかを検索することが出来ます。非常によく使うコマンドのひとつです。
「該当の単語を検索する #」
カーソルがある位置にある「単語」を検索することが出来ます。素早く検索が開始できる少し便利なコマンドです。
「検索結果を順にたどる n」
検索中に検索対象を次へ、次へ、とたどっていく事ができます。
「検索結果を逆順にたどる N」
検索中にnとは逆に前へ、前へ、とたどっていくことができます。
置換コマンド
少し指定方法が特殊で少し難しいですが、とても便利なコマンドなので是非覚えておきましょう。
「文字列をを別の文字列に置き換える :s」
検索範囲を指定して、検索後、該当の文字列を置き換えるためのコマンドです。以下のように記述することで、テキストエディタ全体から特定の文字列を全て置き換えることが可能です。
:s/置換したい文字/置換後の文字/g
またオプションを指定することで細かなルールを追記できます。例えば下記のように記述することで、
:s10,20/置換したい文字/置換後の文字/gc
10,20 => 10行目から20行目の間で、
g => 指定文字が1行に複数あっても全て対象として
c => 置換するか毎回チェックして実行
ということが可能になります。
まとめ
Vim/Viの使い方とコマンドについてまとめてきましたがいかがでしたか。
様々なコマンドが有りますが、この30個のコマンドが使えるだけでも、それなりにVimを利用する恩恵を得られるでしょう。Vimなどはテキストエディタとしてはとても学習コストの高いエディタです。
ただ、テキストエディタはエンジニアなど常にPCでコードを書いたりする人にとっては仕事道具です。生産性を向上させるためにもこだわってみてはいかがでしょうか?
関連記事