Objevil jsem fajn vlastnost bash: Ctrl-X E - vezme aktualni editovany
radek, zapise ho do docasneho souboru, otevre vas vybrany VISUAL/EDITOR,
necha vas radek upravit nebo napsat a po ukonceni provede obsah souboru jako
prikaz.
Jedna se o operaci, kterou muzete v man bash najit jako
edit-and-execute-command
Jeji dobre rozsireni je popsano zde: https://superuser.com/a/1601690
Udela to same, jako edit-and-execute-command, ale jen editovany radek
pripravi jako rozepsany k provedeni. Je to vlastne reimplementace te operace
pomoci bashove funkce:
_edit_wo_executing() {
local editor="${EDITOR:-nano}"
tmpf="$(mktemp).sh"
printf '%s\n' "$READLINE_LINE" > "$tmpf"
$editor "$tmpf"
READLINE_LINE="$(<"$tmpf")"
READLINE_POINT="${#READLINE_LINE}"
rm -f "$tmpf"
}
bind -x '"\C-x\C-e":_edit_wo_executing'
---
Oproti prikladu jsem dodal -f k rm, protoze mam alias rm='rm -i', tak aby se
neptal.
BTW, je to dost dobra advanced ukazka bashoveho levelu. :-)
V te funkci je hodne zajimave to hrani si s READLINE_*
Take dokumentovano v man bash.
T.
|