これは、なにをしたくて書いたもの?
MicrosoftのGitHubリポジトリに、inshellisenseというIDEスタイルでシェルを補完するツールがあることを知りまして。
Microsoft、各種シェルに600を超えるコマンド補完を掲げる「inshellisense」:マピオンニュース
ちょっと試してみようかなと。
inshellisense
inshellisenseのGitHubリポジトリはこちらです。
GitHub - microsoft/inshellisense: IDE style command line auto complete
inshellisenseはIDEスタイルでシェルを補完できるツールで、以下のシェルに対応しているようです。
- bash
- zsh
- fish
- pwsh
- PowerShell(Windows)
TypeScriptで書かれていて、npm install
で導入します。Node.js v16以上が必要です。
内部的にはこちらを使っているようです。
GitHub - withfig/autocomplete: IDE-style autocomplete for your existing terminal & shell
現在のバージョンは0.0.1-rc.4で、Linux環境で使ってみたのですがちょっとまだまだ使えそうにない感じでした…。
ですが、完成度が上がると便利そうなので期待したいですね。
簡単に試してみたので、メモを残しておきます。
環境
今回の環境はこちら。
$ node --version v18.18.2 $ npm --version 9.8.1
Ubuntu Linux 22.04 LTSへ導入してみました。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy $ uname -srvmpio Linux 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
inshellisenseをインストールしてみる
inshellisenseのインストール。
$ npm i -g @microsoft/inshellisense
バージョン確認。
$ inshellisense --version 0.0.1-rc.4
ヘルプ。
$ inshellisense --help Usage: inshellisense [options] [command] IDE style command line auto complete Options: -v, --version output the current version -s, --shell <shell> shell to use for command execution, supported shells: bash, pwsh, zsh, fish -c, --command <commmand> command to use as initial input --history get the last command execute -d, --duration <duration> duration of the autocomplete session, supported durations: single, session (default: "session") -h, --help display help for command Commands: bind adds keybindings to the selected shell: bash, pwsh, zsh, fish uninstall removes all bindings and configuration for inshellisense
bash向けに起動してみます。
$ inshellisense --shell bash >
専用のモードに切り替わるようで、この中でいろいろ補完ができたりします。
bind
で、ショートカットも定義できます。
$ inshellisense bind Select your desired shell for keybinding creation > bash zsh fish pwsh
対象のシェルを選択します。今回はbashを選びました。
✓ successfully created new bindings
こんなファイルができます。
$HOME/.inshellisense/key-bindings.bash
__inshellisense__() { inshellisense -c "$READLINE_LINE" -s bash history -s $(inshellisense --history) READLINE_LINE= } bind -x '"\C-a": __inshellisense__'
また、.bashrc
にロードが差し込まれます。
.bashrc
[ -f ~/.inshellisense/key-bindings.bash ] && source ~/.inshellisense/key-bindings.bash
この状態で、Ctrl-a
を押すとinshellisenseが起動するようになります。ショートカットですね。
なのですが、Ctrl-c
で終了してしますし、cd
でディレクトリ移動できませんし、Ctrl-a
やCtrl-e
などのbashでよく使うキーバインドも
機能しなくなるので、ちょっと今のままだと導入できないですね…。
ただ、補完動作自体は良い感じだったので、バージョンが上がった時にまた試してみたいですね。