diff --git a/GNUmakefile b/GNUmakefile
index b935ad28..ae34911e 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -11,7 +11,7 @@ endif
# check gawk
GAWK := $(shell which gawk 2>/dev/null || type -p gawk 2>/dev/null)
ifneq ($(GAWK),)
- GAWK_VERSION := $(shell LANG=C $(GAWK) --version 2>/dev/null | head -1 | grep -Fi 'GNU Awk')
+ GAWK_VERSION := $(shell LANG=C $(GAWK) --version 2>/dev/null | sed -n '1{/[Gg][Nn][Uu] [Aa][Ww][Kk]/p;}')
ifeq ($(GAWK_VERSION),)
$(error Sorry, gawk is found but does not seem to work. Please install a proper version of gawk (GNU Awk).)
endif
@@ -20,7 +20,7 @@ else
ifeq ($(GAWK),)
$(error Sorry, gawk/awk could not be found. Please check your PATH environment variable.)
endif
- GAWK_VERSION := $(shell LANG=C $(GAWK) --version 2>/dev/null | head -1 | grep -Fi 'GNU Awk')
+ GAWK_VERSION := $(shell LANG=C $(GAWK) --version 2>/dev/null | sed -n '1{/[Gg][Nn][Uu] [Aa][Ww][Kk]/p;}')
ifeq ($(GAWK_VERSION),)
$(error Sorry, gawk could not be found. Please install gawk (GNU Awk).)
endif
diff --git a/README-ja_JP.md b/README-ja_JP.md
index 946c4ebe..43b46053 100644
--- a/README-ja_JP.md
+++ b/README-ja_JP.md
@@ -543,6 +543,19 @@ $ ble-color-show
ble-bind -f 'C-x h' 'insert-string "Hello, world!"'
```
+C-x 等のキー表記については
+[マニュアル §3.1](https://github.com/akinomyoga/ble.sh/wiki/%E8%AA%AC%E6%98%8E%E6%9B%B8-%C2%A73-%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0#user-content-sec-kspecs) で詳細に説明されています。
+スペース・タブ・エンター・バックスペース・エスケープなどの特殊キーの表記については
+[マニュアル §3.1.1](https://github.com/akinomyoga/ble.sh/wiki/%E8%AA%AC%E6%98%8E%E6%9B%B8-%C2%A73-%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0#user-content-sec-kspecs-ret) で説明されています:
+スペースは SP と表現します。
+タブキーは端末によって C-i または TAB と表現します。
+エンター・リターンキーは端末によって C-m または RET と表現します。
+バックスペースは端末によって C-?, DEL, C-h, または BS 等様々な表現があります。
+Ctrl+Return や Shift+Return などの修飾された特殊キーの取り扱いについては
+[マニュアル §3.6.4](https://github.com/akinomyoga/ble.sh/wiki/%E8%AA%AC%E6%98%8E%E6%9B%B8-%C2%A73-%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0#sec-modifyOtherKeys-manual) で説明されています。
+お使いの端末が `modifyOtherKeys` に対応していない場合、手動で各キーの組み合わせに対応するエスケープシーケンスを設定する必要があります。
+
+
M-c を入力した時にコマンドを実行するには以下のようにします。
```bash
@@ -609,6 +622,8 @@ Bash 4.0 以降では自動補完が有効になり、予測候補が表示さ
候補を確定するには S-RET を入力します (編集文字列の末尾にいる時は right, C-f または end でも確定できます)。
表示されている候補の初めの単語だけ部分的に確定する時は M-f または M-right を入力します。
現在の候補で確定しそのままコマンドを実行する場合には C-RET (※お使いの端末が対応している時) を入力します。
+お使いの端末が対応していない時は [マニュアル §3.6.4](https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A73-Key-Binding#sec-modifyOtherKeys-manual) を参照して下さい。
+
## 3.4 静的略語展開
diff --git a/README.md b/README.md
index 2b12139a..2e9f115a 100644
--- a/README.md
+++ b/README.md
@@ -516,6 +516,17 @@ For example, with the following setting, "Hello, world!" will be inserted on typ
ble-bind -f 'C-x h' 'insert-string "Hello, world!"'
```
+The details on the key representation like C-x is described in [Manual §3.1](https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A73-Key-Binding#user-content-sec-kspecs).
+The representations of space/tab/enter/backspace/escape, etc. are described in [Manual §3.1.1](https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A73-Key-Binding#user-content-sec-kspecs-ret):
+The space is represented as SP,
+the tab key is represented as C-i or TAB depending on the terminal,
+the enter/return key is represented as C-m or RET depending on the terminal,
+and the backspace key is represented as C-?, DEL, C-h, or BS depending on the terminal.
+The representations of modified special keys such as Ctrl+Return and Shift+Return are described
+in [Manual §3.6.4](https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A73-Key-Binding#sec-modifyOtherKeys-manual):
+If your terminal does not support `modifyOtherKeys`, you need to manually configure the escape sequences of modified special keys.
+
+
For another example, if you want to invoke a command on typing M-c, you can write as follows:
```bash
@@ -583,7 +594,9 @@ The feature `auto-complete` is available in Bash 4.0 or later. `auto-complete` a
The suggested contents can be inserted by typing S-RET
(when the cursor is at the end of the command line, you can also use right, C-f or end to insert the suggestion).
If you want to insert only first word of the suggested contents, you can use M-right or M-f.
-If you want to accept the suggestion and immediately run the command, you can use C-RET (if your terminal supports this special key combination).
+If you want to accept the suggestion and immediately run the command, you can use C-RET
+(if your terminal does not support special key combinations like C-RET, please check
+[Manual §3.6.4](https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A73-Key-Binding#sec-modifyOtherKeys-manual)).
## 3.4 Use `sabbrev` (static abbrev expansions)
diff --git a/contrib b/contrib
index 0ab44cfa..5b627d22 160000
--- a/contrib
+++ b/contrib
@@ -1 +1 @@
-Subproject commit 0ab44cfaaf6e79c141dfc8d13e0fccb5f34de8c3
+Subproject commit 5b627d227109b9c278797a97d5beaaedc1e0d7ab
diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md
index 7a0f206f..0cacf3f1 100644
--- a/docs/ChangeLog.md
+++ b/docs/ChangeLog.md
@@ -111,10 +111,10 @@
- history: support extension `HISTCONTROL=strip` (motivated by aiotter) `#D1874` 021e033
- benchmark (ble-measure): support an option `-V` `#D1881` 571ecec
- color: allow setting color filter by `_ble_color_color2sgr_filter` `#D1902` 88e74cc
-- auto-complete: add `bleopt complete_auto_complete_opts` (motivated by DUOLabs333) `#D1901` `#D1911` 1478a04 xxxxxxx
-- menu-complete: add `bleopt complete_menu_complete_opts` (requested by DUOLabs333) `#D1911` xxxxxxx
-- edit (`magic-space`): support `bleopt edit_magic_expand=...:alias` (requested by telometto) `#D1912` xxxxxxx
- - auto-complete: cancel auto-complete for `magic-space` `#D1913` xxxxxxx
+- auto-complete: add `bleopt complete_auto_complete_opts` (motivated by DUOLabs333) `#D1901` `#D1911` 1478a04 6a21ebb
+- menu-complete: add `bleopt complete_menu_complete_opts` (requested by DUOLabs333) `#D1911` 6a21ebb
+- edit (`magic-space`): support `bleopt edit_magic_expand=...:alias` (requested by telometto) `#D1912` 63da2ac
+ - auto-complete: cancel auto-complete for `magic-space` `#D1913` 01b4f67
## Changes
@@ -145,8 +145,8 @@
- edit (`display-shell-version`): show information of the OS distribution and properly handle saved locales `#D1854` 066ec63 bdb7dd6
- edit (`display-shell-version`): show `gawk`, `make`, and `git` versions of the build time `#D1892` e618133
- edit (`display-shell-version`): support running as a user command (reported by DhruvaG2000) `#D1893` e618133
- - edit (`display-shell-version`): show warnings for fzf-integration `#D1907` xxxxxxx
- - edit (`display-shell-version`): show the `zoxide` version `#D1907` xxxxxxx
+ - edit (`display-shell-version`): show warnings for fzf-integration `#D1907` 3bc3bea
+ - edit (`display-shell-version`): show the `zoxide` version `#D1907` 3bc3bea
- complete (`ble-sabbrev`): support colored output `#D1546` 750ca38
- decode (`ble-bind`): support colored output `#D1547` 750ca38
- decode (`ble-bind`): output bindings of the specified keymaps with `ble-bind -m KEYMAP` (fixup 750ca38) `#D1559` 6e0245a
@@ -186,7 +186,7 @@
- complete: do not show option descriptions for the empty-word completion (requested by geekscrapy) `#D1846` 1c7f7a1
- syntax (`extract-command`): extract unexpected command names as commands `#D1848` 5b63459
- main (`ble-reload`): preserve the original initialization options `#D1852` d8c92cc
- - main (`ble-reload`): fix a bug that the default rcfile is not loaded `#D1914` xxxxxxx
+ - main (`ble-reload`): fix a bug that the default rcfile is not loaded `#D1914` 85b5828
- blehook: print reusable code to restore the user hooks `#D1857` b763677
- blehook: separate internal and user hooks `#D1856` b763677
- blehook: prefer the uniq `!=` to the addition `+=` `#D1871` fe7abd4
@@ -207,13 +207,13 @@
- trap: work around possible interferences by recursive traps `#D1867` a22c25b
- trap: ignore `RETURN` for `ble/builtin/trap/.handler` `#D1867` a22c25b
- trap: fix a bug that `DEBUG` for internal commands clears `$?` `#D1867` a22c25b
- - trap: use `ble/util/assign/.mktmp` to read the `DEBUG` trap `#D1910` xxxxxxx
+ - trap: use `ble/util/assign/.mktmp` to read the `DEBUG` trap `#D1910` 1de9a1e
- progcomp: reproduce arguments of completion functions passed by Bash `#D1872` 4d2dd35
- prompt: preserve transient prompt with `same-dir` after `clear-screen` `#D1876` 69013d9
- color: let `bleopt term_index_colors` override the default if specified `#D1878` 7d238c0
- canvas: update Unicode version 15.0.0 `#D1880` 49e55f4
- decode (`vi_imap-rlfunc.txt`): update the widget for `backward-kill-word` as `kill-backward-{u => c}word` `#D1896` e19b796
-- term (`_ble_term_TERM`): detect wezterm-20220408 `#D1909` xxxxxxx
+- term (`_ble_term_TERM`): detect wezterm-20220408 `#D1909` 486564a
## Fixes
@@ -329,7 +329,7 @@
- canvas (`ble/canvas/trace`): fix text justification for empty lines (reported by rashil2000) `#D1894` cdf74c2
- main: fix adjustments of bash options (reported by rashil2000) `#D1895` 138c476
- complete: suppress error messages for non-bash_completion `_parse_help` (reported by nik312123) `#D1900` 267de7f
-- prompt: fix the marker position for the readline variable `show-mode-in-prompt` (reported by Strykar) `#D1903` xxxxxxx
+- prompt: fix the marker position for the readline variable `show-mode-in-prompt` (reported by Strykar) `#D1903` 09bb4d3
## Documentation
@@ -341,7 +341,8 @@
- blerc: add frequently used keybindings (motivated by KiaraGrouwstra, micimize) `#D1896` `#D1897` e19b796
- wiki/Q&A: add item for defining a widget calling multiple widgets (motivated by micimize) `#D1898` e19b796
- blerc: rename from `blerc` to `blerc.template` `#D1899` e19b796
-- README: add a link to the explanation on the "more reliable setup" of bashrc (motivated by telometto) `#D1905` xxxxxxx
+- README: add a link to the explanation on the "more reliable setup" of bashrc (motivated by telometto) `#D1905` 09bb4d3
+- README: add links to Manual pages for *kspec* and `modifyOtherKeys` `#D1917` xxxxxxx
## Optimization
@@ -437,7 +438,7 @@
- history: work around broken timestamps in `HISTFILE` (reported by johnyaku) `#D1831` 5ef28eb
- progcomp: disable `command_not_found_handle` (reported by telometto, wisnoskij) `#D1834` 64d471a d5fe1d1 973ae8c
- complete: add completion integration with `zoxide` (reported by ferdinandyb) `#D1838` a96bafe
- - contrib/integration/zoxide: update `contrib/integration/zoxide` for zoxide v0.8.1 `#D1907` xxxxxxx
+ - contrib/integration/zoxide: update `contrib/integration/zoxide` for zoxide v0.8.1 `#D1907` 3bc3bea
- util (`modifyOtherKeys`): work around delayed terminal identification `#D1842` 14f3c81
- util (`modifyOtherKeys`): fix a bug that kitty protocol is never activated `#D1842` 14f3c81
- util (`modifyOtherKeys`): pass-through kitty protocol sequences (motivated by ferdinandyb) `#D1845` f66e0c1
@@ -463,6 +464,7 @@
- util (ble/util/s2c): work around intermediate mbstate of bash <= 5.2 `#D1881` 2e1a7c1
- util (ble/util/s2bytes): clear locale cache `#D1881` 2e1a7c1
- complete: fix syntax error for bash-3.0 `#D1881` 0b3e611
+ - github/workflows: work around grep-3.0 which crashes in windows-latest `#D1915` xxxxxxx
- test (ble/util/writearray): use `ble/file#hash` instead of `sha256sum` `#D1882` b76e21e
- test (ble/util/readlink): work around external aliases `#D1890` 0c6291f
@@ -506,7 +508,7 @@
- benchmark (zsh): fix for `KSH_ARRAYS` `#D1886` a144ffa 8cb9b84
- benchmark: support for ksh as `benchmark.ksh` `#D1886` 5dae4da
- github/workflows (build): rename directory in `ble-nightly.tar.xz` to `ble-nightly` (reported by Harduex) `#D1891` f20854f 4ea2e23 43c6d4b
-- edit: update prompts on g2sgr change `#D1906` xxxxxxx
+- edit: update prompts on g2sgr change `#D1906` 40625ac
## Contrib
@@ -516,11 +518,11 @@
- prompt-git: ignore untracked files in submodules `#D1829` 4d24f84
- fzf-completion: fix integration (reported by ferdinandyb) `#D1837` 12c022b
- fzf-completion: remove `noquote` (reported by MK-Alias) `#D1889` 0c6291f
-- README: update description on `_ble_contrib_fzf_base` (reported by Strykar) `#D1904` xxxxxxx
-- fzf-initialize: check directory existence before adding it to `PATH` (reported by Strykar) `#D1904` xxxxxxx
-- colorglass: add color filter `#D1902` xxxxxxx
- - colorglass: add `bleopt colorglass_{saturation,brightness}` (motivated by auwsom) `#D1906` xxxxxxx
-- fzf-key-bindings: fix a problem that `modifyOtherKeys` is not reflected (reported by SuperSandro2000) `#D1908` xxxxxxx
+- README: update description on `_ble_contrib_fzf_base` (reported by Strykar) `#D1904` 09bb4d3
+- fzf-initialize: check directory existence before adding it to `PATH` (reported by Strykar) `#D1904` 09bb4d3
+- colorglass: add color filter `#D1902` 88e74cc
+ - colorglass: add `bleopt colorglass_{saturation,brightness}` (motivated by auwsom) `#D1906` 40625ac
+- fzf-key-bindings: fix a problem that `modifyOtherKeys` is not reflected (reported by SuperSandro2000) `#D1908` 486564a
# ble-0.4.0-devel2
diff --git a/note.txt b/note.txt
index 7bf1b46c..30f48df1 100644
--- a/note.txt
+++ b/note.txt
@@ -1855,6 +1855,10 @@ bash_tips
- leakvars
- keymap の移動 (これは別 commit にする?)
+2022-12-09
+
+ * edit,complete: alias expansion で alias sudo='sudo ' 等による引数の展開に対応?
+
2022-12-03
* declare -f の出力は特殊関数名には使えないのではないか?
@@ -1889,8 +1893,6 @@ bash_tips
https://github.com/akinomyoga/ble.sh/issues/246#issuecomment-1294893636
ここでも少し言及している。
- * colorglass: オプションで指定した時に256色(またはより少ない色に)に減色する機能?
-
* colorglass: face から読み取る時に作用する色設定?
現在は全ての出力に対して色を変更しているが、プロンプトのテーマを別に指定し
@@ -6662,6 +6664,51 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------
+2022-12-11
+
+ * colorglass: オプションで指定した時に256色(またはより少ない色に)に減色する機能? [#D1918]
+
+ →よく考えたら bleopt term_true_colors が設定されていなければ自動的に減色さ
+ れるのではないか。実際に実装を確認してみた所そうなっている。この事を
+ colorglass の説明に書いておくべきではないか? → 記述した。これで十分である。
+
+ * README: RET や C-RET 等について 3.1.1 及び 3.3.6 に対するリンクを含めておく [#D1917]
+ https://github.com/akinomyoga/ble.sh/issues/262
+
+ 取り敢えずリンクと説明を書いた。
+
+ * _ble_term_TERM (comment): wezterm の commit id は 8 文字では足りない (requested by SuperSandro2000) [#D1916]
+ https://github.com/akinomyoga/ble.sh/commit/486564ad314cef3f95317e88cf26879378dae507
+
+ うーん。行(特に120列)に収まり切らない様な気がするが面倒なので気にしない事にする。
+
+ * github/workflows: 何故か grep が windows-latest でクラッシュする [#D1915]
+
+ 別のリポジトリで試しに実行してみたがやはり再現する。最終的に以下の単純な
+ workflow の定義ですらクラッシュするという事が分かった。
+
+ ---- .github/workflows/build.yml ------
+ name: grep-in-windows
+ on:
+ push:
+ branches:
+ - master
+
+ jobs:
+ check:
+ runs-on: windows-latest
+ steps:
+ - name: Check out
+ uses: actions/checkout@v3
+ - name: Check
+ run: echo 'GNU Awk' | grep -Fi 'GNU Awk'
+ ---------------------------------------
+
+ grep -i や grep -F だけでは問題は発生しない。 grep -Fi や grep -F -i 等、-F
+ と -i を組み合わせた時にクラッシュする様だ。grep の version は GNU grep 3.0
+ (2017) の様である。よく分からないが面倒なので grep を使わずに実装する事にす
+ る。head -1 による処理も一緒に sed で処理すれば良い。
+
2022-12-08
* ble-reload した時に M-z が効かなくなる [#D1914]
@@ -6776,6 +6823,7 @@ bash_tips
[1] https://github.com/wez/wezterm/commit/ad91e3776808507cbef9e6d758b89d7ca92a4c7e
* contrib/fzf-key-bindings: C-r で呼び出した fzf で modifyOtherKeys の状態が変 (reported by SuperSandro2000) [#D1908]
+ https://github.com/akinomyoga/ble.sh/issues/259
xterm ですらちゃんと動いていない。以前はちゃんと動いていた筈なので
regression の可能性が高い。うーん。ちゃんと hook はできている。つまり、
@@ -6834,7 +6882,6 @@ bash_tips
https://github.com/ajeetdsouza/zoxide/commit/d106f4e3580d5594d8f1c96c256a8f085e2781a4
-
* colorglass: saturation (彩度) についての設定を追加する (motivated by auwsom) [#D1906]
https://github.com/akinomyoga/ble.sh/issues/258
diff --git a/src/util.sh b/src/util.sh
index edbb7a49..a8e58dd0 100644
--- a/src/util.sh
+++ b/src/util.sh
@@ -5721,7 +5721,7 @@ function ble/term/DA2/initialize-term {
# が付かないが、ちょうど該当 xterm version (2012-01-08) を使っている可能性は
# 低いと見て取り敢えず wezterm とする。
('0;0;0') _ble_term_TERM[depth]=wezterm:0 ;;
- ('1;277;0') _ble_term_TERM[depth]=wezterm:20220408 ;; # 2022-04-07 https://github.com/wez/wezterm/commit/ad91e377
+ ('1;277;0') _ble_term_TERM[depth]=wezterm:20220408 ;; # 2022-04-07 https://github.com/wez/wezterm/commit/ad91e3776808507cbef9e6d758b89d7ca92a4c7e
('0;10;1') # Windows Terminal
# 現状ハードコードされている。