Vim

最近乗り換えたvimプラグインやら

More than 1 year has passed since last update.


ディレクトリツリーからファイル選択

NERDTreeからvimfilerに乗り換えた。

両者はいずれもディレクトリツリーからファイルを開くという意味では一見良くてい似ています。

しかしそのコンセプトは別物で、自分にはvimfilerのコンセプトが合致したので乗り換えました。

簡単にいえばNERDTreeは常にディレクトリツリーを表示して使用するのに対し、

vimfilerはディレクトリツリーを必要に応じすべてのウィンドウで表示可能な点が異なります。

説明が下手すぎるので、詳細はvimfilerのヘルプにもリンクしてある以下を参照して下さい。

わかりやすい。

http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windows-and-project-drawer/

なおNERDTree的な使い方も必要な場合は:VimFilerExploreコマンドにて実現可能です。

状況によってはこちらも利用しています。


.vimrc

NeoBundle 'Shougo/vimfiler.vim'

nnoremap <leader>e :VimFilerExplore -split -winwidth=30 -find -no-quit<Cr>


コマンド


移動

key
action

j
下へ

k
上へ

l
子ツリーへ(exploreオプションで動作変わる)

h
親ツリーへ(exploreオプションで動作変わる)

gg
トップへ

L
別ドライブへ(Unite形式)

~
ホームへ

\
ルートへ

&
プロジェクトルートへ

C-j
履歴へ(Unite形式)

BS
親ツリーへ

I
パス直接指定移動


表示

key
action

.
非表示ファイルの表示切り替え

M
フィルタリング(Unite形式)

t
ツリー展開

T
再帰的ツリー展開

S
並びかえ

C−l
再描画

C-g
フルパスを出力

g<C-g>
全画面トグル


検索

key
action

gr
grep(Unite形式)

gf
find(Unite形式)


実行

key
action

e
編集(g:vimfiler_edit_actionで定義)

E
eの分割バージョン

<enter>
実行(g:vimfiler_execute_file_listで定義)

H
shell(vimshell)起動

x
関連付けで開く

B
バイナリ編集(vinariseが必要)

a
アクション選択

ge
外部ファイラーで開く

!
シェルコマンド実行

v
プレビュー(g:vimfiler_preview_actionで定義)


閉じる

key
action

-
現在のvimfiler画面を閉じる

q
vimfilerを隠す

Q
vimfiler終了


ファイル操作

key
action

gs
safe mode 解除

c
コピー

m
移動

d
削除

r
リネーム(renamer.vimライク)

K
ディレクトリ作成

N
ファイル作成

Cc
クリップボードへコピー

Cm
クリップボードへ移動

Cp
クリップボードから貼付け

o
vimfilerの同期

O
他方のvimfilerで開く


マーク

key
action

<space>
マーク

*
すべてマークのトグル

U
すべてクリア


インデントをわかりやすく表示

indent-guidesからindentLineに乗り換えました。

特に不満はなかったが、ある日突然重くなりそのまま乗り換えたら便利だったのでそのまま使用しています。

g:indentLine_fasterを有効にするとさらに軽くなって良いです。


.vimrc

NeoBundle 'Yggdroot/indentLine'

let g:indentLine_faster = 1
nmap <silent><Leader>i :<C-u>IndentLinesToggle<CR>

こんな感じで表示されます。

スクリーンショット 2014-09-11 21.04.32.png


テキストを整列

aligntaからeasy-alignに乗り換えました。


.vimrc

NeoBundle 'junegunn/vim-easy-align'


以下は公式のデモですが、これを見て便利そうだったので使っています。

公式のdemo


カーソルの移動

もともとeasymotionを使っていて、今でも使っています。


.vimrc

NeoBundle 'Lokaltog/vim-easymotion'


ただ他にもいろいろ試しましたが、正直カーソルスピードを上げるのが一番効果がありました。

Macなら変更はKarabiner(旧KeyRemap4MacBook)にて例えば以下のように設定可能です。

(Windowsではkbdaccとか使用)

スクリーンショット 2014-09-11 21.22.24.png

あと地味にsmartwordも便利だったので入れました。


.vimrc

NeoBundle 'kana/vim-smartword'

nmap w <Plug>(smartword-w)
nmap b <Plug>(smartword-b)
nmap e <Plug>(smartword-e)


ウィンドウサイズの変更

vim-submodeで以下のようにしていました。

これなら<C-w>+<C-w>+<C-w>+<C-w><<C-w><などが<C-w>+++<<でできて便利です。


.vimrc

NeoBundle 'kana/vim-submode'

for k in split('<>+-=n', '.\zs')
call submode#enter_with('winsize', 'n', '', '<C-w>'.k, '<C-w>'.k)
call submode#map('winsize', 'n', '', k, '<C-w>'.k)
endfor

でも今更altキーにもマップできると知り試してみました。

モードを抜ける動作も不要なので、この場合に限りこちらの方法が楽でした。


.vimrc

" マックの場合に必要

set macmeta
" サイズ変更
nnoremap <M-+> <C-w>-
nnoremap <M--> <C-w>+
nnoremap <M->> <C-w>>
nnoremap <M-<> <C-w><
" alt + = でリセット
nnoremap <M-=> <C-w>=
" alt + a で最大化
nnoremap <M-a> <C-w>_<C-w><Bar>
" 移動
nnoremap <M-h> <C-w>h
nnoremap <M-j> <C-w>j
nnoremap <M-k> <C-w>k
nnoremap <M-l> <C-w>l

これにより先程の入力はalt+;;;<<で入力可能です。

他にウィンドウ移動なども割り当てて使っています。