视频与目录
项目 | 值 |
---|---|
教程目录 | https://blog.csdn.net/lxyoucan/article/details/120641546 |
视频全屏 | https://www.bilibili.com/video/BV1XR4y1n78z/ |
视频 |
05vim文件管理插件defx与窗口选择工具 vim-choosewin |
05_[nvim0.5+从0单排]_vim文件管理插件—defx
欢迎来到第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()`<CR>
nnoremap <silent>sf :<C-u>Defx -listed -resume
\ -columns=indent:mark:icon:icons:filename:git:size
\ -buffer-name=tab`tabpagenr()`
\ `expand('%:p:h')` -search=`expand('%:p')`<CR>
"nnoremap <silent>fi :<C-u>Defx -new `expand('%:p:h')` -search=`expand('%:p')`<CR>
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> yy
\ defx#do_action('copy')
nnoremap <silent><buffer><expr> dd
\ defx#do_action('move')
nnoremap <silent><buffer><expr> pp
\ defx#do_action('paste')
nnoremap <silent><buffer><expr> l
\ defx#do_action('open')
nnoremap <silent><buffer><expr> <Right>
\ defx#do_action('open')
nnoremap <silent><buffer><expr> E
\ defx#do_action('open', 'vsplit')
nnoremap <silent><buffer><expr> n
\ defx#do_action('open', 'pedit')
nnoremap <silent><buffer><expr> i
\ defx#do_action('open', 'choose')
nnoremap <silent><buffer><expr> o
\ defx#do_action('open_or_close_tree')
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> dD
\ defx#do_action('remove')
nnoremap <silent><buffer><expr> a
\ 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> <BS>
\ 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> <Left>
\ defx#do_action('cd', ['..'])
nnoremap <silent><buffer><expr> ~
\ defx#do_action('cd')
nnoremap <silent><buffer><expr> gh
\ defx#do_action('cd')
nnoremap <silent><buffer><expr> gn
\ defx#do_action('cd',['~/.config/nvim'])
nnoremap <silent><buffer><expr> q
\ defx#do_action('quit')
nnoremap <silent><buffer><expr> <Space>
\ defx#do_action('toggle_select') . 'j'
nnoremap <silent><buffer><expr> m
\ defx#do_action('toggle_select') . 'j'
nnoremap <silent><buffer><expr> vv
\ defx#do_action('toggle_select_all')
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#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