2024-03-02 13:36:01 +00:00
|
|
|
|
# greadline
|
2023-11-04 10:42:57 +00:00
|
|
|
|
|
2024-03-02 13:36:01 +00:00
|
|
|
|
Greadline est un prompt Linux qui se veut similaire à C readline mais en ligne de commande.
|
2023-11-04 11:43:30 +00:00
|
|
|
|
|
|
|
|
|
## Utilisation typique
|
|
|
|
|
|
2024-03-02 13:36:01 +00:00
|
|
|
|
Greadline peut être utilisé de la façon suivante :
|
2023-11-04 11:43:30 +00:00
|
|
|
|
|
|
|
|
|
```go
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"os"
|
2024-03-02 13:36:01 +00:00
|
|
|
|
"gitea.zaclys.net/bvaudour/greadline"
|
2023-11-04 11:43:30 +00:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
prompt := "\033[1;31m> \033[m"
|
2024-03-02 13:36:01 +00:00
|
|
|
|
rl := greadline.New()
|
|
|
|
|
defer greadline.Close()
|
2023-11-04 11:43:30 +00:00
|
|
|
|
for {
|
|
|
|
|
input := rl.Prompt(prompt) // rl.PromptPassword(prompt) pour masquer ce qui est saisi
|
|
|
|
|
if result, ok := input.Ok(); ok {
|
|
|
|
|
//@TODO Do some stuff with input
|
|
|
|
|
if result == "exit" {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
} else if err, ok := input.Err(); ok {
|
|
|
|
|
fmt.Printf("\033[1,31mErreur système : %s\033[m\n", err)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Raccourcis clavier <u>disponibles</u>
|
|
|
|
|
|
|
|
|
|
| Raccourci clavier | Action |
|
|
|
|
|
| -------------------------------------- | ------------------------------------------------------------ |
|
|
|
|
|
| Ctrl+A, Home | Retour au début de la saisie |
|
|
|
|
|
| Ctrl+E, End | Retour à la fin de la saisie |
|
|
|
|
|
| Ctrl+B, Left | Déplacement d’un caractère vers la gauche |
|
|
|
|
|
| Ctrl+F, Right | Déplacement d’un caractère vers la droite |
|
|
|
|
|
| Alt+B, Ctrl+Left | Déplacement d’un mot vers la gauche |
|
|
|
|
|
| Alt+F, Ctrl+Right | Déplacement d’un mot vers la droite |
|
|
|
|
|
| Ctrl+U | Suppression de tous les caractères du début de la ligne au curseur (curseur non compris) |
|
|
|
|
|
| Ctrl+K | Suppression de tous les carctères du curseur (compris) à la fin de la ligne |
|
|
|
|
|
| Ctrl+D (si saisie commencée), Del | Suppression du caractère sous le curseur |
|
|
|
|
|
| Ctrl+D (si ligne vide) | Termine l’application (EOF) |
|
|
|
|
|
| Ctrl+H, Backspace | Suppression du caractère avant le curseur |
|
|
|
|
|
| Alt+D, Alt+Del | Suppression du prochain mot |
|
|
|
|
|
| Alt+Backspace | Suppression du précédent mot |
|
|
|
|
|
| Ctrl+C | Termine l’application (avec erreur) |
|
|
|
|
|
| Ctrl+P, Up (si ligne vide au départ) | Remonte à l’historique précédent |
|
|
|
|
|
| Ctrl+N, Down (si ligne vide au départ) | Descend dans l’historique |
|
|
|
|
|
| Ctrl+R, Up (si ligne non vide) | Recherche dans l’historique (par préfixe de ligne) à partir de la fin |
|
|
|
|
|
| Ctrl+S, Down (si ligne non vide) | Recherche dans l’historique (par préfixe de ligne) à partir du début |
|
|
|
|
|
| Ctrl+Y | Copie le dernier élément supprimé |
|
|
|
|
|
| Alt+Y | Remonte dans l’historique des éléments supprimés et les copie (implique Ctrl+Y précédemment lancé) |
|
|
|
|
|
| Ctrl+G, Cancel | Annule les dernières actions temporaires (historique, recherche, copie, historique de copie) |
|