ディレクトリツリーからファイル選択
NERDTree
からvimfiler
に乗り換えた。
両者はいずれもディレクトリツリーからファイルを開くという意味では一見良くてい似ています。
しかしそのコンセプトは別物で、自分にはvimfiler
のコンセプトが合致したので乗り換えました。
簡単にいえばNERDTree
は常にディレクトリツリーを表示して使用するのに対し、vimfiler
はディレクトリツリーを必要に応じすべてのウィンドウで表示可能な点が異なります。
説明が下手すぎるので、詳細はvimfiler
のヘルプにもリンクしてある以下を参照して下さい。
わかりやすい。
http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windows-and-project-drawer/
なおNERDTree
的な使い方も必要な場合は:VimFilerExplore
コマンドにて実現可能です。
状況によってはこちらも利用しています。
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
を有効にするとさらに軽くなって良いです。
NeoBundle 'Yggdroot/indentLine'letg:indentLine_faster =1
nmap <silent><Leader>i :<C-u>IndentLinesToggle<CR>
こんな感じで表示されます。
テキストを整列
alignta
からeasy-align
に乗り換えました。
NeoBundle 'junegunn/vim-easy-align'
以下は公式のデモですが、これを見て便利そうだったので使っています。
カーソルの移動
もともとeasymotion
を使っていて、今でも使っています。
NeoBundle 'Lokaltog/vim-easymotion'
ただ他にもいろいろ試しましたが、正直カーソルスピードを上げるのが一番効果がありました。
Macなら変更はKarabiner
(旧KeyRemap4MacBook
)にて例えば以下のように設定可能です。
(Windowsではkbdacc
とか使用)
あと地味にsmartword
も便利だったので入れました。
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>+++<<
でできて便利です。
NeoBundle 'kana/vim-submode'forkin 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
キーにもマップできると知り試してみました。
モードを抜ける動作も不要なので、この場合に限りこちらの方法が楽でした。
" マックの場合に必要set macmeta
" サイズ変更nnoremap<M-+><C-w>-nnoremap<M--><C-w>+nnoremap<M->><C-w>>nnoremap<M-<><C-w><" option + q でリセットnnoremap<M-q><C-w>=" option + a で最大化nnoremap<M-a><C-w>_<C-w><Bar>" 移動nnoremap<M-h><C-w>hnnoremap<M-j><C-w>jnnoremap<M-k><C-w>knnoremap<M-l><C-w>l
これにより先程の入力はalt
+;;;<<
で入力可能です。
他にウィンドウ移動なども割り当てて使っています。