ksh et autocompletion
#1

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 Smile
Répondre
#2

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
Répondre
#3

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
Répondre
#4

Je viens de m'assurer que ça fonctionne correct en tty, en mode terminal by ssh, c'est le cas Wink

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
Répondre
#5

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)
Répondre
#6

Oui, j'utilise ksh au quotidien, avec des exemples de ce site : https://deftly.net/posts/2017-05-01-open...plete.html
Répondre
#7

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
Répondre
#8

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
Code :
pkg_info ly
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 ? Smile
Répondre
#9

je sais comment fonctionne l'auto-complétion Wink

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
Répondre
#10

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
Répondre
#11

(08-01-2019, 19:09:50)PengouinBSD a écrit :  je sais comment fonctionne l'auto-complétion Wink

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 Wink

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 Smile
Répondre
#12

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 !!!! Big Grin

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
Répondre
#13

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
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)