如何在Vim中找回已关闭的Shell命令输出缓冲区?
找回Vim中Shell命令输出的方法
当你在Vim里执行! ls这类Shell命令,关闭弹窗后想找回输出,不用重新跑命令,试试这几种方式:
查看消息历史
在Normal模式下输入:messages,Vim会列出所有历史消息,其中就包含你刚才执行Shell命令的输出。如果内容太长,用:messages | less分页查看,按q退出即可。用寄存器提前保存输出
执行Shell命令时直接把输出存入指定寄存器,比如敲:"a! ls,这样ls的结果就存在了a寄存器里。之后要查看的话,在Normal模式下按"ap就能把内容粘贴到当前缓冲区,或者用:echo @a在命令行快速查看(适合内容较短的情况)。直接将输出插入缓冲区
如果一开始就打算保留输出,别用! ls,改用:r! ls——这个命令会把Shell命令的输出直接插入到当前光标位置,内容就保存在文件里了,随时能看。借助quickfix窗口
执行:make! ls(这里只是借make的机制调用Shell命令,和项目编译无关),然后输入:copen打开quickfix窗口,里面会显示命令的输出。之后再想看的话,只需要敲:copen就能调出窗口,不用重新执行命令。
内容的提问来源于stack exchange,提问作者gcb
相关产品推荐
相关产品推荐

