https://www.sejuku.net/blog/wp-content/themes/voice_child/images/samurai_logo.png 侍エンジニア塾が運営するプログラミング入門者向け学習情報サイト

【初心者必見】最強エディタVimの使い方/コマンド30種まとめ

井上 慎也
書いた人 井上 慎也


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!インストラクターの井上(@InoIno_iesa)です。

ViおよびVimというテキストエディタ、聞いたことはあっても「なんだか難しそう!」と手を出せなかった人も多いのでは無いでしょうか?

実際、かなり特殊なテキストエディタなので、色々な事を覚えないといけませんし、使い慣れるまでとても時間がかかります。

しかし、高速にテキスト編集が出来るため、もう慣れれば他のテキストエディタを使うことが考えられなくなるでしょう。

今回はそんなVi/Vimの導入方法や、コマンドの使い方を、Vim歴5年の自分が徹底的に紹介していきます。

是非この機会に導入して、高速に編集が行えるVim、使えるようになってみてください。

【体験談】あなたは大丈夫?学習効率をなめて痛い目をみた話

突然ですが、あなたは学習効率をなめていませんか?

まず、私が実際にやってしまったプログラミング学習の失敗体験を聞いてください。

どの言語学習にも当てはまる失敗パターンだった・・・

私は、ある程度の目的と目標を持ってJava言語の独学で勉強していました。
使ったものは、

  • 学習書籍
  • 無料学習サイト

この2つでした。

「Java」を勉強しようと思った理由は、Javaが一番有名でスタンダードだったからです。

しかし、なかなか学習が進まない中、恐ろしいことに気づきました。
そもそもJavaで何が作れるのかうまく把握していないことに気づいてしまったのです。

そこで、キャリアアドバイザーの友人や現役エンジニアの先輩に相談した結果、自分がやりたかった学習の方向性がかなりズレてしまっていたことを知りました。

自分がやりたかった方向性として、

そして学習の問題点として、

  • 書籍の流れ通りに学習することで全体像が把握できていなかった
  • 何を作る予定なのかが明確になかった
  • 将来どうなりたいのか軸がブレブレだった

以上がありました。

今回はJavaという例でしたが、どの言語にも当てはまるよくある挫折例なので注意しましょう。

▼キャリアコンサルタントと一緒にキャリアを考えよう(無料)

失敗体験から学んだ「学習する前」が最重要であること

先ほどは、がむしゃらな学習で失敗した体験談をお話してきました。ここからが重要です。

失敗から学んだ重要なことは、

  • 経験豊富な第三者に相談して、自分にない視点でキャリアを見直すこと
  • 目的・目標設定を必ずすること。必ずです。
  • 学習経験者と一緒に学習スケジュールを作ること

この3つでした。

もうお気づきかもしれませんが、全て「学習前にすること」ですよね。

失敗があるので断言できますが、学習前に勝負は決まってしまいます。
これから学習するみなさんは、十分注意してください!

▼キャリアコンサルタントと一緒にキャリアを考えよう(無料)

質の高い目的・目標設定でキャリアの広がりは100倍以上

あなたのプログラミング学習の目的はどんなものでしょうか?

この2つのうちどちらかである方は多いかもしれません。ですが、これでは抽象的すぎて今後何をすればいいのかが分からず、学習効率がかなり悪くなってしまいます。

今後の学習を効率的に進めるためにも、明確に将来どうなりたいのかを決めて、そこに向かって目標設定することで人生を切り開くきっかけになっていきます。

実際にプログラミングの挫折率9割という挫折率の高さを考えると、独学であれこれと参考書や学習サイトに手を出して結局身につかなかったということも少なくないのです。

まずは目的・目標設定を決め、学習する軸を決めて効率的な学習環境を整えましょう。

▼キャリアコンサルタントと一緒にキャリアを考えよう(無料)

Vimとは/Viとは

スクリーンショット 2016-06-02 21.25.00

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の素晴らしさの一片が理解頂けたかと思いますので、実際にインストールを行い、実際にコマンドなどを体験してみましょう。

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というものを使っている場合は、

などでインストールを行って下さい。

パッケージ管理ソフトはデフォルトで利用しているものはLinuxOSによって異なるので注意して下さい。

それでは実際にVimを利用した時によく使うコマンドを30種類紹介していきます。

それぞれ利用シーンや利用例も記載していきますので、確かめながら練習もしてみてください。

Viの使い方

KaoriYa Vim/MacVimの場合

AtomやSublimeTextなどのテキストエディタと同様、アプリケーションを立ち上げると利用可能です。

実際のテキストの開き方なども変わりません。

ターミナルで利用する場合

Viはインストールして使用可能な状態になっていれば、

というコマンドだけで起動することが可能です。

特定のファイルを開きたい場合、開きたいファイルの名前を指定して、

というように編集することが可能です。

ファイル操作系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を閉じることが可能です。

モード変更系コマンド

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でコードを書いたりする人にとっては仕事道具です。

生産性を向上させるためにもこだわってみてはいかがでしょうか?

関連記事


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

井上 慎也

井上 慎也

侍エンジニア塾のインストラクター。フリーでWEB制作の受託や自身の事業の傍ら、侍ではWEBプログラミング方法の指導やプログラミング学習コミュニティの運用を行っている。
好きなショートカットキーは、command + w 。愛機はMac Book Pro。ブラウザのタブを大量に開きがち。