利用fzf模糊查找实现conda环境激活的自动提示和补全

10 篇文章 0 订阅

利用fzf模糊查找实现conda环境激活的自动提示和补全


动机

多数情况下,我们会创建多种 conda 环境适用于不同的运行场景,提高整体的内存占用效率。对于 conda 环境管理,我们一般采取两种不同的管理方式:一种是直接放置于默认路径方便集中式管理,另一种则是创建于特定的项目文件之中。

在一般的使用场景下,对于包含在项目文件中的 conda 环境,我们无需对环境进行特殊命名和记忆,因此也没有环境名提示和补全的需求。但对于创建在默认路径下进行集中管理的环境包,其命名是区分不同运行环境的唯一标识,我们需要通过 conda activate envname 对环境进行激活,而实现 envname 的自动提示和补全可以提升这一过程的效率。

当我们不能清楚记忆一些环境包的命名时,可能会采取以下方案:

  1. 使用 conda info --env 命令显示所有的环境包,再手动输入目标环境的命名;
  2. 部署 zsh-auto-suggestion 等类似的命令行自动补全工具,在首次执行时手动输入,日后利用 buffer 实现补全(可能出现记忆 typo 命令、近似命令的情形,需要将所有可能用到的环境包手动输入后存为 buffer);
  3. 类似 command-line history 查找,通过 fzf 使用 ctrl + R 实现历史检索并补全;

这一博客提供一种开箱即用的解决方案,在键入特定命令后直接利用 fzf 查找工具选择目标环境包实现一种快速的无需准确键入的激活过程。


解决方案

.bashrc.zshrc 中加入如下 function,并激活(source ~/.zshrc):

function condaf() {
  conda activate $(conda info --env | fzf | awk '{print $NF}')
}

使用

$ condaf

命令解释

  1. 首先执行 conda info --env 标准输出所有集中管理的环境包信息;
  2. 利用 fzf 模糊查找目标环境包;
  3. 利用 awk 选择输出环境包路径所在的 field ;
  4. 执行激活命令;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值