git - 如何将文件/文件夹完成添加到 git 命令的fish shell?
问题描述
我正在使用鱼壳 3.1.0。
当我键入git difftool
并点击选项卡时,它给了我本地分支、远程分支、HEAD 和 ORIG_HEAD 的列表,但它没有给我当前工作目录中的文件和目录的列表。
我非常非常频繁地运行类似git difftool SOME_DIR
或的命令git difftool SOME_FILE
,以查看自上次提交以来我在该目录或该文件中所做的更改。这种缺失的自动补全意味着我每次都必须输入 SOME_DIR 或 SOME_FILE 的全名。
有没有办法通过某种方式将文件/文件夹完成添加到鱼的完成中来解决这个问题git difftool
?
解决方案
这应该可以解决问题:
complete -c git -n '__fish_seen_subcommand_from difftool' -a '(__fish_complete_path)'
至于永久保存,将这一行放入~/.config/fish/completions/git.fish
将禁用 git 的所有其他完成。因此,您必须首先获取默认完成:
# ~/.config/fish/completions/git.fish
source $__fish_data_dir/completions/git.fish
complete -c git -n '__fish_seen_subcommand_from difftool' -a '(__fish_complete_path)'
此外,如果是目录, Alt+ L(绑定到__fish_list_current_token
)将列出光标下令牌的目录内容,否则列出当前目录的内容,如果 的正常完成git difftool
是全屏并且您想快速浏览一下偷看文件。
推荐阅读
- javascript - 为什么 Vue.js :class 在依赖于列表项属性时不起作用?
- angular - 无法使用 go lang 设置 Cookie
- spring - @PreAuthorize 不适用于 oauth2 外部服务器
- ios - 如何在 iOS Swift 5 的 Splash (Launch) Screen 上显示警报
- arrays - 如何在 Kotlin 中从用户创建和打印数组
- sql - 从 Oracle 迁移到 PostgreSQL 时 ORDER 兄弟姐妹 BY 和 rownum
- spring-boot - `SolrRepositoryFactoryBean` 在 bean 初始化期间未初始化 SolrOperations/SolrTemplate
- angular - 在 Angular 中使用 google 登录时出现 attachClickHandler 错误
- c++ - 如何在 C++ 的 main 中使用结构的数组数据成员?
- .net - Visual Studio 2019 安装程序错误“源布局目录太长”