当前位置: 首页 > 知识库问答 >
问题:

后端 - 请问 linux complete 补全命令如何实现补全某一个指定的目录列表?

梁楷
2023-06-06

我按照网上的教程在 .bashrc 文件里面定义了一个快捷命令 cw,内容如下:

#函数 cw 是两个小写字母
function cw() {
    cd /yhmweb
    if [ ! -z $1 ] && [ -d ./$1 ]; then
        cd $1
    fi
    ll
}
function _completeCW() {
    ls /yhmweb
}
complete -F _completeCW func

目前输入 cw 能切换到 /yhmweb 目录,但是在任意目录内补全的都是当前目录下的文件列表,我希望的结果是 无论在任何目录的位置,输入 cw 后,然后按 tab 键就补全 /yhmweb 这个目录的目录(排除文件)列表,方便我快速切换到这个目录下的某个子目录内,恳求大神指正,小弟感激不尽。

共有1个答案

洪琦
2023-06-06
function cw() {
    cd /yhmweb
    if [ ! -z $1 ] && [ -d ./$1 ]; then
        cd $1
    fi
    ll
}

function _completeCW() {
    local cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $(compgen -d -- /yhmweb/$cur) )
}

complete -F _completeCW cw
 类似资料:
  • complete命令介绍 linux和mac系统自带的complete命令非常强大,用法例如complete -F _ps ps表示当我们输入ps命令后会执行_ps这个函数来做补全,虽然强大但不容易使用,需要一些辅助工具帮我们做一些封装的工作 安装bash-completion bash-completion是封装了complete命令的一套脚本(也为我们写好了一些常用命令的补全,但还不够) ma

  • 问题内容: 我有兴趣在JFrame中提供自动补全框。触发机制将基于助记符(我认为),但是我不太确定“自动补全框”应使用什么(我希望在用户按下键时对结果进行过滤)。 您将如何实施?某种JFrame还是JPopupMenu? 我想知道这是如何实现的,所以请不要发布指向可用的[J] Components的链接。 问题答案: Sun的教程“使用Swing组件”中提供了 一个自动完成文本区域 的示例 。 它

  • 如果你仍旧希望节约一些打字时间,Atom自带简单的自动补全功能。 通过使用ctrl-space,自动补全工具可以让你看到并插入可选的完整单词。 通常,自动补全工具会浏览当前打开的整个文档,寻找匹配你开始打出来的单词。 如果你想要更多选项,在设置面板的Autocomplete包中,你可以设置为在所有你打开的缓冲区中寻找字符串,而不仅仅是当前文件。 自动补全功能在atom/autocomplete包中

  • <Ctrl+n> 下一个匹配项 <Ctrl+p> 上一个匹配项 您可以在配置文件中定义补全的方式 "自动补全方式:(使用逗号分隔) set complete=k,. " . 当前文件 " b 已被装缓冲区,但是没有在窗口内的文件 " d 在当前的文件中定义和由 #include 包含进来的文件 " i 由 #include 包含进来的文件 " k

  • 本文向大家介绍利用Redis如何实现自动补全功能,包括了利用Redis如何实现自动补全功能的使用技巧和注意事项,需要的朋友参考一下 忘了redis从哪个版本开启,能够根据输入的部分命令前缀给出提示,即自动补全。接下来笔者介绍基于redis实现这个很酷的功能。 about sorted set 假设结果中有mara,marabel,marcela。现在我们输入mar,就能得到这三个名字,并且输出结果

  • 本文向大家介绍让 python 命令行也可以自动补全,包括了让 python 命令行也可以自动补全的使用技巧和注意事项,需要的朋友参考一下 许多人都知道 iPython 有很好的自动补全能力,但是就未必知道 python 也同样可以 Tab 键补全, 您可以在启动 python 后,执行下 这就可以按 Tab 键补全了。 python 自启动 如果您嫌每次都要键入这东西麻烦的话,可以把上边这行写到