タグ

zshに関するtmsanrinshaのブックマーク (80)

  • zshのプロンプトにpyenv(Python)の状態を表示する - よんちゅBlog

    久々なのでひっそりと更新 リハビリも兼ねて軽めのものを1つ。 はじめに 最近重い腰をあげてようやく Python の開発環境をpyenvに移行しました。 yyuu/pyenv yyuu/pyenv-virtualenv yyuu/pyenv-pip-rehash まだ使い始めたばかりですがなかなかの好感触。 ただ、pyenv を使ってて気になったのが、現在どの Python を使っているのかが分かりづらいという点。 よくあるPATH書き換え方式ではないので、which(type) コマンドでパスを見ても分からないんですよね。 最初仕組みを理解してなくて悩んでしまいました… $ pyenv version system (set by /Users/yonchu/.pyenv/version) $ which python /Users/yonchu/.pyenv/shims/python

  • https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org

    https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org
  • zsh補完関数の書き方(訳)

    by John Beppu translated into japanese by Jun Mukai このコラムを読んで数ヶ月もしないうちに、あなたは zsh の途方もないタブ補完システムについて学んでいるだろう。自分の $HOME/.zshrc ファイルに次の2行を足すだけで、タブキーでファイル名を拾うだけでなくて、コマンドラインオプションも持ってくることができる。 autoload -U compinit compinit ある Linux コマンドに対するコマンドラインオプションのリストを提供するために、 zsh はそのコマンドに対応した補完関数を実行する(つまり、 ls とタイプしてタブキーを押したら、 zsh は ls の補完関数を実行するのだ)。個々の補完関数はコマンドのオプションをリストアップし、どのオプションが引数を要求するか提示してくれる。補完関数はコンテキスト依存に

    tmsanrinsha
    tmsanrinsha 2017/06/30
    -gはglob
  • zsh の右プロンプトを2行にする - Qiita

    RPROMPT には改行を入れられない zsh で右プロンプトに情報を表示するときには RPROMPT 環境変数を使います。 しかし、RPROMPT には改行を含めることができません。左プロンプトは行けるのに……。 # 2行表示される PROMPT=$'top left\nbottom left %# ' # 何も表示されない RPROMPT=$'top right \nbottom right' # プロンプトの表示直前に毎回実行される precmd() { local left="top left" local right="top right " # $left と $right の間をスペースで埋めて表示 print -P $left${(r:($COLUMNS-${#left}-${#right}):: :)}$right } PROMPT=$'bottom left %# '

    zsh の右プロンプトを2行にする - Qiita
  • zleを使わないでコマンドラインに値を入力した状態にする - Qiita

    tl;dr print -z をつかう。 きっかけ percol/pecoってすごく便利なので、絞り込みを行うshellの関数をたくさん定義したい。 けど、コマンドラインに値を設定するためにzle -Nとbindkeyを使ってショートカットキーを登録することが前提になっている。 http://weblog.bulknews.net/post/89635306479/ghq-peco-percol たくさんの人が参照していそうなところからサンプルをいただくとこんな感じ。 function peco-src () { local selected_dir=$(ghq list --full-path | peco --query "$LBUFFER") if [ -n "$selected_dir" ]; then BUFFER="cd ${selected_dir}" zle accept-

    zleを使わないでコマンドラインに値を入力した状態にする - Qiita
    tmsanrinsha
    tmsanrinsha 2017/05/07
    print -z
  • Profiling ZSH startup time | Kevin Burke

    Recently I had a very weird problem with iTerm where new login shells were being created with environment variables already present. Restarting my machine made the issue go away, and I wasn't able to reproduce it again. But I got curious about how long ZSH spends in various parts of the startup process. A new /bin/bash login shell loads instantaneously and I was wondering why my ZSH startup was so

  • git statusを利用したリポジトリ情報のプロンプト表示 - GeekFactory

    zshでGitのステータス情報をプロンプトに表示するにはvcs_infoを使う方法が一般的ですが、vcs_infoで得られる情報には限りがあります。そこで、git statusを使ってプロンプトを表示する方法を調べてみました。なお、OS XのGit 2.3.2で確認しています。 git statusで得られる情報 git status --porcelain --branch を実行するとブランチ、ワーキングツリー、インデックスの状態が得られます。--porcelainを付けることで機械処理に適したフォーマットが得られます。このコマンドの実行結果は下記の2つの部分で構成されます。 ローカルブランチの状態(1行目) ローカルブランチの状態 表示 リモートブランチと同期している ## master...origin/master リモートブランチより古い ## master...origin/

    git statusを利用したリポジトリ情報のプロンプト表示 - GeekFactory
  • golang で zsh history を SQL 的に活用する - tellme.tokyo

    僕は開発中、zsh のヒストリー補完の機能をよく使います。具体的には次のような場面が多いです。 多用するコマンド 結局開発中に使うのはエディタ (vim) と git サブコマンドに集中する ちょちょいと ^N (↑) で履歴をさかのぼる alias がイケてない場面 「エディタで .zshrc 開いて追加してリロード」が面倒で後回ししがち そして登録せずに終わる の繰り返し… うろ覚え程度のコマンドの alias 名はもはや思い出せない 結局エディタ開いて見直したり、^R で遡ることに挑戦する 長いコマンド列になるとき 引数が多いとき、多段のパイプで繋いだとき 例えば、複数のパラメータを与えたときの curl コマンド Ctrl-r (history-incremental-search-backward) よるヒストリーサーチが便利なのはよく知られたことですが、それに加えて peco

    golang で zsh history を SQL 的に活用する - tellme.tokyo
  • Re: ZSH History

  • zshでエラーや時間のかかる処理後に通知センターで通知するようにする - 僕のYak Shavingは終わらない

    ※現在最新版のMavericksだとterminal-notifierが動かないかも・・・ 最近やっと山ライオンを使い始めました。 TDDのときにprove+Guard+通知センターで捗る感じにしてましたが、そういえば昔はGrowl使ってたなと。 zshでエラーの時にGrowlで通知するようにする - 僕の車輪の再発明 で、今はこれだとエラーが出てしまっている状態でしたのでサクッと通知センターに変更しました。 ここを見て変更しただけです。 install 通知センターをターミナルで使うためのコマンドをhomebrewでインストールします。 brew install terminal-notifier 使い方 terminal-notifier -message Javaだいすき エラー時に通知 .zshrcに以下を追加 PROMPT='`exitStatus=$?;if [ ! $exit

  • Linuxでextglobを有効にして「指定したパターン以外のファイル」を指定する | 俺的備忘録 〜なんかいろいろ〜

    仕事などで日常的にLinuxを利用しているのであれば、ほぼ大半の人がglobを利用した事があるだろう。 globという名前にはあまり馴染みが無いかもしれないが、以下のようにワイルドカードや複数のファイル名を指定したりする機能は使ったことがあるはずだ。 例)「/work」フォルダ配下のファイルを「/work2」に移動する mv /work/* /work2/ 例)「/work」フォルダ配下の「aaa.txt」「bbb.txt」のみを削除する rm /work/{aaa.txt,bbb.txt} このような指定方法を可能にしているのがglobという機能になる。 そんなglobを拡張したのが、今回紹介するextglobだ。 このextglobを利用すると、globでは指定が難しかった事、例えば"特定のフォルダ以外を指定する"といった事が簡単に行える。 bashやzshで有効になっているかどうか確

    tmsanrinsha
    tmsanrinsha 2017/01/01
    以外
  • `setopt auto_param_keys` 〜 「カッコの対応などを自動的に補完」の謎 - Qiita

    こんにちは.現実逃避に他の人の .zshrc を参考にしながら書き足していたら謎な設定項目に出くわしたのでその解説をしようと思います. その設定とはタイトルにもある AUTO_PARAM_KEYS のことです.setopt auto_param_keys でググると,以下のようなコメントが付記された皆さんの .zshrc がヒットします.揃いも揃って同じ文言です;何せ皆さんコピペしますからね:) ここでタブを連打してみます. ……閉じカッコの補完を有効化するわけではなさそうですね.どのタイミングでも普通の補完候補しか出てきません.困ったときの man zshoptions です. AUTO_PARAM_KEYS <D> If a parameter name was completed and a following character (normally a space) automat

    `setopt auto_param_keys` 〜 「カッコの対応などを自動的に補完」の謎 - Qiita
  • コマンドライン編集機能 Zsh Line Editor を使いこなす - Qiita

    Zsh Line Editor ってご存じですか。 皆さん使っているであろう、「Ctrl-A で行頭に移動、Ctrl-E で行末に移動」とかのアレである。zsh の持つコマンドライン編集機能を ZLE(Zsh Line Editor )と呼ぶ。ZLE でコマンドライン操作体系として Emacs ライクなものと vi ライクなものが選択できるようになっている。また、ZLE ではデフォルトで 4 つのキーマップ(キー割り当ての集合)が開放されている。 emacs(Emacs ライクなキーマップ) viins(vi のインサートモードのキーマップ) vicmd(vi のコマンドモードのキーマップ) .safe(カスタマイズが禁止されているキーマップ) これらとは別に main というキーマップがあり、ZLE では main に紐付いたキーマップをデフォルトキーマップとして使用する。 zsh では

    コマンドライン編集機能 Zsh Line Editor を使いこなす - Qiita
  • zsh のあまり知られていなそうな機能 - Qiita

    自分が使っている便利な機能を紹介 $ rm */(-@) ファイル修飾子は使っている人も多いはず。 zsh で find を使わずに簡単にファイルを絞り込む *(@) でシンボリックリンク *(-@) でリンクが切れたシンボリックリンク rm **/*(-@) で下位階層含めたリンク切れのシンボリックリンクの削除 修飾子で他に便利なのは *(-ch-1) シンボリックリンクのリンク先が1時間以内に作られたファイル *(U) 自分のファイル *(u:hoge:) ユーザ hoge のファイル *(/^F) 空のディレクトリ $ tkdiff =(zcat xxx.gz | cut -f 1) =(zcat xxx.gz | cut -f 2) プロセス置換 <(zcat xxxx.gz | grep yyyy | cut -f 2 ) みたいな形でわざわざ一時ファイルにしなくても、ファイル指

    zsh のあまり知られていなそうな機能 - Qiita
    tmsanrinsha
    tmsanrinsha 2016/02/11
    cd old new
  • zshのurl-quote-magicでURL文字列を自動エスケープ - 技術メモ帳

    URL文字列を自動的にエスケープしてくれる url-quote-magic が非常に "良さげ" である。 たぶん、http:// という文字列で始まる文字列を入力しようとしたときに適用される。 autoload -U url-quote-magic zle -N self-insert url-quote-magic ちょっと試しにやってみよう。 たとえば、以下のURLをコピーしておく。 http://www.google.co.jp/search?hl=ja&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A 通常の状態でペーストしてみると、 案の定おかしな事になる。誰もが期待する結果だ。 john ~[12979]% echo http://www.google.co.jp/search?hl=ja&q=%E3%81%82%E3%81%84

  • おい、Antigen もいいけど zplug 使えよ - Qiita

    注意 この記事はv1の情報となっております。 最新の情報は日語ドキュメントを参考にしてください。 zsh のプラグインマネージャといえば Antigen です。zsh 界隈ではプラグイン文化がそこまで強くない印象を受けます。便利なプラグイン1やコマンド2がたくさんあるのに、Vim のそれほど盛り上がっていないのはプラグインマネージャが弱いからではないでしょうか。 Antigen とその弱点 Antigen はよく使われるし実際便利ですが、いくつかの欠点があります。 プラグインの読み込みが遅いこと プラグインの管理が最低限しかできないこと プラグインが antigen に対応していないといけないこと これらの問題点の幾つかは重厚なる zsh 使いの @mollifier さんも以下のスライドで言及しています。 Antigenを使おう 第二の Antigen 1つ目の問題点は Antigen

    おい、Antigen もいいけど zplug 使えよ - Qiita
  • ターミナルのディレクトリ移動を高速化する - Qiita

    tl;dr よく使われるコマンドの一つに cd コマンドがあります。ターミナル生活の 80% 近くは cd と ls である、という英文記事を何処かで見かけました。それを効率化しようという Tips です。 目的 cd はよく使われるのに使い勝手が悪いコマンドである気がしてなりません。cd コマンドは有効なパス(相対パス、絶対パスは問わず)しか解釈してくれないからです。つまり、存在していて尚且つパスが解決できるものに限るのです。例えば、ホームディレクトリにいるときに、/home/lisa/work/dir に行こうとして cd dir とだけタイプしても no such file or directory (そんなディレクトリは見当たらないよ!)と言われてしまいます。きちんとした経路でなければならないのです。いちいちパスを覚えていない場合や、部分的にしか思い出せない場合には結構面倒ですよね

    ターミナルのディレクトリ移動を高速化する - Qiita
  • zshの名前付きディレクトリがとても便利 - pockestrap

    言いたいことの8割は、zshのの276ページぐらいを読めば大体書いてあります。 名前付きディレクトリの使い方 名前付きディレクトリを使うには、setopt autonamedirsした上で、変数に/から始まる文字列を代入します。 $ setopt autonamedirs $ vim_dir=/usr/share/vim/vim74/ $ cd ~vim_dir このようにすると、vim_dirにすぐ移動できるようになります。 もうひとつの定義方法 ですが、変数を介すのは気持ち悪いですね。 直接名前付きディレクトリを設定することもできます。 $ hash -d vim_dir=/usr/share/vim/vim74/ $ cd ~vim_dir 少しいい感じの定義になりました。 楽をしたい ただ、これだと毎回~を入力しなくてはいけなくて面倒ですね。CDABLE_VARSオプションを指定

    zshの名前付きディレクトリがとても便利 - pockestrap
  • よく使うディレクトリに別名をつける - Qiita

    コマンドに別名をつける方法はよく知られていると思いますが、同じようにディレクトリに別名をつけることができます。 文法 次のようにすると、~エイリアス名 が ディレクトリパス の別名になります。

    よく使うディレクトリに別名をつける - Qiita
  • jsxの zsh補完 - Shohei Yoshida's Diary

    jsxの補完が書きたかったというか、コンマで区切られた値の補完を どうやるんだというのが知りたかったので書いてみました。 コード jsx --helpだけを参考に書いたので問題があるかもしれません。 #compdef jsx _jsx_warn() { local expl warning local -a jsx_warnings jsx_warnings=(all deprecated none) # Ignore existing values compset -P '*,' # Remove already-referenced warnings for warning in ${(s:,:)${IPREFIX}} do jsx_warnings=( ${jsx_warnings:#$warning} ) done _wanted jsx_warnings expl 'warnin

    jsxの zsh補完 - Shohei Yoshida's Diary
    tmsanrinsha
    tmsanrinsha 2015/01/30
    comma, コンマ