vimネタ Explore、vimshell
もし~/.vimrcを無くしてしまったら、その日は一日中立ち直れないだろう。
vimでディレクトリを開いたときに出てくる:Exploreが何気に便利なわけですが、表示されるファイルのソート順のデフォルト値は、Myカスタマイズにしておくと便利。
↓Myカスタマイズ
map
let g:netrw_sort_sequence="[\\/]$,*,\\.\\(mv\\|old\\|cp\\|bak\\|orig\\)[0-9]*[\\/]$,\\.\\(mv\\|old\\|cp\\|bak\\|orig\\)[0-9]*$,\\.o$,\\.info$,\\.swp$,\\.obj$ "
1. /で終わるファイル名(=ディレクトリ)
2. その他のファイル
3. *.mvとか*.oldとか*.old1とか*old2とかで終わるディレクトリ
4. *.mvとか*.oldとかとかで終わるファイル
5. *.oとか*.swpとか*.objとか
でソートされます。
それから、最近vimshellなるモノを導入したら、これが便利で困る。
vimのwindowでptyを使うというモノ。
プラグインではなくパッチなので、再コンパイルが必要なのが少々面倒。
vim7にvim-shellパッチを当てるときは、vim7の修正パッチ(vim-7.0.0-218とか)を当てると、configureへのパッチが衝突してコンパイルできないのは難点。vim7.1にも当たらない。
vim-shellはいろいろと挙動がおかしかったりするのだけど、vim-shellの中でscreenを起動しておくと幾分マシになる。
というわけで、↓こんな感じでmapしてみる。
map
noremap!
noremap!
Ctrl-W + Ctrl-Kで、ウィンドウを左右に割ってから右側にvim-shellを起動、 Ctrl-W + Ctrl-Mで、ウィンドウを上下に割ってから下にvim-shellを起動。
screenを起動して、ついでにlsを自動実行。
vim-shellのウィンドウはCtrl-W + cで閉じるのだけど、間違ってフツーの状態でCtrl-W + cを押してしまうと、いろいろおいしくないことがおこって良くない。
というわけで、フツーの状態ではC-W + cを無視するようにmap。
noremap
noremap!
ついでに.bashrc用に↓小物スクリプトを。
fing() {
local find_real=`which find`
if [ -z "$1" ];then
$find_real
elif [ -z "${1##-*}" ];then
$find_real "$@"
else
local dir="."
if [ -d "$1" ];then
dir="$1"
shift
fi
if [ -n "$1" -a -z "${1##-*}" -o -z "$1" ];then
$find_real "$dir" "$@"
else
$find_real "$dir" | grep --color "$@"
fi
fi
}
#alias find=fing
(mixiでもpreなコードが書けると嬉し)
第一引数がディレクトリだったら そこにfindしてくれるという、ちょっとした親切機能付き。
それから引数が無かったり、第一引数が-で始まる文字列だった場合は、普通にfindを実行。
fing -exec...まで打ってから、fingじゃなくてfindだった、と言うときでも安心。
grepに引数を渡す場合は最後に。
fing hoge -v -i で、大文字小文字を区別せずにhoge以外。
何気にfind違和感なくfindっぽく使えるので、果敢に alias find=fing としてみるのも一興。