最近vimいっぱいいじったので、設定おぼえがきと、text-objectに関してまとめ

vim大好き、といいつつ特別プラグイン導入してたわけでもないし、自分でvim-script書いたり
するわけでもなかったのですが

脱・vim初心者になりたいなー・・・と思って、設定とか色々見直しました。

自分でプラグイン書いたりとか、そういうのは全然できないですが(というより現状必要
だと感じもしませんが)様々なvimmerの方の設定やら、プラグインやらを拝借して、
なんだかんだで、以前と比べ物にならないくらい便利になったので紹介します。

自分でも一気にいじりすぎて、それぞれの機能を全然使いこなせてないし、覚書ついでに書きます。

とりあえずvimrc公開

なんか便利そうだからとりあえず入れた、っていうプラグインもあるけど
使ってないまま放置してます。(おい)

vim本体の設定

「set *****…」というタイプの設定は、大体コメント書いてあるので割愛。

僕はこのブログをmarkdownで記述していて、vimでそれを書いているのですが
拡張子がmdのファイルはデフォルトだとmodula2のfiletypeが設定されてしまうので
そこをmarkdownに変更しています。

以降は、オートコンプリートの設定です。
autocmd Filetype hogehoge xxxxxx
これでFiletypeがhogehogeのときxxxxを実行、という感じです。

インサートモードから抜けるときにEscキーが遠いなーと思ったので

これでセミコロン2回でEscキーを押したことにしてます。


以降はプラグインのための設定

vim-powerlineのための設定

個人的にはデフォルトでも十分にかっこいいし、使えるのですがpowerline導入してる人は
だいたい、この設定してるのでやってみました。

fontforgeというソフトを使って、専用のフォントを作成しないとこの設定は使えません。

ちょっと面倒だったけど、確かにかっこよくなっし、行番号、列番号やモードの表示は
使ってみると、本当に便利です。

こんな感じになります。

Screen Shot 2013-07-18 at 22.59.21

opwn-browserの設定

このプラグインは編集しているソースコードやテキスト内のURLをコマンドで開いてくれたり、
キーワードをgoogle検索してくれたりします。

テキストを選択してgxを押すと、デフォルトのブラウザで選択されたテキストがURLなら
直接URLへアクセス、URLでなければgoogle検索してくれます。

Unite.vimの設定

長いので、コメントに書き足します。よく使うやつだけ

Unite grepでは外部grepを使うので、vimgrepより高速です。僕が設定していないだけなんだろうけど
vimgrep+Quickfixのほうが見やすい、という事も多いので、

  • 大量のソースコードから検索したいときはUnite grep(ag)
  • ちょっとしたモジュール、プロジェクト内ならvimgrep

という感じで使い分けてます。

easy-motionの設定

ここは書いてある通り。 space + e押してから k か j 押すと、各行がインデックスされ
一発でジャンプできるようになります。これは使うまでナメてた。本当に便利。

Screen Shot 2013-07-19 at 12.31.51

Vundleで管理してるプラグインいろいろ

使ってないのも結構まじってるけど・・・colorschemeは省略してます

上記で挙げてないもので、特別便利なやつだけちょっと紹介

●NERD-tree

ファイラーといえばいいんですかね。指定したディレクトリのファイル構造を開いて
クリックとかEnterとかで開けるようにしてくれる

こんな感じ

Screen Shot 2013-07-19 at 12.32.56

●vimshell.vim

vimからシェルを叩けるコマンド。僕は主にログ監視とかしたいときにはじっこで起動して使ってます。

●Gitv

これ便利すぎてびびる。vimからgitのpush,pullしたり、diffやログの確認などなど。
git周りはなんでもこれで完結

●vim-quickrun

ド定番プラグイン。書いてるプログラムを:QuickRunコマンドだけで実行してくれる。
ただc++書いてたときはSegmentation Errorが表示されなくて、ちょっとだけ困った。
色々な言語に対応してるし、サクっと確認したいときにはすごく便利です。

●Gist.vim

vimで開いているファイルを、ダイレクトにgistに投稿するプラグイン。
使うかなー、と思って入れたけど、実際いれたらちょっとしたメモはすぐにgistにアップロードするようになった

●dash.vim

MacOSXで動作する、オフラインでも様々なリファレンスを参照できるDashというアプリケーションに対して
vimのコマンドから関数などを検索できて、一発表示できるプラグイン。Dash使ってるvimmerは必見

●previm

僕はmarkdownをリアルタイムにブラウザで確認するために使ってますが、javascriptで色々拡張できるらしい。

●vim-json

jsonを扱うときに、色分けしたり、結構見やすくしてくれる。jsonをよくいじる人は入れたほうがいいかも。


割と最近になって使うようになったコマンド(pluginのコマンド以外で)

●カーソル移動に w e b _

基本的にhjklばかりでしたが、だんだん遅くてイライラしてきたので、なんとなくこっちの頻度が増えました。
easy-motionと組み合わせると、あっという間に目的地に辿り着ける

●数字押してからインサートモードに入って、なにか入力して、ESC

例えば30と入力してからiとかuでインサートモードに入って、「-」をタイピングして、ESCを押します。
すると、「-」が30個挿入されます。
コメントアウトで、いい感じに線を引きたいときとか、ブロッキングしたいときなんかに使ってます。

●最後に編集した場所に戻る g;

色々ソースコード見渡した後で、前にいじってたところに戻りたい、なんてときに使います。

●タグジャンプのための Ctrl+t Ctrl+]

ctagsコマンドと併用しないと、利用できないのでIDEに比べると手間ですが、あると便利です。(カレントディレクトリの.ctagsを作成
するだけなら:!ctags -RでOK)※変数や関数の定義元にジャンプしたりするあれです。
http://qiita.com/soramugi/items/7014c866b705e2cd0b95がとても
参考になりました。
よく使うプロジェクトやディレクトリは.ctagファイルを作成しておいて損はないと思います。

●ヘルプの参照に :help [コマンド]

そのまんまです。プラグイン入れたときとか、コマンドの詳細をど忘れしたときなんかに。
基本的にコマンド自体を覚えてる前提なので、用途別に逆引きとかもあったらいいですけどね。

これ以外だとvimgrepとargsが慣れてきたかなー、という感じです。


text-objectに関して

ずっと見て見ないフリをしてきたんですが、便利そうなのでこれを期にまとめてみましたー。

とりあえず:help text-object@jaすると、日本語のtext-objectに関するヘルプが読めます。
読めばすぐ使えるようになるかなー、とか思ってたら結構充実してて、覚えるの大変そうでした・・・。

ざっくり概要

  1. viにはない機能
  2. (動作) + (a or i) + (対象箇所) というコマンド構成が基本
●(a or i)について
  • [a]は[a 対象箇所] ->対象箇所全体を (動作) する
  • [i]は[inner 対象箇所] ->対象箇所の中身を (動作)する
●対象箇所について
  • w : word
  • W : WORD
  • s : sentence
  • p : paragraph
  • t : tag
  • [ or ]: []block
  • { or } : {}block
  • ( or ) or b : ()block ()
  • < or > : <>block
  • ‘ or ” : “” or ” block

ちゃんと読んだら、結構シンプルですね。

●使い方サンプル

公式ヘルプにあったサンプル

あと簡単なやつ


こんな感じですね。我ながら結構一気にvim力あがった感あります・・・w
脱初心者できたかな・・・?でも中級者はまだまだ・・・って感じです。


初心者ながらアドバイス

とりあえずvim触ってみたいって人が、いろんなvimmerの方が入れてるプラグインを片っ端からいれて
使いこなせずにvim使わなくなっちゃう、っていうパターンが僕の周りでは多いです。

僕の場合、今思えばラッキーで

  1. 強制的にvimを使わないといけない環境になる
  2. とりあえずサーバ管理するときには使うようになる(mode切り替えが違和感なく行える)
  3. コーディングとかでも不自由なく使えるようになってくる(テキスト編集が効率的に行えるようになってくる)
  4. ここでようやくプラグインに関心を持つ
  5. 長ったらしいコマンドはキーバインド設定すればいいかな、って思うようになる

という流れでのめり込んでいきました。

プラグインを導入したほうが便利なのは間違いないのですが、まずは基本的なキーバインドに
慣れて、vim独特のテキスト編集に慣れることをおすすめしたいです
(ここまで来て、vimが自分に合うかどうか判断できると思う)

更に便利にしたい場合はプラグイン入れるといいかなー、と。

結局は全ての操作がコマンドなので、プラグイン入れれば入れるほど
覚えることは増えていきます。


課題

  1. NeoBundleへの以降
  2. Unite.vimのカスタマイズ
  3. オリジナルカラースキーマの作成
  4. キーバインドを増やす&見直す

上記の課題のいずれかがクリアできたら、また記事書きたいです。

最近vimいっぱいいじったので、設定おぼえがきと、text-objectに関してまとめ」への1件のフィードバック

  1. ピンバック: [SLab.]Webサイト制作者の皆さん!もう何も怖くない!Vimはいい子です!|Saison Lab.〜さいそんラボ〜

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です