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

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

Image in a image block
defx.nvimのファイルツリー

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

💡
defx.nvim の作者が開発した高速なファイル検索プラグイン denite.nvim の導入もぜひご検討ください。NeoVim denite.nvimで自動プレビューするための設定紹介(auto preview) で紹介しています。

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

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

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

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

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

  • ウィンドウ幅の指定 winwidth
  • ファイルツリーを左側に表示する split, direction
  • ドット.で始まるファイルを表示する show_ignored_files: 1
  • :Defxでdefx.nvimを終了できるようにする toggle: 1
  • 前回の状態でdefx.nvimを開く resume: 1
call defx#custom#option('_', {
\ 'winwidth': 40,
\ 'split': 'vertical',
\ 'direction': 'topleft',
\ 'show_ignored_files': 1,
\ 'toggle': 1,
\ 'resume': 1,
\ })

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

  • エンターキー: 垂直分割でファイルを開く(同時にDefxバッファを閉じる)
  • スペースキー: 水平分割でファイルを開く(同上)
  • ..: 親ディレクトリへ移動
  • yy: パスをヤンク
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の設定と使い方を紹介しました。

Thank you!
Thank you!
URLをコピーしました

コメントを送る

コメントはブログオーナーのみ閲覧できます