Bash shell tab 补全,不要展开~

Joh*_*han 13 bash autocomplete

Tab当我使用 shell (bash) 时,我经常使用密钥。

但我很恼火,~总是扩展到/home/"user". 我不认为它一直都是这样;有没有办法阻止这种行为?

一个例子:

  1. cj@zap:~$ ls ~/
  2. Tab
  3. cj@zap:~$ ls /home/cj/

我想继续拥有~/而不是结束/home/cj/

Joh*_*n T 11

禁用波浪号扩展是快速且轻松的。打开~/.bashrc并插入:

_expand()
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这将覆盖/etc/bash_completion. 如果您希望将来进行扩展,我建议您评论它在函数上方的作用。更改将在新实例中生效。

  • @约翰:不应该是真的。`true` 返回成功结果,成功结果为 0,所以在退出状态下 `return 0` 等于 `true`,而 `return 1` 等于 `false`。试试`true; echo $?` 和 `false; 回声 $?`。 (2认同)

小智 7

使用较新的 bash_completion,您似乎还需要覆盖 __expand_tilde_by_ref:

__expand_tilde_by_ref() {
  return 0
}
Run Code Online (Sandbox Code Playgroud)