
自動化された研究アーティファクト — 上流プロジェクトではありません。
このリポジトリは、ラヴァル大学の修士論文のために、公開されているGitHub Actionsワークフローの脆弱性を再現する目的で自動化ハーネスによって構築された使い捨てラボです。これは
skim-rs/skimのコミットca986f444c37d2c1dc15ce1fad2fe101776af8d9(2026-04-14)時点の逐語的なスナップショットであり、そのプロジェクト自身のライセンスの下で再配布されています。そのライセンスファイルはこのスナップショットに変更なしで含まれています。上流プロジェクトは関与しておらず、標的にされることもありません。ここで研究されている脆弱性はすでに公開されています。このリポジトリ内のすべてのシークレットと変数はランダムに生成されたダミー値であり、実際の認証情報は存在しません。アクション参照とランナーイメージは、2026-04-14時点で解決されたものに固定されています。スナップショットに加えられたすべての変更については、ハーネス出力内の
pinning.mdを参照してください。質問や異議がある場合: [email protected]
人生は短い、skimしよう!
私たちは、ファイル、行、コマンドの間を移動することに多くの時間を費やしています。そこで登場するのがSkimです! ワークフローをより速く、より効率的にするために設計された強力なファジーファインダーです。
Skimは sk という単一の実行ファイルを提供します。grep のようなツールに対する、よりスマートな代替手段と考えてください。一度試せば、これなしでどうやって生きてきたのか不思議に思うでしょう!
skimプロジェクトにはいくつかのコンポーネントが含まれています:
sk 実行ファイル - コアプログラムsk を呼び出すため。Vimサポートについては skim.vim を確認してください。| OS | パッケージマネージャー | コマンド |
|---|---|---|
| macOS | Homebrew | brew install sk |
| macOS | MacPorts | sudo port install skim |
| Alpine | apk | apk add skim |
| Arch | pacman | pacman -S skim |
| Fedora | COPR | 下記参照 |
| Gentoo | Portage | emerge --ask app-misc/skim |
| Guix | guix | guix install skim |
| Void | XBPS | xbps-install -S skim |
最新のFedoraパッケージは、非公式のコミュニティ保守によるCOPRリポジトリを通じて提供されています。```bash sudo dnf copr enable sisyphus1813/skim sudo dnf install skim
## 手動インストール
以下のいずれかが該当します:
- インストールスクリプトを使用する場合:
```sh
# 実行する前に必ずスクリプトの内容を確認してください!
$ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/skim-rs/skim/releases/latest/download/skim-installer.sh | sh
```
- バイナリを使用する場合: [sk 実行ファイルをダウンロード](https://github.com/skim-rs/skim/releases) するだけです。
- [crates.io](https://crates.io/) からインストール: `cargo install skim`
- 手動でビルドする場合:
```sh
$ git clone --depth 1 [email protected]:skim-rs/skim.git ~/.skim
$ cd ~/.skim
$ cargo build --release
$ # 生成された `target/release/sk` 実行ファイルを PATH に追加します
```
これで以下が利用可能になります:
- man ページ。正しいパスに書き込むか、`man --local-file <(sk --man)` を実行します
- シェル補完(およびオプションのキーバインド)。`source <(sk --shell \<shell> \[--shell-bindings])` を使用します。詳細は以下を参照してください
# 使用方法
Skim は、一般的なフィルタ(`grep` に類似)としても、コマンドを実行するための
対話型インターフェースとしても使用できます。
## Vim プラグインとして(neovim では、skim プロファイルを指定して [fzf-lua](https://github.com/ibhagwan/fzf-lua) を確認してください)
vim-plug 経由(推奨):
skim をインストールし、次に:```vim
Plug 'skim-rs/skim'
始めるための例をいくつか示します。```bash
sk
vim $(find . -name "*.rs" | sk -m)
この最後のコマンドは、拡張子が「.rs」のファイルを選択し、選択したファイルをVimで開くことができます。開発者にとって大きな時間節約になります!
## 対話型インターフェースとして
`skim`は他のコマンドを動的に呼び出すことができます。通常、プロジェクトディレクトリ内のコンテンツを検索するには、[grep](https://www.gnu.org/software/grep/)、[ack](https://github.com/petdance/ack2)、[ag](https://github.com/ggreer/the_silver_searcher)、または[rg](https://github.com/BurntSushi/ripgrep)と統合したいと思うでしょう:```sh
# works with grep
sk --ansi -i -c 'grep -rI --color=always --line-number {q} .'
# works with ack
sk --ansi -i -c 'ack --color {q}'
# works with ag
sk --ansi -i -c 'ag --color {q}'
# works with rg
sk --ansi -i -c 'rg --color=always --line-number {q}'
注記: これらの例では、
{q}は現在の入力クエリ(シングルクォートで囲まれたもの)に文字通り展開されます。 つまり、これらの例は正確なクエリ文字列を検索し、ファジー検索は行いません。 ファジー検索を行うには、コマンド出力をインタラクティブモードを使わずにskにパイプしてください。

Fish、Bash、Zsh 用のバインディングは shell ディレクトリにあります:
completion.{shell} には sk CLI 使用時の補完スクリプトが含まれていますkey-bindings.{shell} にはキーバインドとシェル統合が含まれています:
ctrl-t で sk を通じてファイルを選択ctrl-r で sk を通じて履歴エントリを選択alt-c で sk を通じて選択したディレクトリに cd するfish では利用不可) ** でファイルパスを補完。例えば ls **<tab> はフォルダを選択するための sk ウィジェットを表示しますこれらの機能を有効にするには、key-bindings.{shell} ファイルをソースし、お使いのシェルのドキュメントに従って補完を設定するか、以下を参照してください。
対応するシェル(bash、zsh、fish、powershell、または elvish)のいずれかで --shell フラグを使用して、お好みのシェル用のシェル補完を生成できます:
source <(sk --shell bash)
source <(sk --shell zsh)
sk --shell fish | source
#### オプション 2: シェル起動時に自動的に読み込まれるファイルに保存する```sh
# For bash, add to ~/.bashrc
echo 'source <(sk --shell bash)' >> ~/.bashrc # Or save to ~/.bash_completion
# For zsh, add to ~/.zshrc
sk --shell zsh > ~/.zfunc/_sk # Create ~/.zfunc directory and add to fpath in ~/.zshrc