diff --git a/GNUmakefile b/GNUmakefile index b2607ea6..5cdf6cb0 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -148,12 +148,12 @@ endif install: \ $(outfiles:$(OUTDIR)/%=$(INSDIR)/%) \ $(outfiles-doc:$(OUTDIR)/doc/%=$(INSDIR_DOC)/%) \ - $(INSDIR)/cache.d $(INSDIR)/tmp + $(INSDIR)/cache.d $(INSDIR)/run $(INSDIR)/%: $(OUTDIR)/% bash make_command.sh install "$<" "$@" $(INSDIR_DOC)/%: $(OUTDIR)/doc/% bash make_command.sh install "$<" "$@" -$(INSDIR)/cache.d $(INSDIR)/tmp: +$(INSDIR)/cache.d $(INSDIR)/run: mkdir -p $@ && chmod a+rwxt $@ .PHONY: install diff --git a/README.md b/README.md index 5e2239da..790d27f3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Recipes ]

-*Bash Line Editor* (`ble.sh`) is a command line editor written in pure Bash scripts which replaces the default GNU Readline. +*Bash Line Editor* (`ble.sh`) is a command line editor written in pure Bash which replaces the default GNU Readline. Current devel version is 0.4. This script supports Bash 3.0 or higher although we recommend to use `ble.sh` with Bash 4.0 or higher. @@ -17,7 +17,7 @@ This script is provided under the [**BSD License**](LICENSE.md) (3-clause BSD li Disclaimer: The core part of the line editor is written in **pure Bash**, but `ble.sh` relies on POSIX `stty` to set up TTY states before and after the execution of user commands. -It also use other POSIX utilities for acceleration +It also uses other POSIX utilities for acceleration in some part of initialization and cleanup code, processing of large data in completions, paste of large data, etc. diff --git a/blerc b/blerc index ae3375bb..5e8c2cc6 100644 --- a/blerc +++ b/blerc @@ -611,7 +611,7 @@ ##----------------------------------------------------------------------------- -## Key bindings +## Keybindings ## The default mapping of is magic-space which performs history and @@ -627,6 +627,7 @@ #ble-bind -f up 'history-search-backward' #ble-bind -f down 'history-search-forward' + ## If you want to immediately run the matched command by RET, you can specify ## the option "immediate-accept" to nsearch widgets: @@ -634,6 +635,13 @@ #ble-bind -f down 'history-search-forward immediate-accept' +## If you want to kill/copy words including the spaces preceding them, you can +## use the following keybindings: + +#ble-bind -f C-w 'kill-region-or kill-uword' +#ble-bind -f M-w 'copy-region-or copy-uword' + + ##----------------------------------------------------------------------------- ## Settings for vim-mode diff --git a/memo/ChangeLog.md b/memo/ChangeLog.md index 0454a5a4..a19f22e8 100644 --- a/memo/ChangeLog.md +++ b/memo/ChangeLog.md @@ -100,8 +100,9 @@ - progcomp: fix non-working `complete -C prog` (reported by Archehandoro) `#D1535` 026432d - bind: fix a problem that `bind '"seq":"key"'` causes a loop macro `bind -s key key` (reported by thanosz) `#D1536` ea05fc5 - bind: fix errors on readline macros (reported by RakibFiha) `#D1537` c257299 -- main: work around sourcing `ble.sh` inside subshells `#D1554` 0000000 -- main: work around `. ble.sh --{test,update,clear-cache}` in intereactive sessions `#D1555` 0000000 +- main: work around sourcing `ble.sh` inside subshells `#D1554` bbc2a90 +- main: work around `. ble.sh --{test,update,clear-cache}` in intereactive sessions `#D1555` bbc2a90 +- Makefile: create `run` directory instead of `tmp` 0000000 ## Compatibility diff --git a/note.txt b/note.txt index b64ee4cf..e9887aa0 100644 --- a/note.txt +++ b/note.txt @@ -704,7 +704,8 @@ bash_features 2021-02-10 #D1470 どうも bash-4.2 の declare -g にはバグがある。declare -gA とすると属性は global まで適用されるが、代入された値は関数を抜けると共に消 - 滅する。 + 滅する。2021-05-20 追記。declare -gA a=() とすると関数を抜けると共に値が消 + 滅するが、declare -gA a; a=() とすると特に問題は生じない。 * 連想配列 declare -A は bash-4.0 から @@ -1379,10 +1380,25 @@ bash_tips 0.5 ControlPanel/TUI Framework 0.4 progcolor +2021-05-20 + + * syntax: ${a~} に対応していない + + 何れ消えると思っていたがどうも未だ消える気配はない様だ。取り敢えず使える環 + 境ではちゃんと着色した方が良い様に思われる。 + + 後気付いたのだが実は ${a^^} や ${a,,} も bash-4.0 から使えた様だ。tolower, + toupper の実装に使えるのでは。と思って確認した所、既に 4.0 以上ではこれらを + 使う様になっていた。 + 2021-05-19 * sabbrev: 単語でなくても任意の文脈で発動する sabbrev が欲しい。\ 等で前置す - れば特に問題ないのではないか? + れば特に問題ないのではないか? 然し、その為には全ての場合について一致するか + どうか確認する必要がある。 + + * complete: [TAB] 補完の場合には、ユーザー入力があった時に即座にキャンセルす + るのではなくて timeout があっても良いのかもしれない。 2021-05-17 diff --git a/src/canvas.sh b/src/canvas.sh index df80193e..c1142d90 100644 --- a/src/canvas.sh +++ b/src/canvas.sh @@ -1742,7 +1742,7 @@ function ble/canvas/trace-text { [[ ! $flag_overflow ]] } # Note: suppress LC_COLLATE errors #D1205 #D1262 #1341 #D1440 -ble/function#suppress-stderr ble/canvas/trace-text { +ble/function#suppress-stderr ble/canvas/trace-text #------------------------------------------------------------------------------ # ble/textmap diff --git a/src/util.sh b/src/util.sh index fc1aee74..ad66c2aa 100644 --- a/src/util.sh +++ b/src/util.sh @@ -2557,7 +2557,7 @@ function ble/util/expand-alias { ret=$1 local type; ble/util/type type "$ret" if [[ $type == alias ]]; then - local data; ble/util/assign data 'LANG=C alias "$ret"' &>/dev/null + local data; ble/util/assign data 'LC_ALL=C alias "$ret"' &>/dev/null [[ $data == 'alias '*=* ]] && builtin eval "ret=${data#alias *=}" fi }