Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim幼稚園児が小学生になるために

$
0
0

はじめに

こちらは東京理科大学 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カーソルが画面中央になるように画面スクロール
/hogehogeを下向きに検索し、そこに移動
?hogehogeを上向きに検索し、そこに移動

以前の記事では最も基本的な十字移動などを中心に紹介しましたが、より高速に移動することができるようになりました。

検索については以下で説明します!

検索してみる

さて、検索とは読んで字のごとく特定の文字列を検索できることですね。
例えば、/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と打ってみました。

:set hls

するとファイル内の"vimtutor"がすべてハイライトされたのがわかります!これで文章がとても見やすくなりました。

続いて:set icを打ってみると、

:set noic

ハイライト表示されていない## Vimtutorが、

:set ic

ハイライト表示されるようになりましたね!
ハイライト表示を消すためには:set nohlsでOK。
最後にCtrl-oでもともといた位置に戻って完璧ですね!

置換してみる

コマンド意味
:s/old/new/g現在行のoldを全てnewに置換する
:n,Ns/old/new/gn行目からN行目までのoldを全てnewに置換する
:%s/old/new/gファイル全体のoldをnewに置換する

これも実際にやってみるのが一番だと思います。
変更前に一つ一つ確認する方法などもあるので調べてみてください。

モード切り替え

以前の記事ではNORMALモードとINSERTモードを紹介しました。
Vimには加えてREPLACEモードとVISUALモードがあります。簡単にまとめてみました。

モードコマンド意味
NORMAL MODEescコマンド入力待ち
INSERT MODEi,aなど文章入力待ち
REPLACE MODECtrl-R文章を上書き
VISUAL MODEvカーソル移動で選択範囲を強調表示

上の二つは問題ないですね。REPLASEモードはほとんどINSARTモードと同じですが、後続の文章を削除しながら、そこに新たに入力した文章を上書きしていきます。
VISUALモードは、これを用いることで以前の記事で紹介したy(ヤンク)や、d(削除してヤンク)などを効率的にすることができます。ぜひ積極的に使ってみましょう!

色々やってみる

コマンド意味
:w FILENAMEFILENAMEとしてVIMFILEを保存
:'<,'>w FILENAMEVISUALMODEで選択した範囲をFILENAMEとして保存
:r FILENAMEFILENAMEを取り込む
:!lsディレクトリ一覧の表示
:r !lslsコマンドの出力を取り込む

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内でもたくさん記事を書いてくださっています。
再度そちらの記事を読んで明日を待つこととしましょう!


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>