アルパカログ

NeoVim ファイル操作とツリー表示が便利なdefx.nvimの設定と使い方

2020年12月02日
🔖Vim

defx.nvimを導入するとファイルツリーを表示したり、ファイルの新規作成、コピー、削除といった操作がVim上で簡単に行えます。

An image from Notion

defx.nvimのファイルツリー

denite.nvimがファイル検索に特化したプラグインであるのに対し、defx.nvimはファイル操作に特化したプラグインになっています。

denite.nvimについては下記の記事で紹介しているので、導入がまだの方はご覧ください。

このエントリでは、defx.nvimの設定と使い方を紹介します。

キーマッピングと設定

defx.nvimはコマンドが少ない(:Defxだけ?)ため基本となるキーマッピングはシンプルです。

ここでは;dコマンドでdefx.nvimを開くようにしています。

" Defx
nnoremap <silent> ;d :<C-u>Defx<CR>

次にオプションの設定です。オプション設定では下記の内容を設定しています。

call defx#custom#option('_', {
\ 'winwidth': 40,
\ 'split': 'vertical',
\ 'direction': 'topleft',
\ 'show_ignored_files': 1,
\ 'toggle': 1,
\ 'resume': 1,
\ })

最後にdefx.nvim上でのキーマッピングの設定です。キーマッピングはほぼ見たままですが、いくつかピックアップして説明します。

autocmd FileType defx call s:defx_my_settings()
function! s:defx_my_settings() abort
  nnoremap <silent><buffer><expr> <CR>
  \ defx#is_directory() ? defx#do_action('open') :
  \ defx#do_action('multi', [['drop', 'vsplit'], 'quit'])
  nnoremap <silent><buffer><expr> <Space>
  \ defx#do_action('multi', [['drop', 'split'], 'quit'])
  nnoremap <silent><buffer><expr> <Esc>
  \ defx#do_action('quit')
  nnoremap <silent><buffer><expr> q
  \ defx#do_action('quit')
  nnoremap <silent><buffer><expr> ..
  \ defx#do_action('cd', ['..'])
  nnoremap <silent><buffer><expr> c
  \ defx#do_action('copy')
  nnoremap <silent><buffer><expr> p
  \ defx#do_action('paste')
  nnoremap <silent><buffer><expr> d
  \ defx#do_action('remove')
  nnoremap <silent><buffer><expr> r
  \ defx#do_action('rename')
  nnoremap <silent><buffer><expr> m
  \ defx#do_action('move')
  nnoremap <silent><buffer><expr> n
  \ defx#do_action('new_file')
  nnoremap <silent><buffer><expr> N
  \ defx#do_action('new_directory')
  nnoremap <silent><buffer><expr> yy
  \ defx#do_action('yank_path')
endfunction

私の設定は下記をご覧ください。

do_action('multi')は下記を参考にしました。

以上です。このエントリでは、defx.nvimの設定と使い方を紹介しました。

タグ