smzht / fakeymacs

Emacs-like key bindings for Keyhac
MIT License
111 stars 49 forks source link

Emacs のコマンド shell-command-on-region を実装する #7

Closed smzht closed 3 years ago

smzht commented 3 years ago

Emacs には shell-command-on-region というコマンドがあります。これは、リーションの内容に対して shell のコマンドでフィルターを掛け出力するコマンドで、Vim などでも実装されている機能です。

これを Fakeymacs の Extension で実装してみたいと思います。

大まかな機能は実現できていますので、後ほど develop branch にて公開していきます。

smzht commented 3 years ago

初版を develop branch に登録しました。 https://github.com/smzht/fakeymacs/commit/69a0e01e195483956bec1bcbd2eb13edc888826c

Linux のコマンドを実行するために、WSL/WSL2 が必要です。

動作仕様は Emacs の shell_command_on_region とほぼ同様で、次のとおりとなります。

まだ、「時間が掛かる処理によるキーフック強制解除」が発生することがあるようですが、とりあえず公開します。

smzht commented 3 years ago

shell_command_on_region は色々な場面で活用できると思います。Emacs や Vim を使っている方にはありきたりの使い方だとは思いますが、以下のようなことができます。

などなど、いろいろ考えられます。

これで NotePad など簡易なエディタも強力なエディタとなるのではないかと思います。VSCode はさらに強力になります。

smzht commented 3 years ago

「時間が掛かる処理によるキーフック強制解除」が発生して Keyhac の動作がおかしくなった場合は、設定のリロードを行ってください。 この問題が発生する原因については、現在調査しています。

smzht commented 3 years ago

「時間が掛かる処理によるキーフック強制解除」の発生頻度がかなり低くなったように思います。

develop branch で開発を継続しています。

smzht commented 3 years ago

本拡張機能は、_config_personal.py を config_personal.py というファイル名にし、ファイルの最後の方にある拡張機能ファイル読み出し行をアンコメントとしてから設定をリロードすることで有効にできます。

smzht commented 3 years ago

fc.side_of_ctrl_key を "R" にしていた場合に正常に動作しなかったのを対策しました。

smzht commented 3 years ago

BusyBox にも対応してみました。

smzht commented 3 years ago

master branch に merge しました。 https://github.com/smzht/fakeymacs/commit/b587acadc74383c9c1edbd4f0fbb6e2f1a62b5db

smzht commented 3 years ago

MSYS2、Cygwin をサポートしました。

smzht commented 3 years ago

マニュアルを見直しました。

smzht commented 3 years ago

開発がほぼ収束したので、クローズとします。

smzht commented 2 years ago

今更ですが、日本語キーボード設定したOSでは利用できない機能となっていたようです。対策完了しています。