如何将文件/文件夹完成添加到git命令的fish shell中?
我正在使用fish shell 3.1.0 当我键入如何将文件/文件夹完成添加到git命令的fish shell中?,git,autocomplete,fish,Git,Autocomplete,Fish,我正在使用fish shell 3.1.0 当我键入git difftool并点击tab时,它会给出本地分支、远程分支、HEAD和ORIG_HEAD的列表,但不会给出当前工作目录中的文件和目录列表 我非常非常频繁地运行一个命令,如git difftool SOME_DIR,或git difftool SOME_FILE,以查看自上次提交以来我在该DIR或该文件中所做的更改。缺少自动补全意味着每次我都必须键入某个\u目录或某个\u文件的全名 有没有办法通过某种方式将文件/文件夹完成添加到fish完
git difftool
并点击tab时,它会给出本地分支、远程分支、HEAD和ORIG_HEAD的列表,但不会给出当前工作目录中的文件和目录列表
我非常非常频繁地运行一个命令,如git difftool SOME_DIR
,或git difftool SOME_FILE
,以查看自上次提交以来我在该DIR或该文件中所做的更改。缺少自动补全意味着每次我都必须键入某个\u目录或某个\u文件的全名
有没有办法通过某种方式将文件/文件夹完成添加到fish完成的
git difftool
?这应该可以做到:
complete-cgit-n'\u fish\u seen\u子命令\u from difftool'-a'(\u fish\u complete\u path)'
至于永久保存,将这一行放入~/.config/fish/completions/git.fish
将禁用git的所有其他完成。因此,您必须首先获取默认完成项的来源:
#~/.config/fish/completions/git.fish
source$\uuuu fish\u data\u dir/completions/git.fish
complete-c git-n'u fish_seen_子命令_from difftool'-a'(u fish_complete_path)'
此外,Alt+L(绑定到
\uuuu fish\u list\u current\u token
)将在光标下列出该token的目录内容(如果它是目录),否则,当前目录的内容将非常有用,如果正常完成的git difftool
是满屏的,并且您希望快速查看文件。我终于开始测试了。这似乎没有帮助。无论是临时命令还是添加git.fish
都没有解决这个问题。在修改了git.fish
之后,我断开了与远程服务器(SSH)的连接,并重新连接,有效地重新运行了fish,fish应该已经重新读取了该文件。没有帮助。还有其他建议吗?完成文件最初不会加载,一旦在命令后点击tab键,它们就会被读取,然后被缓存。但如果完井根本不起作用,我不确定问题出在哪里:/