はじめに
こちらは東京理科大学 Advent Calender 2016の17日目の記事です。
Advent Calender内の記事で申し訳ありませんが、この記事は新米エンジニアのVim入門の続きでもあります。
もしVimを始めてみようかな、でもよくわかってないんだよな。という方は是非こちらの記事から先に読んでいただけると嬉しく思います!
対象読者
Vimを使ってみようと思っている新米エンジニアの皆さん向けです。というかそれ僕です。
説明過多な部分もあると思いますがお許しを。Vimmerの皆さんは間違いなどあれば是非ご指摘ください!
Vimtutor
Vimにはチュートリアルがあります!ターミナルの画面で
vimtutor
と打ってみてください。起動しないみなさんはGoogle先生へ。おそらく参考になる記事があります。
vimtutorの参考にVim初心者向け:Vimの使い方が分かるコマンド - "vimtutor"を紹介させていただきます。
とっても練習になったのでぜひ皆さんもvimtutorをやってみることをオススメします。今回の記事はvimtutorをやって身につく範囲までの概略のような記事です。
もっと移動してみる
Vimに限らずかもしれませんが、何より実際に手を動かすのが大切だと思います。Vimを開いて実際に手を動かしてみてください!ちなみに、この記事もVimを使って書いてみました。
それではやってみましょう!
コマンド | 意味 |
---|---|
gg | ファイルの最先頭に移動 |
G | ファイルの最後尾に移動 |
% | 対応する(,),[,],{,}に移動 |
Ctrl-d | 半画面下に移動 |
Ctrl-u | 半画面上に移動 |
zz | カーソルが画面中央になるように画面スクロール |
/hoge | hogeを下向きに検索し、そこに移動 |
?hoge | hogeを上向きに検索し、そこに移動 |
以前の記事では最も基本的な十字移動などを中心に紹介しましたが、より高速に移動することができるようになりました。
検索については以下で説明します!
検索してみる
さて、検索とは読んで字のごとく特定の文字列を検索できることですね。
例えば、/hoge
と検索するとファイル内にあるhogeという文字列を検索してくれるわけです。
また、ファイル内に同一文字列が複数個ある場合、n
をタイプすることで一つ後方の検索結果に移動してくれます。N
では一つ前方の検索結果に移動してくれます。
さらにここにはオプションがを設定することができます!
コマンド | 意味 |
---|---|
:set ic | 文字列の大文字/小文字を無視 |
:set noic | :set ic を無効化 |
:set hls | 検索結果の文字列を全てハイライト |
:set nohls | :set hls を無効化 |
:set is | 検索した文字列に部分マッチする文字列を表示 |
:set nois | :set is を無効化 |
n | 一つ次の検索結果に移動 |
N | 一つ前の検索結果に移動 |
Ctrl-o | 検索を行う前にいた場所に移動 |
これではいまいちピンとこないと思います。
それでは、"vimtutor"という文字列を検索してみるとしましょう。ここでは/vimtutor
あるいは?vimtutor
と打てばよいですね。
次に:set hls
と打ってみました。
するとファイル内の"vimtutor"がすべてハイライトされたのがわかります!これで文章がとても見やすくなりました。
続いて:set ic
を打ってみると、
ハイライト表示されていない## Vimtutor
が、
ハイライト表示されるようになりましたね!
ハイライト表示を消すためには:set nohls
でOK。
最後にCtrl-o
でもともといた位置に戻って完璧ですね!
置換してみる
コマンド | 意味 |
---|---|
:s/old/new/g | 現在行のoldを全てnewに置換する |
:n,Ns/old/new/g | n行目からN行目までのoldを全てnewに置換する |
:%s/old/new/g | ファイル全体のoldをnewに置換する |
これも実際にやってみるのが一番だと思います。
変更前に一つ一つ確認する方法などもあるので調べてみてください。
モード切り替え
以前の記事ではNORMALモードとINSERTモードを紹介しました。
Vimには加えてREPLACEモードとVISUALモードがあります。簡単にまとめてみました。
モード | コマンド | 意味 |
---|---|---|
NORMAL MODE | esc | コマンド入力待ち |
INSERT MODE | i ,a など | 文章入力待ち |
REPLACE MODE | Ctrl-R | 文章を上書き |
VISUAL MODE | v | カーソル移動で選択範囲を強調表示 |
上の二つは問題ないですね。REPLASEモードはほとんどINSARTモードと同じですが、後続の文章を削除しながら、そこに新たに入力した文章を上書きしていきます。
VISUALモードは、これを用いることで以前の記事で紹介したy
(ヤンク)や、d
(削除してヤンク)などを効率的にすることができます。ぜひ積極的に使ってみましょう!
色々やってみる
コマンド | 意味 |
---|---|
:w FILENAME | FILENAMEとしてVIMFILEを保存 |
:'<,'>w FILENAME | VISUALMODEで選択した範囲をFILENAMEとして保存 |
:r FILENAME | FILENAMEを取り込む |
:!ls | ディレクトリ一覧の表示 |
:r !ls | lsコマンドの出力を取り込む |
NORMALモードで使えるコマンドをいくつか上に一覧にしてみました。
これらは特に実際にやっていただくのが一番分りやすいと思います。ここではあえて多くを説明しないので、ぜひトライしてください!
ここでは2つだけ説明を。
1つ目は、:'<,'>w FILENAME
について。VISUALモードで範囲を選択してから:
を押すと、同時に'<,'>
が現れます。が、これは消さずに続けてw FILENAME
と入力しましょう!
VISUAL選択した範囲のみをFILENAMEとして保存することができます。
2つ目は、:!
について。:
でコマンド入力待ちにした後に!
をつけることで、外部シェルコマンドを実行することができます。例えば、
:w TEST
で現在編集中のファイルを作成した後、作成できたかは
:!ls
で確認することができますね。また、間違っていらないファイルを作ってしまったときなどは
:!rm -rf TEST
で作成したファイルを削除することができるでしょう。
終わりに
ここまででVimtutorで得られる知識はある程度網羅できるかと思います。しかし、端折った部分があること、何よりも実践が大切であることから是非一度Vimtutorをやってみて欲しいです。
本当は.vimrcファイルについても触れたかったのですが、記事も冗長になってしまいそうですので次の記事に回そうと思います。
それから、以前の記事ではatomにvim-mode-plusを入れてVimらしく使っていましたが、多少使い心地が良くなかった気がしたので今はMacVimをインストールしてそちらを使っています。興味があれば調べてみてください。
それでは、長々とありがとうございました。次の記事はfujitoraさんが有馬記念一週間前なので競馬のデータ分析をしてくれるそうです。東京理科大学Advent Calender内でもたくさん記事を書いてくださっています。
再度そちらの記事を読んで明日を待つこととしましょう!