Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに fish shellでのプラグイン管理にはこれまでfishermanを使っていたのですが,他のプラグインマネージャにはどんなものがあるんだろう? と気になって調べてみたのでまとめます. 今回調べたのは以下の4つのプラグインマネージャです. omf (oh-my-fish/oh-my-fish) fisher (fisherman/fisherman) fundle (tuvistavie/fundle) fresco (masa0x80/fresco) omfはOh My Fish!(oh-my-fish)というフレームワークに付属するもので,単なるプラグインマネージャではありませんが一緒に比較することにします. プラグインマネージャの比較 まず,プラグインマネージャの主要な機能についてまとめます. 並行処理 関数の管理 補完の管理 キーバインド 初期設定ファイル テーマとプラグ
とりあえずデモをご覧ください。 これはなに? CLIを普段からご利用の方にはおなじみのいつものやつです。 なんとなく思い立ってfish shellを使ってみよう!となったのですが、zshでenhancdに甘えきってしまっていた身としては、zとかautojumpなんて今更使ってられないわけです。 なんか代替ツール無いのか・・!と思って色々探しはしたものの、満足できそうなプラグインは見つけられず、しゃーなしで自作してしまった、という感じです。 で、どうせ作るならと思い、mollifier/anyframeとb4b4r07/enhancdを足して3で割ったくらいの機能にしてみました。 機能的にはanyframeのfish版という感じなので、 ANYFrame For Fish shell 略してanyfff、と名付けました。 なにができるの? コンセプト的にはanyframeとだいたい同じなので
まとめ frescoというプラグインマネージャーを作りました frescoではghqを使ってプラグインを管理します fishermanと異なりシンボリックリンクは作りません これまでのあらすじ fishを使う上で、$HOME/.config/fish/functions/配下のファイルの管理について下記の点が気になり始めました。 $HOME/.config/fish/functions/配下にファイルがフラットに配置されている 複数のfunctionが連携して別の機能を実現している場合に、どのファイルが連携しているのかわかりにくい プラグインマネージャーを使うとプラグインという論理的な単位で管理することができますが、fishermanを使ってプラグインをインストールすると$HOME/.config/fish/conf.d/や$HOME/.config/fish/functions/といった
まとめ zshからfishに乗り換えました 移行時にハマった点を紹介します 高機能なzshの全体像を把握できていない人にはfishは良い選択肢です これまでのあらすじ zshは名前に Z がついていてカッコいいですし、自分好みの設定をコツコツ作り上げていく楽しみがある反面、多機能で何がどうなっているのかわかりにくい部分があります。一方fishは、名前が魚を意味する単語でカッコ良さの欠片もありませんが、ゲーム開始直後にコナミコマンドで最強装備にするように、インストール直後の状態でもシンタックスハイライトや補完が有効な状態になっていますし、更に設定を追加することで、より自分好みに改善するという余地まであります。 fishについては以前から気になっていましたが、普段の作業はzshでも問題なく行えていましたし、何と言ってもシェルを変更するというのは一大事ということで踏みとどまっていました。しかし、
fishを設計するための設計原理を述べます。 fishの設計は3つの高いレベルの目標があります。 これらは、 他のシェル言語で行えるすべてのことがfishでも行えるようにすべきです。たとえ外部コマンドに頼ることになろうとも。 fishはユーザフレンドリーであるべきです。ただし、表現力を犠牲にすべきではありません。表現力と使い易さの間のトレードオフは慎重な設計で回避できます。 可能な限り上記の目標を崩すことなく、fishはPOSIXの構文に従うべきです。 これらの高レベルな目標を達成するために、fishの設計はいくつかのより具体的な設計原理に依存します。 以下に根拠といくつかの例を用いてそれらを示します。 シェル言語は少数の直交した機能を持つべきです。 同類だが同一ではない2つの機能が存在する場合は、どれか1つは削除されるべきです。 残った1つの機能はより高機能かつ、どちらの機能の一般的なユ
デフォルト の設定が貧弱→fishならば 無設定で便利機能満載 シェルスクリプト が苦手→fishスクリプトならば シンプル でわかりやすい 無駄に 多機能 で覚えきれない→fishは必要な機能を 厳選 している マニュアルが わかりづらい →fishのマニュアルは 具体例満載 でわかりやすい 設定ファイル を書くのが面倒→fishならば Webブラウザ で設定できる! 補完設定 を書くのが面倒→fishならばmanページを解析して 自動で 補完設定をしてくれる シングルクォート 中にシングルクォートを書けない→fishならば \’ と書ける 関数や環境変数を保存 するのに設定ファイルの書換えが面倒→fishならばその場で 永続化 できる 和訳 マニュアルがない→fishの 最新版公式文書を全訳済 他にもこんな便利機能があります。 Webブラウザのような Auto suggestion ま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く