2

我正在编写一个脚本,该脚本to在 bash 中为文件系统位置添加书签(对 zsh 的支持有限)。你可以在这里找到源代码:https ://github.com/resultsreturned/to

该脚本支持所有操作的选项卡完成。

假设您已“标记”文件夹的位置:

mara@andromeda:~/bin/android-sdk-linux$ to -b android

然后,该脚本允许您访问书签的子文件夹,如下所示:

mara@andromeda:~$ to android/docs/
mara@andromeda:~/bin/android-sdk-linux/docs$ 

按两次 tab 将给出建议:

mara@andromeda:~$ to android/s<TAB><TAB>
android/samples/        android/sd-card/        android/sources/        android/system-images/  

但是,我宁愿建议仅打印当前未输入到缓冲区的路径部分。例如,cd命令:

mara@andromeda:~/bin$ cd android-sdk-linux/s<TAB><TAB>
samples/       sd-card/       sources/       system-images/ 

请注意建议如何仅包含当前正在输入的目录级别。

所以问题是,你如何控制 bash 打印建议的方式?是否可以独立于完成词表(用于 compgen/complete)来执行此操作?有没有办法定义一个正则表达式来处理完成单词列表以作为建议打印?

4

1 回答 1

1

由于将评论标记为答案的功能请求仍然被拒绝,因此我在此处复制上述解决方案。

因此,-o filenames在调用complete. 仅向用户显示 COMPREPLY bash 完成选项的子字符串– resultsreturned

于 2013-08-30T11:39:05.540 回答