2020-01-12...2020-12-02
(#D1215...#D1426
) c74abc5...276baf2
Usage
Prerequisites
Bash 3.0+ and basic POSIX utilities are required.
Download ble-0.4.0-devel2.tar.xz
https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz
# DOWNLOAD with wget
wget https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz
# DOWNLOAD with curl
curl -LO https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel2/ble-0.4.0-devel2.tar.xz
Trial & Install
# TRIAL
tar xJf ble-0.4.0-devel2.tar.xz
source ble-0.4.0-devel2/ble.sh
# INSTALL (quick)
tar xJf ble-0.4.0-devel2.tar.xz -C ~/.local/share/blesh
echo 'source ~/.local/share/blesh' >> ~/.bashrc
# INSTALL (more robust)
tar xJf ble-0.4.0-devel2.tar.xz -C ~/.local/share/blesh
# Add the following line near the top of ~/.bashrc
[[ $- == *i* ]] && source ~/.local/share/blesh/ble.sh --attach=none
# Add the following line at the end of ~/.bashrc
[[ ${BLE_VERSION-} ]] && ble-attach
New features
- complete: support
bleopt complete_auto_wordbreaks
(suggestion by dylankb)#D1219
c294e31 - main: check
~/.config/blesh/init.sh
#D1224
a82f961 - progcolor: support programmable highlighting
#D1218
0770234#D1244
9cb3583#D1245
8e8a296#D1247
154f638#D1269
fa0036c - decode/kbd: support U+XXXX, @esc and @nul for keynames
#D1251
441117c ef23ad1 - syntax: support
coproc
#D1252
7ff68d2 - vi/nmap: support readline widgets for M-left, M-right, C-delete, # and &
#D1258
846e0be - complete: add
compopt -o quote/default
forfzf
(motivated by dylankb)#D1275
58e1be4 - util (
ble-import
): support an option-d
(--delay
)#D1285
9673e4e - syntax: support parameter expansion of the form
${var/#pat}
,${var/%pat}
#D1286
e2f4809 - edit: support
bleopt editor line_limit_{type,length} history_limit_length
#D1295
2f9a000 - edit: support widgets
{vi,emacs}-editing-mode
#D1301
0c6c76e - syntax: allow unquoted
[!
and[^
insimple-word
(reported by cmplstofB)#D1303
1efe833 - util (
ble/util/print-global-definitions
): support arrays and unset variables (test-util) 6e85f1c - util (
ble/util/cat
): support NUL and multiple files (test-util) d19a9af - edit: support Bash 5.1
READLINE_MARK
andPROMPT_COMMANDS
#D1328
e97a858#D1338
657bea5- edit, main: support array PROMPT_COMMAND in bash-5.1
#D1380
b852a4f
- edit, main: support array PROMPT_COMMAND in bash-5.1
- syntax: support confusing parameter expansions like
${#@}
, etc.#D1330
b7b42eb - contrib: add contrib for user settings
#D1335
f290115 - syntax: support
${var@UuLK}
in Bash 5.1#D1336
04da4dd - main: add an option
--test
#D1340
1410c72 - util (
ble/builtin/trap
): supportreturn
inINT
/EXIT
/WINCH
#D1347
#D1348
3865488 - history: support timestamp (reported by rux616)
#D1351
4bcbd71#D1356
350bb15#D1364
1d8adf9 - edit: support Bash 4.4
PS0
#D1357
23a1ac5 - vi: support
bleopt keymap_vi_mode_{update_prompt,show,name_*}
(suggested by Dave-Elec)#D1365
76be6f1 - prompt: support prompt sequence
\q{...}
#D1365
76be6f1 - edit: support
bind 'set show-mode-in-prompt'
#D1365
76be6f1 - prompt: support
bleopt prompt_{{ps1,rps1}{_final,_transient}}
(suggested by Dave-Elec)#D1366
06381c9 - edit: support Bash 5.1 widgets
#D1368
e747ee3 - color: support
TERM=*-direct
#D1369
0d38897#D1370
f7dc477 - complete: support
bleopt complete_auto_menu
#D1373
77bfabd- complete: fix a problem of frequent bells with auto-menu activated
#D1381
3b1d8ac
- complete: fix a problem of frequent bells with auto-menu activated
- complete: support
bleopt complete_menu_maxlines
#D1375
8e81cd7 - prompt: support
_ble_prompt_update
#D1376
0fa8739 - prompt: support
bleopt prompt_{xterm_title,screen_title,status_line}
#D1378
5c3f6fe- prompt: check
TERM
for prompt window titles when_ble_term_TERM
is unavailable#D1388
3c88869
- prompt: check
- syntax: support options
bleopt highlight_{syntax,filename,vartype}
to turn off highlighting (requested by pjmp)#D1379
0116f8b - complete: support
shopt progcomp_alias
#D1397
d68afa5 - complete: generate completions of options based on man pages
#D1405
8183455- complete (mandb): fix a bug that
bleopt complete_menu_style
is globally changed#D1412
b91fd10
- complete (mandb): fix a bug that
- highlight: support colon separated lists of paths
#D1409
2f40422- highlight: fix a bug that non-simple words are always highlighted as
syntax_error
(reported by cmplstofB)#D1411
46e2ac6 - highlight: fix a bug that words are sometimes unhighlighted
#D1418
4395484 - highlight: fix a bug that non-existent directories are not highlighted in the command name context
#D1419
4395484
- highlight: fix a bug that non-simple words are always highlighted as
- highlight: support options
#D1410
2f40422
Changes
- highlight: highlight symlink directories as symlinks
#D1249
25e8a72 - auto-complete: bind
insert-on-end
toC-e
#D1250
90b45eb - edit (
widget/shell-expand-line
): not quote expanded results by default#D1255
a9b7810 - decode: refactor
- decode: delay bind until keymap initialization
#D1258
0beac33 - decode: read user settings from
bind -Xsp
#D1259
eef14d0 - decode: fix a bug of
ble-bind
with uninitialized cmap#D1260
5d98210 - decode: fix error messages of BSD
sed
rejecting unencoded bytes frombind -p
(reported by dylankb)#D1277
0cc9160
- decode: delay bind until keymap initialization
- edit: provide proper
$BASH_COMMAND
and$_
for PS1, PROMPT_COMMAND, PRECMD, etc.#D1276
7db48dc - edit (quoted-insert): insert literal key sequence
#D1291
420c933 - decode: support
decode_abort_char
formodifyOtherKeys
#D1293
ad98416 - edit (edit-and-execute): disable highlighting of old command line content
#D1295
2f9a000 - util (
bleopt
): fail when a specified bleopt variable does not exist (test-util) 5966f22 - builtin: let redefined builtins return 2 for
--help
#D1323
731896c - edit: preserve
PS1
wheninternal_suppress_bash_output
is set#D1344
6ede0c7 - complete: complete param expan in additional contexts
#D1358
3683305 - main: reload on ble-update when ble.sh is already updated
#D1359
a441d4d - main (
ble-update
): clone github repository if the original repository is not found#D1363
6e3b3b5 - util (bleopt): change output format d4b12cd
- syntax: allow
time -- command
for Bash 5.1#D1367
00d0e93 - menu: preserve columns with
{forward,backward}-line
#D1396
3d5a341 - syntax: rename
ble_debug
tobleopt syntax_debug
#D1398
3cda58b - syntax: change a style of buffer contents in
bleopt syntax_debug
#D1399
3cda58b - complete: change to generate filenames starting from
.
by default#D1425
987436d
Fix
- util (ble/builtin/trap): fix argument analysis for the form
trap INT
(reported by dylankb)#D1221
db8b0c2 - main: fix an error message on ristricted shells
#D1220
b726225 - edit: fix a bug that the shell hangs with
source ble.sh --noattach && ble-attach
(reported by dylankb)#D1223
59c1ce4 3031007 - edit: fix a bug that the textarea state is not properly saved (reported by cmplstofB)
#D1227
06ae2b1 - syntax: support hexadecimal literals for arithmetic expression (reported by cmplstofB)
#D1228
90e4f35 - history: fix a bug that history append does not work with
set -C
(reported by cmplstofB)#D1229
604bb8b - decode (
ble/builtin/bind
): fix widget mapping fordefault_keymap=safe
#D1234
750a9f5 - main (ble-update): fix a bug that the check of
make
does not work in Bash 3.2#D1236
08ced81 - syntax: fix a infinite loop for variable assignments and parameter expansions
#D1239
327661f - complete: clear menu on history move
#D1248
06cc7de - syntax: fix a bug that arguments of
eval
are not highlighted#D1254
5046d14 - decode: fix error message
command=${[key]-}
for mouse input#D1263
09bb274 - [ble-0.3] reload: fix a bug that the state is broken by
ble-reload
#D1266
f2f30d1 - decode (
ble/builtin/bind
): remove comment from bind argument#D1267
880bb2c - decode: use
BRE
instead ofERE
forPOSIX sed
(reported by dylankb)#D1283
2184739 - decode: fix strange behaviors after
fzf
(convert DEL to C-?)#D1281
744c8e8 - edit: work around Bash rebinding on
TERM
change#D1287
ac7ab55 7a99bf3 - term: work around terminfo/termcap entry collisions in
tput
(reported by killermoehre)#D1289
f8c54ef - complete: clear menu on discard-line (reported by animecyc)
#D1290
fb794b3#D1315
99880ef - vi (vi-command/nth-column): fix a bug in arithmetic expansion (reported by andychu)
#D1292
da6cc47 - complete: fix a bug that insert-word does not for with ambiguous candidates
#D1295
2f9a000 - complete: fix a bug that menu-filter is only partially turned off by
complete_menu_filter
#D1298
b3654e2 - decode: fix error messages for unsupported readline functions
#D1301
91bdb64 - global: work around
shopt -s assoc_expand_once
#D1305
31908e1 - global: work around
TMOUT
forbuiltin read
#D1306
1c22a9d - syntax: fix failglob errors of heredocs of the form
<<$(echo A)
#D1308
3212fd2 - decode (
ble-bind
): fix an error message#D1311
c868b6d - util (
bleopt
): fix a bug that a new setting is not defined withname:=
(test-util)#D1312
c757b92 - util (
ble/util/{save,restore}-vars
): fix a bug thatname
andprefix
cannot be saved/restored (test-util) 5f2480c - util: fix
ble/is-{inttype,readonly,transformed}
(test-util) 485e1ac - util (
ble/path#remove{,-glob}
): fix corner cases (test-util) ccbc9f8 - history: fix a problem that the history is doubled by
history -a
inbashrc
#D1314
34821fe - util (
ble/variable#get-attr
): fix an error message with special variable names such as?
and*
#D1321
557b774 - util (has-glob-pattern): fix abort in subshells (test-util)
#D1326
dc292a2 - edit: fix a bug that
set +H
is cancelled on command execution#D1332
02bdf4e - syntax (
ble/syntax/parse/shift
): fix a bug of shift skip in nested words#D1333
65fbba0 - global: work around Bash-4.4
return
in trap handlers#D1334
aa09d15 - util (
ble-stackdump
): fix a shift of line numbers#D1337
a14b72f d785b64 - edit (
ble-bind -x
): check range ofREADLINE_{POINT,MARK}
#D1339
efe1e81 - main: fix a bug that
~/.config/blesh/init.sh
is not detected (GitHub #53 by rux616) 61f9e10 - util (
ble/string#to{upper,lower}
): work aroundLC_COLLATE=en_US.utf8
(test-util)#D1341
1f6b44e#D1355
4da6103 5f0d49f - util (encoding, keyseq): fix miscelleneous encoding bugs (test-util) 435bd16
ble/util/c2keyseq
: work around bash ambiguous keyseq\M-\C-\\
ble/util/c2keyseq
: fix a bug thatC1
characters are not properly encodedble/util/keyseq2chars
: fix a bug that\xHH
is not properly processedble/encoding:UTF-8/b2c
: work around Bash-4.2 arithmetic crashble/encoding:UTF-8/b2c
: fix a bug thatG0
characters lose its seventh bitble/encoding:UTF-8/c2b
: fix a bug that the first byte gets redundant bits
- edit: work around
WINCH
not updatingCOLUMNS
/LINES
afterble-reload
#D1345
a190455 - complete: initialize
bleopt complete_menu_style
options beforecomplete_load
hook (reported by rux616)#D1352
8a9a386 - main: fix problems caused by multiple
source ble.sh
in bashrc#D1354
5476933 - syntax: allow single-character variable name in named redirections
{a}<>
#D1360
4760409 - complete: quote
#
and~
at the beginning of word#D1362
f62fe54 - decode (
bind
): work aroundshopt -s nocasematch
(reported by tigger04)#D1372
855cacf - syntax (tree-enumerate): fix unmodified
wtype
of reconstructed words at the end#D1385
98576c7 - complete: fix a bug that progcomp retry by 124 caused the default completion again
#D1386
98576c7 - complete: fix bugs that quotation disappears on ambiguous completion
#D1387
98576c7 - complete: fix a bug of duplicated completions of filenames with spaces
#D1390
98576c7 - complete: fix superlinear performace of ambiguous matching globpat
#D1389
71afaba - prompt: fix extra spaces on line folding before double width character
#D1400
d84bcd8 - prompt: fix a bug that lonig rps1 is not correctly turned off
#D1401
d84bcd8 - syntax (glob bracket expression): fix a bug of unsupported POSIX brackets
#D1402
6fd9e22 - syntax (
ble/syntax:bash/simple-word/evaluate-path-spec
): fix a bug of unrecognized[!...]
and[^...]
#D1403
0b842f5 - complete (
cd
): fix duplicate candidates byCDPATH
(reported by Lennart00 atoh-my-bash
)#D1415
5777d7f - complete (
source:file
): fix a bug that tilde expansion candidates are always filtered out#D1416
5777d7f - complete: fix a problem of redundant unmatched ambiguous part with tilde expansions in the common prefix
#D1417
5777d7f - highlight: fix remaininig highlighting of vanishing words
#D1421
#D1422
1066653 - complete: fix a problem that the user setting
dotglob
is changed#D1425
987436d
Compatibility
- main: work around cygwin uninitialized environment
#D1225
#D1226
b9278bc - global: work around Bash 3.2 bug of array initialization with SOH/DEL
#D1238
defdbd4#D1241
1720ec0 - term: support
TERM=minix
#D1262
ae0b80f - msys2: support2 MSYS (motivated by SUCHMOKUO)
#D1264
47e2863 - msys1: support MSYS1
#D1272
630d659- msys1: work around missing named pipes in MSYS1
#D1273
6f6c2e5
- msys1: work around missing named pipes in MSYS1
- term: support contra
SPD
#D1288
1e65f2c - decode: work around Bash-4.1 bug that locale not applied with
LC_CTYPE=C eval command
(test-util) b2c7d1c - util (
ble/variable#get-attr
): fix a bug that attributes are not obtained in Bash <= 4.3 (test-util) b2c7d1c - decode: work around Bash-3.1 bug of
declare -f
rejecting special characters in function names (test-util) b2c7d1c - edit (
ble/widget/bracketed-paste
): fix error messages onpaste_end
in older version of Bash (test-util) b2c7d1c - decode: work around Bash-4.1 arithmetic bug of array subscripts evaluated in discarded branches
#D1320
557b774 - complete: follow Bash-5.1 change of arithmetic literal
10#
#D1322
557b774 - decode: fix a bug of broken cmap cache found in ble-0.3
#D1327
16b56bf - util (strftime): fix a bug not working with
-v var
option in Bash <= 4.1 (test-util) f1a2818 - complete: work around slow
compgen -c
in Cygwin#D1329
5327f5d - edit: work around problems with
mc
(reported by onelittlehope)#D1392
e97aa07
Internal changes and fixes
- util: merge
ble/util/{save,restore}-{arrs => vars}
#D1217
6acb9a3 - internal: merge subdir
test
intomemo
#D1230
f0c38b6 - ble-measure: improve calibration
DD1231
d3a7a52 - vi_test: fix a bug that test fails to restore the original state
#D1232
4b882fb - decode (ble/builtin/bind): skip checking stdin in parsing the keyseq
#D1235
5f949e8 - syntax: delay load of
ble/syntax/parse
for syntax highlighting#D1237
bb31b11 - memo: split
memo.txt
->note.txt
,done.txt
andChangeLog.md
#D1243
31bc9aa 8b0fe34 419155e - global: check isolated identifiers and leak variables
#D1246
19cc99d 2e74b6d - util: add
ble/function#{advice,push,pop}
to patch functions (motivated by dylankb)#D1275
fbe531a - util (
ble/util/stackdump
): output tostdout
instead ofstderr
#D1279
9d3c50d - complete (
ble-sabbrev
): delay initialization#D1282
dfc4f66 - test: update
lib/test-{core => util}.sh
(reported by andychu)#D1294
e835b0d - edit: improve performance of bracketed-paste
#D1296
0a45596#D1300
3f33dab#D1302
5ee06c8 10ad274 - decode: improve performance of
ble-decode-char
#D1297
0d9d867 - ext: update
mwg_pp.awk
(for branch osh) 978ea32 - test: add
lib/core-test.sh
#D1309
68f8077 - global: do not use
local -i
#D1310
f9f0f9b - global: normalize calls of builtins
#D1313
b3b06f7 - test: refactor test
#D1316
#D1317
6c2f863 - util (
ble/util/openat
): change to open unused fds#D1318
6c2f863 - util: rename
ble/{util/openat => fd#alloc}
#D1319
6c2f863 - util (
ble/function#advice remove
): restore original command 149a640 - edit: rename
ble-edit/prompt/*
->ble/prompt/*
#D1365
76be6f1 - main: use
PROMPT_COMMAND
in bash-5.1 for prompt attach#D1380
b852a4f - main: unset
BLE_VERSION
,_ble_bash
, etc. onble-unload
#D1382
6b615b6 - util: revisit
ble/variable#is-global
implementation#D1383
6b5468f - cmap: recognize SS3 O as blur
#D1384
445a5ad - edit (
ble/widget/{accept-line,newline}
): automatically switch widgets by the keymap#D1391
5bed6e6 - complete: perform filter in
ble/complete/cand/yield
#D1404
7c6b67b 83fa830 - syntax, edit: use
type -a -t -- cmd
to get command types hidden by keywords#D1406
ef2d912 - edit, complete: replace some external commands with Bash builtin
#D1407
5386e93