Во-первых, автодополнение Bash -просто читает то, что вы вводите в командной строке, не разрешая псевдонимы. Если вы поместите имя команды, то он читает имя команды. Если вы ставите псевдоним, то он читает псевдоним. Итак, что касается завершения, gv
не имеет ничего общего с gvim
в вашем случае. На самом деле, gv
— это имя, определенное в сценарии bash -завершения как:
_install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
complete -F _filedir_xspec gv
Таким образом, в основном он соответствует только несжатым и сжатым файлам ps и pdf.
Насколько я знаю, у вас есть 2 способа справиться с этим:
Установите альтернативное завершение для gv
на другую функцию. Например, _longopt
работает в вашем случае:
complete -F _longopt gv
Напишите общую функцию завершения псевдонима и используйте ее в gv
. К счастью, кто-то сделал это за вас:https://github.com/cykerway/complete-alias
С GNU awk для FPAT:
$ cat tst.awk
BEGIN { FPAT="[^,]*|\"[^\"]*\"" }
{
print
for (i=1; i<=NF; i++) {
print "\t" i, "<" $i ">"
}
print "---"
}
$ awk -f tst.awk file
Apple,10,12,...
1 <Apple>
2 <10>
3 <12>
4 <...>
---
Banana,5,10,...
1 <Banana>
2 <5>
3 <10>
4 <...>
---
"Banana, green",3,14,...
1 <"Banana, green">
2 <3>
3 <14>
4 <...>
---