Как заметил Джон Литтл,(спасибо ! ), это связано сfcitx
(hamster-cli:4440): GLib-GIO-CRITICAL **: 13:54:40.431: g_dbus_proxy_new: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
sudo apt purge fcitx-module-dbus
устранил симптом. Протестировано в lubuntu-18.10
, рабочий стол по умолчанию (LXQt
).
Отличный вызов! Попробуйте это в командной строке, если работает, добавьте в ~/.zshrc
bindkey '^I' dotcomplete
zle -N dotcomplete
function dotcomplete() {
if [[ $BUFFER =~ ^'\.'$ ]]; then
BUFFER='./'
CURSOR=2
zle list-choices
else
zle expand-or-complete
fi
}
Он добавляет функцию, которая запускается каждый раз, когда вы нажимаете TAB (^I ). Если введенная вами строка содержит только точку (^=начало строки, '\.' =super -экранирует точку, $=конец строки ), затем заменяет эту точку на./, затем продолжает нормальное завершение.
Это не совсем то, о чем вы просите, то есть рассматривать точку как текущий каталог. Но это сэкономит вам нажатия клавиш, которые вы хотите сохранить.
Учитывая ваш f<TAB>
вариант/обходной путь, я представляю:
$ function f(){ local x=$1; shift;./"$x" "$@"; }
$ f foo<TAB>
обратите внимание на пробел после f в последней строке