タグ

zshに関するHHRのブックマーク (17)

  • zshでfpathからwhichのように検索する話など - @znz blog

    zsh で PATH から which コマンドや type コマンドで実行ファイルを検索するように fpath から autoload される関数の実体を探したいことがあります。 そういうときは ${^fpath}/cdr(N) のように書けば検索できます。 解説 まず setopt の RC_EXPAND_PARAM が設定されていないときには $fpath/cdr で配列の最後だけに /cdr がつくので、 ${^spec} を使ってすべてにつけるようにしています。 最後に (N) で存在するものだけ残すようにしています。 実行例:

    HHR
    HHR 2024/04/17
    fpath ファイルがある場合 echo ${^fpath}/_docker(N) 出力があるが、無い(rdctl completion zsh のようにコマンド生成を読み込んだなど)場合 echo ${^fpath}/_argo(N) 出力が無い
  • zshで過去に切り取った(コピーした)文字列をペーストする - Qiita

    この記事はzsh Advent Calendar 2014 - Qiitaの18日目のエントリです。 zshでcontrol-w(カーソル左の単語切り取り), control-u(一行切り取り), control-k(カーソルから行末まで切り取り), meta-d(カーソル右の単語切り取り)等で切り取った文字列はcontrol-yでペースト出来ます。 で、control-yだと直前に切り取ったものしかペースト出来ませんが、meta-yでそれ以前に切り取った文字列をペーストすることが出来ます(meta-yは「escape押してy」の意味) 使い方は、control-yで直前に切り取った文字列をペーストしてからmeta-yすると、control-yでペーストした文字列がその1回前に切り取った文字列に置き換わります。あとはmeta-y押す度にその前に切り取った文字列で置き換えすることが出来ます。

    zshで過去に切り取った(コピーした)文字列をペーストする - Qiita
    HHR
    HHR 2023/07/06
    ctrl+y meta-y 8個まで
  • zshで範囲選択・削除・コピー・切り取りする - Qiita

    control+@かcontrol+spaceでemacsのmarksetライクに範囲選択(set-mark-command)が出来ます。入力文字が変わる操作をすると範囲選択モードが終わります。 範囲選択した状態でcontrol+hとか押したら選択したところ全部消えて欲しいんですけど、いつも通りの1文字削除しかしてくれません。しかも、あろうことか範囲選択したところを(切り取りではなく)削除する機能がデフォルトでないようでした(あれば教えて下さい) というわけで、 control+hで普段は手前の1文字削除なんだけど範囲選択してたらその範囲を削除 control+dで普段は後ろの1文字削除なんだけど範囲選択してたらその範囲を削除 というのを出来るようwidget書きました。 function delete-region() { zle kill-region CUTBUFFER=$killr

    zshで範囲選択・削除・コピー・切り取りする - Qiita
    HHR
    HHR 2023/07/06
    “あろうことか範囲選択したところを(切り取りではなく)削除する機能がデフォルトでない”
  • Rubyとzshの配列操作比較表 - Qiita

    ${a[(Ie)$x]} ※(Ie)だとexact match。(I)だとpattern match

    Rubyとzshの配列操作比較表 - Qiita
    HHR
    HHR 2023/06/27
    無題に高機能ですばら。
  • Zshの補完について

    B! 23 0 0 0 Bashの補完について に引き続き、 ZshのTabを押した時に出る補完の自作等について。 Zsh補完 compinit comopdef 補完補助関数 compadd 補助関数 words, CURRENT zsh-completions MacのHomebrewでZsh補完のファイルをインストールするFormulaを作る Zsh補完 compinit Zshで補完を有効にするためにはまず、 autoload -U compinit compinit を実行する必要があります。 compinitが色々設定をしたりする関数なんですが、 autoloadしてから呼んであげる必要があります。 autoloadについては以下のページが丁寧に説明されてて分かりやすいです。 .zshrcで見かけるautoloadの意味と使い方 - Qiita 有効にするために取り敢えずこれを

    Zshの補完について
    HHR
    HHR 2023/06/20
  • zsh で source して使うプラグインを作るのは止めにしよう - Qiita

    特に、cd や bindkey など、今動いているシェル上で副作用のある処理を行いたいときは source を使わないとうまくいかないだろう。 一方、source にはこんなデメリットがある。 .zshrc でいっぱい source するとzsh の起動が遅くなる 現在動いているシェルの alias 設定の影響を受ける 特に2つめが厄介だ。例えば grep とかしたときに、alias grep='grep -E' なんか設定してあったら正規表現の意味が変わってしまう。一応 command grep とすれば alias を設定していない元の grep を実行できるけど、いちいちそう書くのも手間だ。 そんなときは autoload を使う形に書き換えるとうまくいく。 autoload というのは「関数体の読み込みを実行する時まで遅らせる」という zsh の機能のこと。これで ~/.zshr

    zsh で source して使うプラグインを作るのは止めにしよう - Qiita
    HHR
    HHR 2022/05/23
    autoload
  • .zshrcで見かけるautoloadの意味と使い方 - Qiita

    今回はこの autoload が何をするものなのか解説します。 autoloadはシェル関数を読み込む autoload はシェル関数を 自動読み込み するシェルの組み込み関数です。上記のスクリプトの場合、 compinit というシェル関数を自動読み込みします。 シェルコマンドは PATH に入っていればそれだけで実行可能でしたが、シェル関数の場合は関数を定義しなければ使えません。 autoload はファイルシステム上にある関数定義を読み込むための関数なのです。そして autoload 探索するディレクトリは FPATH に入っています。 余談ですが FPATH だと : 区切りの文字列、 fpath だと配列になります。PATH と path と同じですね。 シェル関数とシェルコマンドの違い autoloadを使ってみる % mkdir ~/functions % FPATH="${

    .zshrcで見かけるautoloadの意味と使い方 - Qiita
    HHR
    HHR 2022/05/23
    autoload
  • macOS 10.15 Catalina でターミナルのやつが zsh になった | 林檎コンピュータ

    デフォルトのシェルが bash から zsh というものになったそうだ。 zsh は bash の上位互換だそうで、つまり良きものなのだろう。 zsh を使ってみる Mojave から Catalina へのアップグレードした場合だと bash がまだ生き残っている。すぐには zsh にならないのだ。 ターミナルを立ち上げると次のようなメッセージが表示される。 The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. よくわかんねーながらもchsh -s /bin/zshってのをやれって書いてある

    macOS 10.15 Catalina でターミナルのやつが zsh になった | 林檎コンピュータ
    HHR
    HHR 2022/01/20
    readコマンドの互換性が無い
  • bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄

    bashからzshに乗り換えるユーザーを対象に16の違いをまとめました。MacOSもbashからzshに変更になりましたので、zshを使い始めるにあたってのポイントを解説していきます。 はじめに zshとは? 2019年、WWDC19の基調講演でApple社は次にリリースする「MacOS X Catalina」より標準のシェルを「zsh」に変更すると発表しました。そして現在、Macを購入したり最新のバージョンにアップデートしてターミナルを開くとbashではなくzshが起動します。 もともとMacOS Xは当初tcshであったのがv10.3 Pantherよりbashに変更された経緯があり今回それがzshにさらに変更された形になります。 こうなった経緯としてはbashのライセンスとセキュリティによる事情があります。MacOS Mojaveまでに搭載されているbashはバージョンが3で実はこれ

    bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄
    HHR
    HHR 2021/05/10
    dotfilesの読み込み順やaliasとかよく忘れる。後半にOh My Zshやzplugなどの導入方法がチラリとある。
  • zshで適度なcase-insensitive補完 - Qiita

    ~ % cd d[TAB] Desktop/ Downloads/ deepdream/ Documents/ Dropbox/ dev/

    zshで適度なcase-insensitive補完 - Qiita
    HHR
    HHR 2021/01/25
  • How can I repeat a character in Bash?

    Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives Teams Q&A for work Connect and share knowledge within a single location that is structured and easy to search. Learn more about Teams

    How can I repeat a character in Bash?
    HHR
    HHR 2020/12/30
    eval printf '=%.0s' {1..$(tput cols)}で幅一杯に=。evalが無いと出来なかった。zshだとeval要らなかった。
  • 変数展開時の単語分割(word split)をマスターする - Qiita

    シェルスクリプトは、スペース区切りの文字列が代入された変数を展開するとき、文字列をスペースの位置で分割して複数の文字列のように扱う。この挙動は Bash (をはじめとする Bourne shell 系のシェル)と Zsh とで異なってくる。 普通の変数について Bash では、展開する変数をクォートしなければ単語分割が起きる。クォートすれば単語分割は起きず、スペースを含む1つの文字列として展開される。 Zsh では、変数をクォートするかしないかにかかわらず単語分割は起きない。ただし、 SH_WORD_SPLIT オプションをオンにすると Bash 準拠の挙動に変わる(デフォルトでオフ)。以下に単語分割の例を示す: ### 下準備 # 第1引数を echo する関数 function echo_first { echo $1 } # スペース区切りの文字列を含む変数 var="a b c"

    変数展開時の単語分割(word split)をマスターする - Qiita
    HHR
    HHR 2018/01/03
    空白を含む文字列の変数を展開するとき空白の位置で分割して複数の文字列のように扱う。しかも{Ba,Z}shで異なる。関連して空白区切りの文字列が代入された変数を関数の引数の渡した場合(for文も該当)も同様
  • bashとzshで使える、特定ファイルを除外するglob記法 - Humanity

    2012-04-15 追記 勘違いしてました。 ただの正規表現だったようです。 確かめたら確かにiってファイルが残りました。 id:mattn: これ、正規表現のパターンだよね?ってことはa b c iってファイルがあったら[^dir]でiってファイル残るよね。 はてなブックマーク - bashとzshで使える、特定ファイルを除外するglob記法 - Humanity 2012-04-20 追記 ツッコミもらいました。というかもらってました。追記するの遅すぎ。 @mattn_jp zsh だと *~dir, bash だと !(dir) でいけそうですね。 https://twitter.com/#!/nakamuray/statuses/191536570132733952 とのこと。 # bash $ mv !(dir) dir/ # zsh $ mv *~dir dir/どっちもいけ

    bashとzshで使える、特定ファイルを除外するglob記法 - Humanity
    HHR
    HHR 2016/01/26
    否定 !(hoge)* → hoge以外
  • 【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita

    きっかけ matsuya-generator-rubyが、cowsayコマンドと組み合わせるとシュールこの上ない。 pic.twitter.com/gxaudeU377 — ぐれさん (@grethlen) 2015, 12月 6 もっと色々やってみたい。 あれ?Shell Script Advent Calendar 2015の22日目の枠残ってるじゃん。 じゃあやろう。 環境 Mac OSX Yosemite 10.10.5の端末上で実施。 zshを使って動作確認してますが、多分bashでも動きます。

    【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita
    HHR
    HHR 2015/12/22
    電車とか人が多いところで見るとやばいw
  • zshの個人的に便利だと思った機能(suffix alias、略語展開) - Qiita

    のような形式で実行できる。 こちらで紹介されている.cファイルを実行すると自動でビルド->実行までしてくれるような設定が可能で、もはやなんでもできそうな感じがする。スゴイ 現在は下のように設定している。練習がてらjavaを追加。 alias -s txt='cat' alias -s html='google-chrome' alias -s rb='ruby' alias -s py='python' alias -s hs='runhaskell' alias -s php='php -f' alias -s {gz,tar,zip,rar,7z}='unarchive' # preztoのarchiveモジュールのコマンド(https://github.com/sorin-ionescu/prezto/tree/master/modules) alias -s {gif,jpg,j

    zshの個人的に便利だと思った機能(suffix alias、略語展開) - Qiita
    HHR
    HHR 2014/05/18
  • Macで時間のかかるコマンドが終わったら、自動で通知するzsh設定 - Qiita

    概要 実行時間の長いコマンドが終わったら、Mac の Notification Center (Growl にするのも可能) で通知がくる。Terminal.app と iTerm 2 に対応している。 通知の様子。30秒を超えるコマンドが通知されている。 30秒を超えないコマンドでも、失敗したら通知される。 どちらもターミナルがバックグラウンドのときのみ通知される。長いコマンドを投げてから twitter とか見てたらいつのまにか時間が経ってしまうような人に便利。 1. 準備 Notification Center に通知する場合 alloy/terminal-notifier をインストールする。コマンドから Notification Center に通知をするためのアプリ。 Releases から .app をインストールしてもよいし、Download にあるように RubyGems

    Macで時間のかかるコマンドが終わったら、自動で通知するzsh設定 - Qiita
    HHR
    HHR 2014/01/28
  • おすすめzsh設定 - 2011-09-05 - ククログ

    他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん

    おすすめzsh設定 - 2011-09-05 - ククログ
    HHR
    HHR 2011/09/09
  • 1