10 个版本
0.2.7 | 2023年6月20日 |
---|---|
0.2.6 | 2023年5月23日 |
0.1.3 | 2023年3月20日 |
#2393 in 命令行工具
每月55次下载
220KB
3K SLoC
IntelliShell
像 IntelliSense 一样,但适用于 shell!
IntelliShell 就像是一个命令书签存储库,这样你就不必保持你的历史记录整洁,以便能够使用 ctrl + R
找到有用的东西。
它目前适用于 Bash、Zsh、Fish 和 PowerShell,并且应该与大多数 Linux、Windows 和 MacOS 兼容。
TL;DR
-
安装二进制文件
curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash
-
在终端中输入并使用
ctrl + b
将你的第一个命令添加为书签 -
(可选) 运行
intelli-shell fetch
从 tldr 下载命令 -
按
ctrl + space
开始你的旅程!
特性
- 独立二进制文件
- 自动完成当前输入的命令
- 在命令和描述中进行全文搜索,支持描述中的哈希标签
- 查找并替换当前输入命令的标签
- 编辑书签命令并提供别名
- 非侵入式(内联)和全屏界面
- 从 tldr 页面获取命令进行解析和存储(感谢他们!)
- 便携性。你可以在任何支持的 shell 中使用书签命令,以及在其他地方导出和导入。
安装
请记住在安装后添加一些命令或获取它们!
要跳过配置文件更新,请在安装前将环境变量 INTELLI_SKIP_PROFILE
设置为 1
。
Bash (Linux)
curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash
使用 bash 安装后,它应在任何支持的 shell 中工作。
PowerShell (Windows)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time
irm https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.ps1 | iex
使用 powershell 安装后,它也应适用于 cmd(不带快捷键)。
源代码
要从源代码安装,你需要安装 Rust,建议使用 rustup 进行安装。
cargo install intelli-shell --locked
要启用快捷键,需要额外的步骤
Linux
下载源脚本
-
Bash / Zsh
mkdir -p ~/.local/share/intelli-shell/bin curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.sh > ~/.local/share/intelli-shell/bin/intelli-shell.sh
-
Fish
mkdir -p ~/.local/share/intelli-shell/bin curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.fish > ~/.local/share/intelli-shell/bin/intelli-shell.fish
编辑您的配置文件以加载它
-
Bash / Zsh:
~/.bashrc
,~/.zshrc
或~/.bash_profile
source ~/.local/share/intelli-shell/bin/intelli-shell.sh
-
Fish:
~/.config/fish/config.fish
source ~/.local/share/intelli-shell/bin/intelli-shell.fish
Windows
也下载源脚本
New-Item -Path $env:APPDATA\IntelliShell\Intelli-Shell\data\bin -Type Directory
Invoke-WebRequest -UseBasicParsing -URI "https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.ps1" -OutFile $env:APPDATA\IntelliShell\Intelli-Shell\data\bin\intelli-shell.ps1
编辑您的 $Profile
以执行它
. $env:APPDATA\IntelliShell\Intelli-Shell\data\bin\intelli-shell.ps1
用法
您可以通过运行 intelli-shell -h
查看支持的命令。最常用的独立命令是
intelli-shell fetch [category]
用于获取 tldr 命令并将其存储。 [category] 可以省略或 tldr 的 pages 中的有效文件夹intelli-shell export
用于导出用户书签命令(不会导出 tldr 的命令)intelli-shell import user_commands.txt
用于将命令导入用户类别
快捷键
ctrl + b
书签当前输入的命令ctrl + space
显示当前行的建议ctrl + l
替换当前输入命令的标签esc
清除当前行,如果INTELLI_SKIP_ESC_BIND=1
则可以跳过此绑定
注意:在导航项目时,可以按 ctrl + d
删除选定的建议或使用以下任意一个进行编辑: ctrl + e
,ctrl + u
或 F2
您可以使用环境变量自定义键绑定: INTELLI_BOOKMARK_HOTKEY
,INTELLI_SEARCH_HOTKEY
和 INTELLI_LABEL_HOTKEY
技巧
-
当搜索条件与别名匹配或产生单个结果时,它将自动完成!
- 如果命令包含标签,标签 UI 仍然会显示
-
您可以将常用命令设置为别名以存储某种类型的收藏标签,例如将
cd {{path}}
设置为cd
别名- 您可以经常使用
cd
,但如果按ctrl + space
,它将显示您的“固定”文件夹
- 您可以经常使用
-
长命令甚至函数也可以被书签
- 例如
function custom_echo () { echo "hey: $@"; }; custom_echo {{text}};
- 例如
-
您可以在 '*' :
echo {{*my-secret*}}
之间包装标签以避免存储并保持它们秘密 -
标签建议基于根命令和标签名称存储,这为您提供了灵活的决策能力。
对于这两个命令,将建议相同的图像
docker run{{--rm}} {{--交互式}} {{镜像}}
docker rmi{{--没有-修剪}} {{镜像}}
但是这两个命令将建议不同的卷
docker run--卷{{镜像-1-卷}}镜像-1
docker run--卷{{镜像-2-卷}} -p{{镜像-2-端口}}镜像-2
愿望清单
- 支持标签存储常用标签,并使用专用UI选择它们
- 提高可用性以管理存储的命令(包括别名)
- 支持更多终端
- Fish
- PowerShell
- 导出标签和UI以过滤要导出的内容
- 部署到包管理器
- 使用某些公共/私有Git仓库同步用户书签
替代方案
您可能想看看Marker,它与IntelliShell非常相似,但需要在您的系统上安装Python。
许可证
IntelliShell采用Apache许可证第2版授权。有关完整的许可证文本,请参阅LICENSE。
依赖项
~33–49MB
~824K SLoC