主要观点:作者分享了对 Fish 外壳的喜爱,包括其无需配置、自动建议、粘贴多行命令、良好的 tab 完成、默认提示、历史默认设置、搜索历史、防止终端损坏、禁用 Ctrl+S、语法高亮、更简单的循环和多行编辑等功能,同时也提到了一些缺点如部分工具无 Fish 集成和 fish_add_path
的问题,还介绍了 Fish 在 POSIX 兼容性和作为默认 shell 方面的情况,以及自己未深入学习 Fish 脚本语言但感觉 Fish 越来越受欢迎并探讨了适合使用 Fish 的人群。
关键信息:
- 无需配置:10 年使用未发现需配置之事,配置简单但未详细说明。
- 自动建议:输入时自动建议近期运行命令,按右箭头接受或继续输入忽略。
- 粘贴多行命令:避免误运行所有复制的命令,在单个提示符下显示。
- 良好的 tab 完成:显示文件名网格,可通过 Tab、Shift+Tab 或箭头键导航,可从文件名中间开始完成。
- 默认提示:包含用户名、主机名、当前文件夹、git 集成等。
- 历史默认设置:默认历史大小 256,000 命令,新标签打开时立即可用历史,现有会话中搜索仅包括当前会话及启动时的历史。
- 搜索历史:按上箭头可搜索历史,如编辑 fish 配置文件。
- 防止终端损坏:每次显示提示符时尝试修复终端,避免因
cat
二进制文件导致终端损坏等问题。 - 禁用 Ctrl+S:避免终端冻结。
- 语法高亮:不存在的命令以红色突出显示。
- 更简单的循环:循环语法更易输入,会添加缩进。
- 更简单的多行编辑:可轻松编辑多行命令,从历史中获取多行命令时显示方式不同。
- Ctrl+左箭头:用于在写命令时在单词间移动。
- 缺点:部分工具无 Fish 集成,
fish_add_path
有时难以确定更新范围及删除目录困难。 - POSIX 兼容性:近年来开始接受更多 POSIX 风格语法。
- 作为默认 shell:更改默认 shell 较麻烦,有相关建议。
- 未学习脚本语言:仅偶尔在命令行写循环,未写函数或
if
语句。 - 越来越受欢迎:在 Mastodon 上的调查显示 16%的人使用 Fish。
- 适合人群:不喜欢配置、默认设置好、无需大量上下文切换、愿意重新学习一些基本 shell 操作的人。
重要细节:
- 自动建议中,如输入“v”会猜测再次运行上次的 vim 命令。
- 粘贴多行命令示例中展示了 bash 和 Fish 的不同处理方式。
- 历史默认设置中详细说明了不同情况下历史的处理方式。
- 搜索历史示例中从输入
config.fish
到获取完整命令。 - 防止终端损坏的相关代码位置。
- 关于
Ctrl+left arrow
快捷键在不同系统和终端模拟器中的情况。 - Fish 集成在 Python 的 virtualenv 中已有很长时间。
- 更改默认 shell 过程中可能出现的问题及解决建议。
- Mastodon 调查的具体结果及相关链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。