vim的Dirvish中文文档

简介

使用它,可避免微软文件管理器,因为它会崩溃!
Dirvish是极简目录查看器.转储路径列表到Vim缓冲区中并提供一些快捷键.

因为每个Dirvish缓冲区名都是字面目录路径,所以可:cd到目录,

:cd %

创建新文件,

:edit %/foo.txt

expand()目录路径,

:let &titlestring=expand('%',1)

并使用如(unimpaired.vim)]f/[f的补全插件命令.
可用普通的yank,:read,gfVim命令.它永远不会修改文件系统.

如果编辑缓冲区,Dirvish会自动禁用隐藏,以便可看到全文.

映射

命令意思
<Plug>(dirvish_up)-打开当前文件目录或第[count]个父目录

局部,缓冲区本地(文件类型=dirvish)映射:

映射意思
G?,显示帮助.
[count]R重新加载当前目录.(:edit也可以),如果给定,设置g:dirvish_mode[count].助记:更高[count]=>更多文件.
<Plug>(dirvish_quit)gq退出并返回到原文件.
<Plug>(dirvish_up)-打开第[count]个父目录.
<Plug>(dirvish_split_up)新窗口中打开第[count]个父级.
<Plug>(dirvish_vsplit_up)新垂直窗口中打开第[count]个父级.
<2-LeftMouse>i<CR>打开光标处文件.
{Visual}I{Visual}<CR>打开选定文件.
o在新窗口中打开文件.
{Visual}O新窗口中打开每个选定文件.
a新垂直窗口中打开文件.
{Visual}A新垂直窗口中打开每个选定文件.
K显示文件信息.[count]显示目录大小.
{Visual}K显示选定文件信息.[count]显示目录大小.
p预览光标处的文件.
CTRL-N预览下一个文件.
CTRL-P预览前一个文件.
<Plug>(dirvish_arg)x在本地arglist添加/删除文件.
{Visual}x添加选定文件到本地arglist.
dax启动新空本地arglist.
.在命令行中插入:!{path}.
{Visual}.在命令行中插入:Shdo {}.
[count].在命令行中插入:Shdo!{}.
~打开家目录.
cd设置本地当前目录.:lcd
[count]cd设置全局当前目录.:cd

命令

命令意思
:Dirvish打开当前目录,:Dirvish %也可以
:Dirvish{path}打开位于{path}的目录,如果{path}是文件,则打开其父目录

函数

函数意思
dirvish#open()同下
[range]dirvish#open({cmd}, {bg})[range]区间中,执行{cmd} ("edit", "vsplit", "split", "tabedit")命令.{bg}为`0(当前窗口)
dirvish#add_icon_fn(fn)注意路径图标
dirvish#remove_icon_fn()注册图标

选项

g:dirvish_mode,控制如何列举与展示.
1'suffixes'和'wildignore'决定排序和可见.
2glob()序.
:{cmd}为列举后执行命令.
助记符:更高的数字=>更多文件,在第一次打开目录时,触发BufNew,未加载.加载后,触发FileType.可通过它覆盖映射,选项和内容.

augroup dirvish_config
  autocmd!

  "映射`t`来在新tab中打开
  autocmd FileType dirvish
    \  nnoremap <silent><buffer> t :call dirvish#open('tabedit', 0)<CR>
    \ |xnoremap <silent><buffer> t :call dirvish#open('tabedit', 0)<CR>

  "映射`gr`来重载
  autocmd FileType dirvish nnoremap <silent><buffer>
    \ gr :<C-U>Dirvish %<CR>

  " 映射`gh`来隐藏点前缀文件.按`R`来切换
  autocmd FileType dirvish nnoremap <silent><buffer>
    \ gh :silent keeppatterns g@\v/\.[^\/]+/?$@d _<cr>:setl cole=3<cr>
augroup END

常见问题解答

'splitbelow'和'splitright'控制拆分窗口位置.
如何分组或排序目录?

:sort ,^.*[\/],
:sort ,^.*[^\/],
//上面为顶部,下面为底部排序.
let g:dirvish_mode = ':sort ,^.*[\/],'
//来自动排序.

用了g:dirvish_relative_paths,则用

let g:dirvish_mode = ':sort ,^\v(.*[\/])|\ze,'

如何过滤?

:g/foo/d
let g:dirvish_mode = ':silent keeppatterns g/foo/d _'
//自动过滤
:g@\v/\.[^\/]+/?$@d
//删除显示隐藏文件.

自动化的话:

let g:dirvish_mode = ':silent keeppatterns g@\v/\.[^\/]+/?$@d _'
autocmd FileType dirvish silent keeppatterns g@\v/\.[^\/]+/?$@d _

要显示,则用撤销,要再次隐藏,用重载.

禁用映射

augroup dirvish_config
  autocmd!
  autocmd FileType dirvish silent! unmap <buffer> <C-p>
//禁用<C-p>
augroup END

禁用所有本缓冲:

:mapclear <buffer>

:noswapfile避免交换文件.
:Shdo可批量删/重命名/其他动作文件.因为:'<,'>call delete(getline('.'))太长了.
覆盖netrw:Explore,:Sexplore,:Vexplore命令?
如下放入vimrc中:

let g:loaded_netrwPlugin = 1
command! -nargs=? -complete=dir Explore Dirvish <args>
command! -nargs=? -complete=dir Sexplore belowright split | silent Dirvish <args>
command! -nargs=? -complete=dir Vexplore leftabove vsplit | silent Dirvish <args>

如何内联(如树样式视图)扩展目录?

augroup dirvish_config
  autocmd!
  autocmd FileType dirvish
      \ nnoremap <silent><buffer> t ddO<Esc>:let @"=substitute(@", '\n', '', 'g')<CR>:r ! find "<C-R>"" -maxdepth 1 -print0 \| xargs -0 ls -Fd<CR>:silent! keeppatterns %s/\/\//\//g<CR>:silent! keeppatterns %s/[^a-zA-Z0-9\/]$//g<CR>:silent! keeppatterns g/^$/d<CR>:noh<CR>
"有点麻烦.会使用"寄存器
augroup END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值