Messages : 29
Sujets : 7
Inscription : Dec 2018
Bonjour à tous,
Je voulais savoir si certains utilisaient ksh par défaut (étant donné que c'est le shell par défaut d'OpenBSD) et si vous utilisiez un système d'autocomplétion.
Sauf erreur de ma part, je n'ai pas trouvé de package en ce sens comme pour bash (bash_completion).
Merci
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
Beh, peut-être parce que ça marche sans soucis par défaut ?!
(du moins sous X, avec Xfce-terminal). :p
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 729
Sujets : 134
Inscription : Jun 2017
Je confirme que même pour un serveur sans interface graphique ça fonctionne pas mal. Pas au niveau d'un
FISH, mais suffisant pour l'administration courante.
« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. » Antoine de Saint-Exupéry
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
Je viens de m'assurer que ça fonctionne correct en tty, en mode terminal by ssh, c'est le cas
Donc, je ne comprends pas pourquoi ce ne serait pas le cas pour toi ?!
tu commences bien par taper les deux, trois premières lettres puis sur la touche TAB(ulation) ?!
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 285
Sujets : 11
Inscription : Oct 2017
Peut-être que caywin voulait dire l'autocomplétion des arguments ?
Si oui, des lignes du genre :
Code :
set -A complete_ssh -- $(awk -F '[ ,]' '/^[a-z]/ {print $1}' ~/.ssh/known_hosts)
dans ton .kshrc ou un fichier que tu sources depuis ton .kshrc
te permettent une complétion aux petits oignons.
(à adapter aux commandes pour lesquelles tu veux l'autocomplétion,
ça fonctionne aussi pour tes scripts tant qu'ils sont dans ton PATH)
Messages : 1 862
Sujets : 90
Inscription : Oct 2017
Oui, j'utilise ksh au quotidien, avec des exemples de ce site :
https://deftly.net/posts/2017-05-01-open...plete.html
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
C'est quoi la relation entre l'auto-complétion et les complétions en questions - dont il est parlé dans l'article donné par @thuban... ?
D'autant que je ne comprends pas ce qu'il dit. Je comprends les mots, les concepts, mais pas du tout comment ça fonctionne ! Quid ?
C'est quoi la différence avec un alias de commande + options ?
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 1 862
Sujets : 90
Inscription : Oct 2017
Rien à voir avec les alias.
La completion te permet d'appuyer sur "TAB" et d'avoir des propositions correspondant à ce que tu as déjà tapé.
Ça permet notamment d'avoir des propositions sur les options associées aux commandes que tu veux lancer.
Pour pkg_info par exemple, si j'entre
puis appuie sur TAB, je vois alors apparaître
Code :
pkg_info lynx-2.8.9rel1
directement, qui est installé sur mon système.
Tu imagines la puissance du truc ?
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
je sais comment fonctionne l'auto-complétion
Et, non, je ne vois/comprends pas la puissance du truc, car je n'arrive pas à comprendre comment ça fonctionne ?
je comprends qu'on déclare un tableau qui reçoit plusieurs "arguments".
Mais, je ne comprends pas comment ça fonctionne ensuite !
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 729
Sujets : 134
Inscription : Jun 2017
humm, je vais reprendre le fichier pour définir les auto-completion :-D
« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. » Antoine de Saint-Exupéry
Messages : 762
Sujets : 20
Inscription : Jan 2019
(08-01-2019, 19:09:50)PengouinBSD a écrit : je sais comment fonctionne l'auto-complétion 
Et, non, je ne vois/comprends pas la puissance du truc, car je n'arrive pas à comprendre comment ça fonctionne ?
je comprends qu'on déclare un tableau qui reçoit plusieurs "arguments".
Mais, je ne comprends pas comment ça fonctionne ensuite !
c'est assez simple
le code suivant :
set -A complete_tmux_1 -- attach list-sessions
fait que si tu tapes tmux [TAB] il va te proposer "attach" et "list-sessions"
j'ai un petit script qui s'appelle "doc", je lui ai fait une complétion tout bête:
set -A complete_doc_1 -- ls edit history cat rm last
set -A complete_doc_2 -- $(find ~/doc/ -type f)
le première paramètre proposé par TAB est parmi "ls edit history cat rm last" et le deuxième paramètre provient de la liste des fichiers faite par find
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
Ahh, quand il y complete_command_1 complete_command_2 complete_command_n, cela spécifie le nombre d'arguments possible à la commande qui chacun retourneront l'équivalent du tableau déclaré selon la commande, argument après argument !!!
(faut passer par le premier argument, puis un second s'il existe, et ainsi de suite...)
OKay !!!!
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 4 297
Sujets : 868
Inscription : Dec 2016
Et, bien, je viens de créer ma première commande d'autocomplémention pour l'outil Python 'pipes'…
et, j'avoue, c'est bluffant ! :p
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 36
Sujets : 5
Inscription : May 2019
Voilà qui est bien utile... l'exemple au message #11 proposé par @solene est assez parlant, j'ai pu combler sans difficulté mes besoins pour la commande doas :
Code :
set -A complete_doas_1 -- rm mv cp vi cat
set -A complete_doas_2 -- $(find ~/ -type f)
(EDIT : je ne crois pas que la seconde ligne soit utile, en fait)
(Modification du message : 18-12-2020, 22:11:33 par
sylvainsab.)
Messages : 762
Sujets : 20
Inscription : Jan 2019
(18-12-2020, 22:07:05)sylvainsab a écrit : Voilà qui est bien utile... l'exemple au message #11 proposé par @solene est assez parlant, j'ai pu combler sans difficulté mes besoins pour la commande doas :
Code :
set -A complete_doas_1 -- rm mv cp vi cat
set -A complete_doas_2 -- $(find ~/ -type f)
(EDIT : je ne crois pas que la seconde ligne soit utile, en fait)
la 2eme ligne est une grosse erreur. Cette fonction sera lancée à chaque démarrage d'un shell car l'auto complétion est calculée au chargement de la configuration.

Pour mon exemple ce n'était pas un soucis, il y a environ 10 fichiers à tout casser ^^
(Modification du message : 18-12-2020, 22:45:57 par
solene.)
Messages : 36
Sujets : 5
Inscription : May 2019
(18-12-2020, 22:45:03)solene a écrit : (18-12-2020, 22:07:05)sylvainsab a écrit : Voilà qui est bien utile... l'exemple au message #11 proposé par @solene est assez parlant, j'ai pu combler sans difficulté mes besoins pour la commande doas :
Code :
set -A complete_doas_1 -- rm mv cp vi cat
set -A complete_doas_2 -- $(find ~/ -type f)
(EDIT : je ne crois pas que la seconde ligne soit utile, en fait)
la 2eme ligne est une grosse erreur. Cette fonction sera lancée à chaque démarrage d'un shell car l'auto complétion est calculée au chargement de la configuration. 
Pour mon exemple ce n'était pas un soucis, il y a environ 10 fichiers à tout casser ^^
Arf, merci de relever…
Heureusement je maintiens mon répertoire home assez propre, et j'avais commenté de toute façon
(Modification du message : 21-01-2021, 03:19:56 par
sylvainsab.)