我仍然热爱 fish shell 的原因

主要观点:作者分享了对 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 调查的具体结果及相关链接。
阅读 25
0 条评论