视频与目录
项目值教程目录https://blog.csdn.net/lxyoucan/article/details/120641546视频全屏https://www.bilibili.com/video/BV1XR4y1n78z/视频
05_[nvim0.5+从0单排]_vim文件管理插件—defx
05vim文件管理插件defx与窗口选择工具 vim-choosewin
欢迎来到第5期,本期介绍一款本人长期在用的插件,在文件管理这块非常的强大.
插件安装这里以packer为例
-- 文件管理插件,类似与ranger。小孩子才做选择,我都要
use {
"Shougo/defx.nvim",
requires = {
"kristijanhusak/defx-icons", -- dexf文件管理图标支持
"t9md/vim-choosewin" -- 窗口选择器,可以让defx使用i打开文件
}
}
配置
defx配置
新增如下配置文件
~/.config/nvim/after/plugin/defx.rc.vim
内容如下:
if !exists('g:loaded_defx') | finish | endif
" Define mappings
"cnoreabbrev sf Defx -listed -new
" \ -columns=indent:mark:icon:icons:filename:git:size
" \ -buffer-name=tab`tabpagenr()`
nnoremap sf :Defx -listed -resume
\ -columns=indent:mark:icon:icons:filename:git:size
\ -buffer-name=tab`tabpagenr()`
\ `expand('%:p:h')` -search=`expand('%:p')`
"nnoremap fi :Defx -new `expand('%:p:h')` -search=`expand('%:p')`
autocmd FileType defx call s:defx_my_settings()
function! s:defx_my_settings() abort
" Define mappings
nnoremap
\ defx#do_action('open')
nnoremap yy
\ defx#do_action('copy')
nnoremap dd
\ defx#do_action('move')
nnoremap pp
\ defx#do_action('paste')
nnoremap l
\ defx#do_action('open')
nnoremap
\ defx#do_action('open')
nnoremap E
\ defx#do_action('open', 'vsplit')
nnoremap n
\ defx#do_action('open', 'pedit')
nnoremap i
\ defx#do_action('open', 'choose')
nnoremap o
\ defx#do_action('open_or_close_tree')
nnoremap K
\ defx#do_action('new_directory')
nnoremap N
\ defx#do_action('new_file')
nnoremap M
\ defx#do_action('new_multiple_files')
nnoremap C
\ defx#do_action('toggle_columns',
\ 'mark:indent:icon:filename:type:size:time')
nnoremap S
\ defx#do_action('toggle_sort', 'time')
nnoremap dD
\ defx#do_action('remove')
nnoremap a
\ defx#do_action('rename')
nnoremap !
\ defx#do_action('execute_command')
nnoremap x
\ defx#do_action('execute_system')
nnoremap YY
\ defx#do_action('yank_path')
nnoremap .
\ defx#do_action('toggle_ignored_files')
nnoremap
\ defx#do_action('toggle_ignored_files')
nnoremap ;
\ defx#do_action('repeat')
nnoremap h
\ defx#do_action('cd', ['..'])
nnoremap
\ defx#do_action('cd', ['..'])
nnoremap ~
\ defx#do_action('cd')
nnoremap gh
\ defx#do_action('cd')
nnoremap gn
\ defx#do_action('cd',['~/.config/nvim'])
nnoremap q
\ defx#do_action('quit')
nnoremap
\ defx#do_action('toggle_select') . 'j'
nnoremap m
\ defx#do_action('toggle_select') . 'j'
nnoremap vv
\ defx#do_action('toggle_select_all')
nnoremap *
\ defx#do_action('toggle_select_all')
nnoremap j
\ line('.') == line('$') ? 'gg' : 'j'
nnoremap k
\ line('.') == 1 ? 'G' : 'k'
nnoremap
\ defx#do_action('redraw')
nnoremap
\ defx#do_action('print')
nnoremap cd
\ defx#do_action('change_vim_cwd')
endfunction
call defx#custom#column('icon', {
\ 'directory_icon': '▸',
\ 'opened_icon': '▾',
\ 'root_icon': ' ',
\ })
call defx#custom#column('git', 'indicators', {
\ 'Modified' : 'M',
\ 'Staged' : '✚',
\ 'Untracked' : '✭',
\ 'Renamed' : '➜',
\ 'Unmerged' : '═',
\ 'Ignored' : '☒',
\ 'Deleted' : '✖',
\ 'Unknown' : '?'
\ })
defx-icons配置
新增如下配置文件
~/.config/nvim/after/plugin/defx-icons.rc.vim
内容如下:
" 增加图标的宽度,来解决图标 与文件名重叠的问题
let g:defx_icons_column_length = 2
因为图标配置需要优化级比较高,所以要在init.vim中增加如下一行:
source ~/.config/nvim/after/plugin/defx-icons.rc.vim
vim-choosewin配置
这是一个窗口选择插件. 新增如下配置文件
~/.config/nvim/after/plugin/vim-choosewin.rc.vim
内容如下:
"window选择器
" if you want to use overlay feature
let g:choosewin_overlay_enable = 1