有没有办法在netrw列表中将光标放在文件上时自动预览文件?

时间:2017-07-28 17:42:31

标签: vim

这不是关于超过文件名时命中'p',而是通过简单地将光标放在文件名上来获得相同的结果。

1 个答案:

答案 0 :(得分:1)

您可以将一些动作重新映射到根据光标下方的当前单词填充预览窗口的功能。

这是处理文本文件和目录的基本示例:

set nocompatible
set autochdir

" Previewed files are present in the current directory
let g:netrw_keepdir = 0

function! PreviewFile(...)
    let l:wordUnderCursor = a:1
    if !empty(glob(l:wordUnderCursor))
        let l:type = system('file -ib ' . shellescape(l:wordUnderCursor))
        if l:type =~# '^text/plain'
            silent! execute 'pedit' l:wordUnderCursor
        elseif l:type =~# '^inode/directory'
            let l:name = tempname()
            set noautochdir
            silent! execute 'pedit! ' . l:name
            wincmd P
            normal! ggdG
            silent! execute 'r !ls ' . l:wordUnderCursor
            normal! ggdd
            wincmd w
        endif
    endif
endfunction

autocmd FileType netrw
            \ nnoremap j j:call PreviewFile(expand("<cWORD>"))<CR> |
            \ nnoremap k k:call PreviewFile(expand("<cWORD>"))<CR>