neovim 下 defx 的安装与使用
什么是Defx
Defx是一款全新的在neovim下的文件树插件。它具有以下特点
- 不依赖于 denite.nvim
- 兼容vim8和neovim(vim8下需要安装nvim-yarp)
- 使用Python3实现
- 类似于denite.nvim一样支持 source
还有一些其他的特点就不一一介绍了,大家可以点击项目主页前往查看。
那么,对比经典的老牌插件NerdTree有什么优点呢,最大的优点是异步功能,这样就比NerdTree的加载速度要快很多。除此之外,还可以像VSCode和PHPStorm等现代化的IDE一样为每个文件加上图标。
安装
Defx需要Neovim 0.3.0+ 或者 Vim 8.1+ 以及 Python3.6.1+。我使用的是vim-plug来管理插件,配置代码如下。如果你使用的是其他插件管理,那么需要你自行查找对应的方法。另外如果只使用neovim的话,那么只需要添加下面if中的内容即可。
if has('nvim')
Plug 'Shougo/defx.nvim', { 'do': ':UpdateRemotePlugins' }
else
Plug 'Shougo/defx.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
使用和配置
安装完成后我们可以使用Defx
命令来使用。
我们可以发现,这个Buffer充满了我们的窗口,这可不是我们想要的效果。我们需要对其进行配置。
优化配置
call defx#custom#option('_', {
\ 'winwidth': 30,
\ 'split': 'vertical',
\ 'direction': 'topleft',
\ 'show_ignored_files': 0,
\ 'buffer_name': '',
\ 'toggle': 1,
\ 'resume': 1
\ })
这段配置必须位于上面的Plug配置之后,否则会报错(当然应该也有其他的解决办法,欢迎大家提出指正)。
配置之后的效果如下:
设置快捷键
当然,我们总是输入Defx
命令很麻烦是不是,我们可以将快捷键对其进行绑定。
nmap <silent> <Leader>e :Defx <cr>
我的Leader
键为,
,所以我按下,
和e
键即可快速打开和关闭Defx
其他快捷键
autocmd FileType defx call s:defx_mappings()
function! s:defx_mappings() abort
nnoremap <silent><buffer><expr> l <SID>defx_toggle_tree() " 打开或者关闭文件夹,文件
nnoremap <silent><buffer><expr> . defx#do_action('toggle_ignored_files') " 显示隐藏文件
nnoremap <silent><buffer><expr> <C-r> defx#do_action('redraw')
endfunction
function! s:defx_toggle_tree() abort
" Open current file, or toggle directory expand/collapse
if defx#is_directory()
return defx#do_action('open_or_close_tree')
endif
return defx#do_action('multi', ['drop'])
endfunction
上面的配置我们可以使用.
键来显示和隐藏忽略文件,l
键来打开关闭文件或者文件夹。其他的内容就需要你们自己配置了。
添加图标支持
在安装对应的插件之前,你需要安装Nerd-Font
字体安装
brew tap homebrew/cask-fonts
brew cask install font-hack-nerd-font
iTerm2设置
安装完之后重启iTerm2,然后按照下面图片的设置即可。
安装插件
Plug 'kristijanhusak/defx-icons'
安装完成之后,我们就能看到漂亮的图标啦!
本作品采用《CC 协议》,转载必须注明作者和本文链接