vim find命令:如何列出所有匹配的文件
发布时间:2020-12-15 22:42:47 所属栏目:安全 来源:网络整理
导读:: vim的find命令只匹配一个文件.如果匹配的文件越多,则会显示“文件名太多”的消息. 是否有任何vim命令可以通过使用通配符或正则表达式查找文件,并允许用户在这些匹配的文件之间导航? 解决方法 你好像混淆了Vim的命令行完成和:find命令本身. :find只接受
:
vim的find命令只匹配一个文件.如果匹配的文件越多,则会显示“文件名太多”的消息.
是否有任何vim命令可以通过使用通配符或正则表达式查找文件,并允许用户在这些匹配的文件之间导航? 解决方法
你好像混淆了Vim的命令行完成和:find命令本身.
:find只接受一个单独的文件名(或解析为单个文件名的内容)作为参数,但命令行完成允许您完成该单个参数,允许您遍历路径中与当前模式匹配的所有文件. 这种混乱使你真正想要的不明显: >你想要:找到打开来编辑与你的模式匹配的每个文件? 前者在设计上是不可能的,但您可以使用:new命令(:help:new): :new *.foo 当然,后者是可能的.为此,您需要在?/ .vimrc中至少设置几个选项: set wildmenu set wildmode=list:full 请参阅:help wildmode,了解如何自定义wildmenu的行为.这些设置当然适用于其他命令:: edit,:split,:buffer … 一些建议: set path+=** 让Vim在工作目录下递归查找文件. set wildignorecase 告诉Vim忽略完成的情况:: find foo将匹配foo.txt和Foo.txt. set wildignore=*.foo,*.bar 在完成时告诉Vim忽略这些文件(它可以是目录). 最后,这里有一堆映射使我的生活(在Vim中)变得如此简单: " regex completion instead of whole word completion nnoremap <leader>f :find * " restrict the matching to files under the directory " of the current file,recursively nnoremap <leader>F :find <C-R>=expand('%:p:h').'/**/*'<CR> " same as the two above but opens the file in an horizontal window nnoremap <leader>s :sfind * nnoremap <leader>S :sfind <C-R>=expand('%:p:h').'/**/*'<CR> " same as the two above but with a vertical window nnoremap <leader>v :vert sfind * nnoremap <leader>V :vert sfind <C-R>=expand('%:p:h').'/**/*'<CR> 以下是它的外观: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |