vimの使い方見直し

vimの復習
奇しくもvimconf当日(狙ったわけではない)

定期的に使い方は見直しているのだけど、繰り返さないと忘れたりして元の習慣に戻ってしまうので、
見直したいもの一旦整理

正規表現 

vim正規表現はややこしそうなので回避していたが、
vi使っているとき困ったので反省として(とはいっても自分はガッツリ正規表現する機会はあまりない。。)

# オプションの確認 (デフォルトはmagic)
:set magic?
/\(foo\|bar\)

# \v以降がvery magicとして扱われる (vary magicを使うとパターン検索が楽になる)
/\v(foo|bar)

nnoremap /  /\v

参考: Vimでパターン検索するなら知っておいたほうがいいこと
http://deris.hatenablog.jp/entry/2013/05/15/024932

ctrlSF

sublimeライクのgrep機能。

https://github.com/dyng/ctrlsf.vim

もともと入れていれていながら、以前試した際にあまり速度が出ずに使用を止めていたのだけど
最近試してみたらとても早い(gitに管理されているファイルを見ていたりする?マシンスペック?)
ので積極的に使っていきたい
(厳しかったら:ggrep 使おう)

特定の単語を数えたい( n:置換コマンドに置換させないオプション)

:%s/hoge//gn

参考 https://blog.kawa-xxx.jp/entry/20140511/1399818512

helpを積極的に読む

とはいっても用意されたhelpを闇雲に見るまでは今の所したくないので

参考: おすすめの :helpまとめ
http://cohama.hateblo.jp/entry/2013/07/28/235823

折りたたみ機能

自分はあまり使わないと思っていたけど
プラグインのhelpで使われているものあったので(開けなくて読めない)

za : 折りたたみの開閉

参考: vim標準機能の折りたたみを駆使して、.vimrcを整理しよう
https://qiita.com/jiro4989/items/12a41fb58cc42287092f

ブックマーク機能

以下のプラグインを使わせて頂いているのだけど
https://github.com/MattesGroeger/vim-bookmarks

ただ、このプラグインでマークしているのはよく使用しているファイル(たとえばconfigなど)で
作業中に一時的にマークしたい(たとえばサービス、モデルとかを往復するときなど)に使いづらかった
(一時的にマークしたいものと長期的にマークしたいものが混ざるので)。
のでvimのデフォルトのマークも併用して使用する(プラグインの方どうなっているかわからないけど挙動だけみるにかぶってなさそう)。
自分の用途的に基本的にグローバルでマークする形にしそう[A-Z]
かつ作業終わったら定期的に消していく

# mark一覧を表示する
:marks

# カーソル位置をmarkする
# m[a-zA-Z]

# マークを全消し
:delmarks!

参考 Vimのマーク機能、使い方まとめ
https://qiita.com/syui/items/442fd0905a1f2005c10e
TODO ここらへんいい感じにmap定義したい

map noremap

vimrcに定義しているのに説明できない(パクってきたものなので)のはよくないと思い
基本noremapでよさげ(プラグインで定義されたものはmap)

参考: 【図解Vim】mapとnoremap
https://cocopon.me/blog/2013/10/vim-map-noremap/

set nu 入れる

何かの記事を見て意図的に行数を表示していなかったのだけど以下の理由で設定変更
・helpがどれくらいあるか把握できる
・エラーの位置に飛びたい
・カウントするとき位置を把握できる(:%s/hoge//gn でそれぞれの位置の行数が把握できる。なんとなく把握しておきたい)

TODO (気が向いたときに調べる)

先読み後読み

http://d.hatena.ne.jp/unk_pizza/20140311/p1 https://qiita.com/mochizukikotaro/items/84f3ab2740b8efbe0dc6

クリップボード

たまに挙動で混乱する。どういうときに困るか忘れた。困ったときにまた確認 http://labs.timedia.co.jp/2014/09/learn-about-vim-in-the-workplace.html