Portál AbcLinuxu, 1. května 2025 01:15
[regnarg@klofy backup]$ cat /data/zalohy/backupinfo.I2010071916 <Tab>
backupinfo.I20100719163732 backupinfo.I20100719163737 backupinfo.I20100719163837 backupinfo.I20100719164538 backupinfo.I20100719164556
První kus se mi sice doplnil, ale na první pohled je těžké si srovnat, jak velký, a čím bych vlastně měl v psaní pokračovat. Mohl bych odpočítávat znaky nebo hledat zapamatovatelné posloupnosti, ale to je dost pomalé. Tohle mě vždycky hrozně zmate... a naštve.
Přitom by se to dalo vyřešit docela jednoduše: potřebný kousek si nějak (barevně, podtržením) zvýraznit. Třeba aspoň oddělit již napsanou část od té, která se doplňuje. Nebo ještě lépe zvýraznit právě ty znaky, jenž jsou potřebné k jednoznačnému doplnění. Pak když si vyhlédnu nějaký název, okamžitě vidím, co musím napsat, abych jej dostal:
[regnarg@klofy backup]$ cat /data/zalohy/backupinfo.I2010071916 <Tab>
backupinfo.I20100719163732 backupinfo.I20100719163737 backupinfo.I20100719163837 backupinfo.I20100719164538 backupinfo.I20100719164556
Ale předpokládám, že tohle asi bez patchování readline nepůjde...
Tiskni
Sdílej:
Pěkný nápad. Napiš jim feature request.
"Jim" myšleno zřejmě do bashe...
mycomplete() { local cur=$2 len=${#2} oifs=$IFS [ $len -gt 0 ] || return IFS=$'\n' COMPREPLY=($(compgen -A file -- $cur | sort)) if [ ${#COMPREPLY[*]} -gt 1 -a \ "${COMPREPLY[0]:0:$((len+1))}" != "${COMPREPLY[1]:0:$((len+1))}" ] then echo echo "${COMPREPLY[*]}" \ | head -10 \ | sed 's/^\(.\{'$len'\}\)\(.*\)/\1\x1b[1;32m\2\x1b[0m/' echo -n "\$ $COMP_LINE" fi IFS=$oifs } complete -o filenames -F mycomplete ls cp mv rm cat
$ ls -l li<TAB> libord linux-2.4.36.2.tar.bz2 linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l lin<TAB> $ ls -l linux-2.<TAB> linux-2.4.36.2.tar.bz2 linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l linux-2.6<TAB> $ ls -l linux-2.6.2<TAB> linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l linux-2.6.25<TAB> $ ls -l linux-2.6.25.<TAB> linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 $ ls -l linux-2.6.25.t<TAB> $ ls -l linux-2.6.25.tar.bz2 <ENTER> -rw-r--r-- 1 root root 48601689 2008-04-18 20:58 linux-2.6.25.tar.bz2
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.