Ajout de Ctrl-L en tant que raccourci clavier «effacer» dans le ksh d'OpenBSD

8

Je cherchais un moyen d'utiliser Ctrl- Lpour effacer le moniteur au lieu de taper clearà chaque fois. Je n'ai rien trouvé sauf un patch qui ne fonctionnait pas pour moi. Comment ajouter des raccourcis clavier / raccourcis à ma boîte OpenBSD (qui utilise ksh comme shell)?

[*] Ksh.kshrc d'OpenBSD

[*] Ctrl-l en hex = 0xc:

# clé de lecture; echo -n $ key> file.txt; fichier hexdump.txt
^ L
0000000 000c                                   
0000001
# 

la source

Réponses:

5

Selon la page de manuel d'OpenBSD ksh , Ctrl+ Lest lié à redessiner.

 redraw: ^L
         Reprints the prompt string and the current input line.

Si cela ne suffit pas, je ne vois aucune commande d'édition qui pourrait aider, donc je suggère d'en savoir plus bind -m.

Vous pouvez peut-être faire quelque chose comme bind -m '^L'=clear'^J'le faire taper clear Enter.

Mikel
la source
J'ai testé bind -m '^L'=clear'^J'sur OpenBSD 4.9 et cela fonctionne.
Mikel
C'est résolu, Mikel & shellter vous remercient de votre aide.
3

Pour ce faire, vous devriez pouvoir ajouter un alias à votre .kshrc. Essayer

alias "^L"=clear

^Lest le caractère unique Ctrl- L. Vous pourriez ne pas avoir besoin de la citation, si cela ne fonctionne toujours pas, le dernier recours serait de l'échapper comme (ce que vous tapez, pas ce qui sera visible dans votre fichier) Ctrl- VCtrl- L→ clear.

IHTH

shellter
la source
1
Merci shellter mais cela fonctionne pour bash pas ksh.
@Barakat: Qu'est-ce qui ne fonctionne pas? Quel est le message d'erreur? Cela fonctionne dans mon environnement ksh ;-) (et je suis sûr que cela aurait fonctionné là où j'ai utilisé les ksh Solaris et AIX). Hmm. relisez votre message et voyez que vous faites référence à OpenBSD ksh. Désolé je n'ai pas d'expérience avec ça. Est-il possible que ce soit vraiment pdksh? Bonne chance.
shellter
@Barakat: Une autre chose, avez-vous redémarré votre shell après avoir ajouté la définition d'alias à .kshrc. Ou vous pouvez l'ajouter à ~ / .profile puis démarrer un nouveau shell.
shellter