You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Bash设置自定义按键触发的文件目录自动补全

自定义Bash文件/文件夹简易补全按键

步骤1:编写自定义补全函数

创建仅针对文件和文件夹的补全函数,利用compgen -f生成匹配项,同时处理命令行内容与光标位置:

simple_file_complete() {
    local line="${READLINE_LINE}"
    local point="${READLINE_POINT}"
    local prefix="${line:0:point}"
    local completions=$(compgen -f -- "${prefix}")

    if [[ -n "${completions}" ]]; then
        local first_completion=$(echo "${completions}" | head -n1)
        if [[ "${completions}" == "${first_completion}" ]]; then
            # 仅单个匹配项,直接替换当前前缀
            READLINE_LINE="${first_completion}${line:point}"
            READLINE_POINT="${#first_completion}"
        else
            # 多个匹配项,先列出所有结果,再恢复当前输入
            echo -e "\n${completions}"
            echo -n "${PS1}${line}"
            READLINE_POINT="${point}"
        fi
    fi
}

步骤2:绑定按键到函数

将你指定的按键(这里用反引号)绑定到上述函数,通过bind -x`实现按键触发:

bind -x '"\`":simple_file_complete'

步骤3:让设置永久生效

把上述函数和绑定命令添加到~/.bashrc文件末尾,执行以下命令使更改立即生效:

source ~/.bashrc

额外说明

  • 如果需要更换触发按键,比如换成F12,只需修改绑定命令为:bind -x '"\e[24~":simple_file_complete'
  • 若希望更贴近默认补全的多选交互,可调整函数逻辑,比如用select让用户手动选择匹配项

内容的提问来源于stack exchange,提问作者Svalorzen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:46:01