cvs commit ...
我正在运行 Ubuntu 14.04。当我通过 Putty (ssh) 访问服务器时,自动完成功能对或不起作用cvs update ...
,但对于其他命令(例如 nano),它工作正常。
例如,当我在目录中尝试
nano cvsd<<tab>>
这样就完成了cvsdir/
(当然要用实际的文件名来填充)
然而,当我在同一个地方尝试
cvs commit cvsd<<tab>>
什么都没发生。它没有完成。我尝试了不同的位置(对于 cvs 文件夹),但它从来没有工作过。当我输入 时cvs commit cvsdir
,它按预期工作 - 该目录实际上是一个 cvs 目录。
当我尝试时cvs upd<<tab>>
,这已完成cvs update
。我正在查看/etc/bash_completion.d/
,但那里没有太多文件。我尝试将cvs
文件从旧机器(Ubuntu 10.04.4)复制到该目录,但没有任何变化。
我如何确保 cvs 命令的自动完成功能再次起作用?
答案1
我错了 - 下面通过编辑 /usr/share/bash-completion/completions/cvs 修复了这个问题。抱歉
答案2
如果你改变末尾的完整语句
/usr/share/bash-completion/completions/cvs
到
complete -o default -F _cvs cvs
它将再次起作用。
我还没有弄清楚,如何在外面设置它,这样它就不会与将来的更新冲突。
如果在命令行中输入,你会得到错误
bash: completion: function `_cvs' not found
并且它将不再完成 cvs 命令。