path - 脚本 : switch to buffer by filename path

标签 path buffer filenames vim

我有一个需要切换到特定缓冲区的 vimscript。该缓冲区将由完整路径、部分路径或仅其名称指定。

例如:

我在目录 /home/user/code 中,我打开了 3 个 vim 缓冲区 foo.py src/foo.pysrc/bar.py

  • 如果脚本被告知切换到缓冲区 /home/user/code/foo.py,它将切换到缓冲区 foo.py

  • 如果它被告知切换到 user/code/src/foo.py 它会切换到缓冲区 src/foo.py

  • 如果它被告知切换到 foo.py 它会切换到缓冲区 foo.py

  • 如果它被告知切换到 bar.py,它将切换到缓冲区 src/bar.py

我能看到的最简单的解决方案是以某种方式获取存储在变量中的缓冲区列表并使用试错法。

如果解决方案是跨平台的就好了,但它至少需要在 Linux 上运行。

最佳答案

bufname()/bufnr() 函数可以通过部分文件名查找加载的缓冲区。您可以通过附加 $ 将匹配锚定到末尾,如下所示:

echo bufnr('/src/foo.py$')

关于path - 脚本 : switch to buffer by filename path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576691/

相关文章:

ios - 在不使用Asset Catalog的情况下将图像用途区分到iOS应用的正确方法?

windows - 子驱动器和文件夹

java - A* 算法无法正常工作

objective-c - 如何初始化 NSData 以存储 MAX_SIZE_BUFFER 字节?

c - 如何在 C 中按日期打印目录中的文件名列表?

c - 在 C 中,处理类似 "list"的多个参数的典型方法是什么?

c# - 在安卓上找不到路径

path - Inno Setup(如何动态获取文件路径)?

c - 从套接字缓冲数据?

c# - 使用 streamReader.ReadBlock(缓冲区)导入文件