Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Zshには様々な機能を付与するプラグインだけでなく、瞬時にコマンドラインの見た目を変えてくれるテーマという設定ファイル群がたくさんあります。そんな中でも「Powerlevel10k」 という処理速度と柔軟性に重点を置いて開発されている有名なテーマです。今回はこの Powerlevel10k の導入と設定をご紹介します。 前回ご紹介した「Powerlevel9k」が公式でサポート外となり非推奨になり、「Powerlevel10k」のほうが高速だという情報を目にしたので遅ればせながら移行にしました。ここでは Linux システムへ導入しますが macOS や WSL への導入にも応用できるはずです。 導入方法は公式の英語 GitHub を読んだほうが確実なので英語を読解できる人はそちらを見ることをおすすめします。 GItHub──https://github.com/romkatv/powe
ある日zshの履歴が消えた悲しみからいくつか課題感を持っていた。 巨大な1ファイルにどんどん書いていくので、壊れたときの影響が大きい 追記方式なので、複数の端末で共有するためGitやDropboxなどに入れるとコンフリクトしやすい 履歴から取り出すときにどのディレクトリで実行したコマンドなのかわからない シェル履歴をファイルに書いて終わりという暮らしは数十年変わっていない。 履歴はクラウドサーバーに保存して、補完したいときにAPI経由で問い合わせるというアーキテクチャが良いと思ったので、作ってみた。 github.com コマンドの実行時 zshのフックを使って、コマンドの実行時に、実行したコマンドと$pwdをAPIにPOSTする Cloud Functionsが立っていて、送られたコマンドをCloud Datastoreに保存する Cloud FunctionsはGoogle製のAWS
私達の使うアプリケーションは色々な音を出します。通知やエラーを知らせる効果音、たまにジングル (短かい音楽) を鳴らすものもあります。好みや事情によって無効にしている人も少なくないと思いますが、個人的には鳴らせるときには鳴らす方が好みです。なので、毎日使うアプリケーションのひとつであるシェルからも音が出ると楽しいのではないかと思います。例えば、コマンドを実行するときに効果音を出してみたり、失敗したとき ($? -ne 0) には悲しい感じの音が出るとか。もっと発展させて、状況に応じてリアルタイムにサウンドを作り出すとか。 そんな「音の鳴るシェル」作りの一環として、今回はコマンド実行の前後で音を出す方法を考えてみます。どうすればコマンドを叩くタイミングで任意の処理を実行できるのでしょう。1年くらい前に シェルを操作する 記事を書きました。この方法ではシェルの入出力を操作できますが、シェル上で
dotfilesいじりが趣味の岩下(@ToruIwashita)です。 今回はzshの補完でこんな感じの動きをさせる話です。 はじめに みなさんはタイポに悩まされる事はありませんか?僕はタイピングする度にタイポを繰り返し、やりたい事をやるための入力に手間取ることに悩み、日々ストレスを感じています。 タイポしないとか、やりたい事をサクッとやるためにはどうしたら良いのか。その答えはタイピングをしない事だと思います。 もし自分の頭とPCをつなげて指を動かさずに入力できたなら、タイポのストレスから開放されるはずなので、早くそういう未来が来ることを切に願います。 が、夢見ているだけでは目の前のストレスは消えないわけで。今現在はそういう技術がまだ手元にないし、じゃあ極力タイピングをしないようにしようと、日々改善活動を行っています。 今回はその活動(dotfilesいじり)の中で、gitに関連する操作の
mput さんの記事→ https://moneyforward.com/engineers_blog/2016/03/15/dotfiles/ を見て、zplug というものの存在を知った。 zplug を設定しようと思ったが、そもそも zsh の設定をこまごまとやるのがあんま好きじゃないし、コマンドのインストールとかまで出来るのが zplug だということで、ややオーバースペックに感じた。 いろいろ見ていると zgen というのが好みにあってる感じっぽかったので zgen にした。 source "${HOME}/.zgen/zgen.zsh" if ! zgen saved; then zgen oh-my-zsh zgen oh-my-zsh plugins/git zgen oh-my-zsh plugins/ssh-agent zgen load zsh-users/zsh-s
小手先では、サーカムフレックスをエスケープすれば問題ないのですが、釈然としない… 原因 setopt extendedglob すると、サーカムフレックスがファイル名のパターンマッチに使われるようになります(引用の1)。 そして、パターンマッチしてファイルが見つからなかった時アボートする(引用2)、という振る舞いが合わせ技として効いているようです。 対処 エスケープし続ける tig したり、一覧性のよいフロントエンドが使えるならそうすればいいんじゃね? サーカムフレックスじゃなくて"~"(チルダ)を使う コメントいただきました。daimatz さん、ありがとうございます! zle を駆使する 工夫と趣向と分別と。で紹介されていた git-escape-magic を使うとか 制服ガール(コメントで教えていただきました。tunepolo さん、ありがとうございます!) setopt no_n
cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq 0) && (${#FUNCNAME[*]} -eq 1) ]]; then history -s cd $(printf "%q" "$PWD") fi return $s } fi いくつかの重要なポイントを以下に記す。 cdの定義を上書きしているが、このような場合中で普通にcdを呼ぶと再帰してしまうためcommand組み込みコマンドを使う。 "$@"の代わりに"$1"を使うことはできない。cdを引数なしで呼んだときホームディレクトリに移動しなくなってしまう。 cdの
背景 oh-my-zshは大変便利で、便利ではあるけど複雑怪奇なzshの設定を簡単に済ませることができるようになりました。 しかし、気の赴くままにpluginを追加していると、起動が重くなったり補完が重くなったり徐々に使いづらくなってしまいます。初回の起動が重いのはscreenやtmuxを活用してつぎつぎzshを起動・終了している人にはじわじわ効いてきますし、補完が重いのはとてもつらいものです。 また、oh-my-zshのpluginには、元のrepositoryからsourceを持ってきたまま放置されているものもあります。例えば、oh-my-zsh/plugins/zは2014-04-11時点では本家のrupa/zより古く、更新されてないことが伺えます。 oh-my-zshはいろいろつらさもあることは分かった、しかしoh-my-zshを捨てて一からzshを設定するのはつらい……。そんな方
とある方の "エンターだけで ls と git status 表示するようにしてある" というつぶやきを見て便利そうだと思ったのでやってみました。 基本的なやり方は以下の記事が参考になりました。 zshでコマンドが空の状態でenter押したときに任意のコマンドを実行する方法 - kei_q ただ、上記方法では私の環境の場合、プロンプトが1回余分に表示されてしまって気持ちが悪いので、その辺りも手を加えました。 Installation 以下スクリプトを .zshrc に記述すれば、何も入力されていない状態で Enter を打つだけで ls と git status が表示されるようになります。 function do_enter() { if [ -n "$BUFFER" ]; then zle accept-line return 0 fi echo ls # ↓おすすめ # ls_abb
2014-09-02更新:pcre モジュールを使わないバージョンに差し戻し 以前のエントリで掲載したコードを改良して、 git の作業状態(merge がコンフリクトで中断してるとか interactive rebase 中だとか)も表示するようにしてみた。 以前のこれに加えて merge 中はこんなんなります。 つまり、 作業ディレクトリがクリーンなら緑 追跡されていないファイルがあるときは黄色 追跡されているファイルに変更があるときは赤 変更あり+未追跡ファイルありで太字の赤 merge や rebase の途中ならカッコ内に表示 です。 コード autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2> /dev/null function rprompt-git-current-branch { local name
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く