netrw
插件Vim
允许查看目录文件。这里FOW例如,我开始Vim
用vim .
:
" ============================================================================
" Netrw Directory Listing (netrw v155)
" /root/vim/code/files
" Sorted by name
" Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special
" ==============================================================================
../
./
letters/
mvc/
.chapters
a.txt
b.txt
mvc_paths.vim
是否真的有可能Vim
查看目录文件的内容?例如cat .
,less .
,hexdump .
等所有的失败,. is a directory
错误消息。还是netrw
插件只是列出目录的内容,从而给人以打开实际目录文件的印象?
读取目录并不会真正以文件的形式发生。它在readdr
系统调用中发生。请参阅man 2 readdir
将旧的实现作为纯系统调用,以及man 3 readdir
将其包装(请不要使用旧的实现)。
但是,Vim'snetrw
不会执行任何类似的操作。它只是简单地调用ls
或执行globing(请阅读下面的内容,以了解何时执行一次以及何时执行另一次)并解析其输出。
通过配置,netrw
您可以选择如何ls
在远程系统上调用它。您可以在vimrc
SSH和FTP连接中设置“ listing”命令,如下所示(这些是默认设置):
let g:netrw_list_cmd = 'ssh HOSTNAME ls -Fa'
let g:netrw_ftp_list_cmd = 'ls -lF'
(您甚至可以将其设置为与没有ls
FTP系统的FTP系统不同的东西ls
,是的,有一些罕见的FTP系统没有它。)
对于本地列表,请 netrw
执行遍历,然后调用getftype()
以装饰文件(/
用于目录,@
用于链接等)。在autoload/netrw.vim
该s:LocalListing()
过程中,执行以下操作:
let dirname = b:netrw_curdir
let dirnamelen = strlen(b:netrw_curdir)
let filelist = s:NetrwGlob(dirname,"*",0) " here is the globbing of `*`
let filelist = filelist + s:NetrwGlob(dirname,".*",0) " and here `.*`
然后getftype()
在中的每个文件上调用filelist
。
总而言之,这netrw
取决于Vim具有该glob()
功能,并且Vim依次执行glob
调用(man 3 glob
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句