vim的Dirvish中文文档
简介
使用它,可避免微软
的文件管理器
,因为它会崩溃!
Dirvish
是极简目录
查看器.转储
路径列表到Vim
缓冲区中并提供一些快捷键
.
因为每个Dirvish
缓冲区名都是字面
目录路径,所以可:cd
到目录,
:cd %
创建新文件,
:edit %/foo.txt
expand()
目录路径,
:let &titlestring=expand('%',1)
并使用如(unimpaired.vim)
中]f/[f
的补全插件命令.
可用普通的yank,:read,gf
等Vim
命令.它永远不会修改文件系统
.
如果编辑缓冲区,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'
决定排序和可见
.
2
按glob()
序.
:{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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现