最近刚好把系统进行降级,昨天装了Yosemite,备忘录没法同步,今天又装回El capitan,那么就顺便写一下一直使用的oh my fish安装和简单使用教程,毕竟博客荒废了很久-。-


相关链接:

  1. Homebrew
  2. fish shell
  3. oh my fish

目前我重新安装的版本分别是 Homebrew 1.5.13,fish, version 2.7.1,Oh My Fish version 6,如有变化请以官方文档为主。

第一步,安装brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第二步,安装fish shell

brew install fish

安装完之后要切换shell到fish,编辑 /etc/shells,添加:

/usr/local/bin/fish

之后再运行:

chsh -s /usr/local/bin/fish

第三步,安装oh my fish

curl -L https://get.oh-my.fish | fish

ok,搞定了~


基本用法

omf(oh my fish)是基于fish shell的框架,提供插件跟主题,具体使用方式:

  1. omf update [omf] […] //更新
  2. omf install [|] //安装
  3. omf repositories [list|add|remove] //管理用户安装的包仓库
  4. omf list //显示安装的包
  5. omf theme //设置主题,可查看主题列表https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md
  6. omf remove //移除
  7. omf reload //重载omf和所有插件
  8. omf new pkg | theme //编写自己包或主题
  9. omf search -t|–theme / -p|–package //搜索主题或者包
  10. omf channel
  11. omf doctor //不用说了,检查健康
  12. omf destroy //删除omf

其他用法

$OMF_CONFIG 这个是omf的配置目录,里面有主题插件的目录,但主要说下三个fish的脚本(若没有可自行创建),语法跟fish是一样的。
init.fish - 自定义shell启动后加载的脚本
before.init.fish - 自定义shell启动前加载的脚本
key_bindings.fish - 自定义快捷键绑定

一般我们需要export的东西,别名(alias)只需要写在init.fish脚本里,这里简单说一下fish的语法吧。

export

举个例子,如果我要export composer的vendor bin路径到全局去,一般我只要运行export PATH=”$PATH:$HOME/.composer/vendor/bin”,那么在当前终端生效了,如果要写进配置的话,fish是这样写的:

cd $OMF_CONFIG
vi init.fish
set -xg PATH $PATH $HOME/.composer/vendor/bin

这里是g是global,x是export。

再例如我要设置http_proxy/https_proxy:

set -xg http_proxy http://127.0.0.1:1087
set -xg https_proxy http://127.0.0.1:1087

等同于 export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;

alias

设置别名就简单了, alias NAME = ‘command’,举例:

alias ip='curl -i https://ip.cn'

那我在终端输入 ip 就等同于 curl -i https://ip.cn

写完脚本后运行下面命令的就生效了:

source $OMF_CONFIG/init.fish

ok! it’s all done~