You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim中获取任意缓冲区的文件绝对路径?

实现指定缓冲区绝对路径插入的Vim命令

你可以通过自定义Vim命令来实现需求,直接在Vim命令行或你的vimrc文件中添加以下代码:

command! -nargs=1 ReadBufPath let bufname = bufname(<args>) | if empty(bufname) | echoerr "Buffer " . <args> . " has no filename" | else | execute 'read !realpath ' . fnamemodify(bufname, ':p') | endif

命令说明:

  • command! -nargs=1 ReadBufPath:创建名为ReadBufPath的自定义命令,必须传入一个缓冲区编号作为参数
  • bufname(<args>):根据传入的编号获取对应缓冲区的文件名
  • fnamemodify(bufname, ':p'):将文件名转换为完整绝对路径,确保realpath能正确识别
  • 空文件名判断:如果目标缓冲区是未保存的新建文件,会弹出错误提示,避免无效调用

使用方法:

比如要插入:ls!列表中第8号缓冲区的绝对路径,直接执行:

:ReadBufPath 8

执行后,该缓冲区的绝对路径会被插入到当前光标所在位置的下方。

内容的提问来源于stack exchange,提问作者Jazei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 21:37:26