menu
書いてる野郎
orebike@gmail.com
Shougo/defx.nvim: The dark powered file explorer implementation
おなじみ暗黒製のファイラプラギン
やはりちょっとムズい。
Neovim/Plugin/dein.vim これによって管理されていて、 Neovim/Plugin/deoplete.nvim/Install これによって Python3 を Neovim で使えるようになっている前提。
toml ファイルを記述する。こんな感じ。
[[plugins]]
repo = 'Shougo/defx.nvim'
hook_add = '''
autocmd FileType defx call s:defx_my_settings()
function! s:defx_my_settings() abort
" Define mappings
nnoremap <silent><buffer><expr> <CR>
\ defx#do_action('open')
nnoremap <silent><buffer><expr> c
\ defx#do_action('copy')
nnoremap <silent><buffer><expr> m
\ defx#do_action('move')
nnoremap <silent><buffer><expr> p
\ defx#do_action('paste')
nnoremap <silent><buffer><expr> l
\ defx#do_action('open')
nnoremap <silent><buffer><expr> E
\ defx#do_action('open', 'vsplit')
nnoremap <silent><buffer><expr> P
\ defx#do_action('open', 'pedit')
nnoremap <silent><buffer><expr> o
\ defx#do_action('open_tree', 'toggle')
nnoremap <silent><buffer><expr> K
\ defx#do_action('new_directory')
nnoremap <silent><buffer><expr> N
\ defx#do_action('new_file')
nnoremap <silent><buffer><expr> M
\ defx#do_action('new_multiple_files')
nnoremap <silent><buffer><expr> C
\ defx#do_action('toggle_columns',
\ 'mark:indent:icon:filename:type:size:time')
nnoremap <silent><buffer><expr> S
\ defx#do_action('toggle_sort', 'time')
nnoremap <silent><buffer><expr> d
\ defx#do_action('remove')
nnoremap <silent><buffer><expr> r
\ defx#do_action('rename')
nnoremap <silent><buffer><expr> !
\ defx#do_action('execute_command')
nnoremap <silent><buffer><expr> x
\ defx#do_action('execute_system')
nnoremap <silent><buffer><expr> yy
\ defx#do_action('yank_path')
nnoremap <silent><buffer><expr> .
\ defx#do_action('toggle_ignored_files')
nnoremap <silent><buffer><expr> ;
\ defx#do_action('repeat')
nnoremap <silent><buffer><expr> h
\ defx#do_action('cd', ['..'])
nnoremap <silent><buffer><expr> ~
\ defx#do_action('cd')
nnoremap <silent><buffer><expr> q
\ defx#do_action('quit')
nnoremap <silent><buffer><expr> <Space>
\ defx#do_action('toggle_select') . 'j'
nnoremap <silent><buffer><expr> *
\ defx#do_action('toggle_select_all')
nnoremap <silent><buffer><expr> j
\ line('.') == line('$') ? 'gg' : 'j'
nnoremap <silent><buffer><expr> k
\ line('.') == 1 ? 'G' : 'k'
nnoremap <silent><buffer><expr> <C-l>
\ defx#do_action('redraw')
nnoremap <silent><buffer><expr> <C-g>
\ defx#do_action('print')
nnoremap <silent><buffer><expr> cd
\ defx#do_action('change_vim_cwd')
endfunction
call defx#custom#option('_', {
\ 'split': 'floating',
\ 'show_ignored_files': 1,
\ 'buffer_name': 'exlorer',
\ 'toggle': 1,
\ 'resume': 1,
\ })
'''
Defx はコマンドだけが提供されていてキーバインドはまったくされていないので、 ここは自力でやる必要がある。のだが、サンプル設定があるのでそれをそのままコピペした。
neovim を再起動するとインストールされる。
Defx を起動する
:Defx
エラがー出るので
:UpdateRemotePlugins
で neovim 再起動で動いた。意味不明。
コマンドで起動すると指定した
:Defx
設定のコマンドをパラメータつけて呼び出せばいい。
call defx#custom#option('_', { \ 'split': 'floating', \ 'show_ignored_files': 1, \ 'buffer_name': 'exlorer', \ 'toggle': 1, \ 'resume': 1, \ })
挙動のコントロールも適当にコピペで作った。floating となっているのは Defx 自体をどのように表示するか。
自分はペイン管理がグチャグチャになるのが嫌だったので floating によって明確に Defx の用途を固定した。