gfishline/README.md

81 lines
5.3 KiB
Markdown
Raw Normal View History

2024-03-02 14:05:33 +00:00
# gfishline
Gfishline est un prompt Linux inspiré de fish.
Il supporte la coloration syntaxique et lautocomplétion.
## Utilisationtypique
Gfishline peut être utilisé de la façon suivante:
```go
package main
import (
"fmt"
"os"
"gitea.zaclys.net/bvaudour/gfishline"
)
func main() {
prompt := "\033[1;31m> \033[m"
fl := gfishline.New()
// Les deux lignes ci-dessous permettent dutiliser la complétion et le formatage par défaut.
//
// Pour une complétion plus élaborée, utilisez fl.SetCompleter(cb) où cb est une fonction de la forme
// `func (word []string, wordIndex []string, isSpaceIndex bool) (choices []string)`.
//
// Pour un formatage plus élaboré, utilisez fl.SetFormater(cb) où cb est une fonction de la forme
// `func (in [string) (out [string])`.
fl.SetCommands("help", "exit", "print")
fl.SetOptions("--help", "-h")
defer fl.Close()
for {
input := fl.Prompt(prompt) // fl.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 dun caractère vers la gauche |
| Ctrl+F, Right | Déplacement dun caractère vers la droite |
| Alt+B, Ctrl+Left | Déplacement dun mot vers la gauche |
| Alt+F, Ctrl+Right | Déplacement dun 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 lapplication (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 lapplication (avec erreur) |
| Ctrl+P, Up (si ligne vide au départ) | Remonte à lhistorique précédent |
| Ctrl+N, Down (si ligne vide au départ) | Descend dans lhistorique |
| Ctrl+R, Up (si ligne non vide) | Recherche dans lhistorique (par préfixe de ligne) à partir de la fin |
| Ctrl+S, Down (si ligne non vide) | Recherche dans lhistorique (par préfixe de ligne) à partir du début |
| Ctrl+Y | Copie le dernier élément supprimé |
| Alt+Y | Remonte dans lhistorique 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) |
| Tab, Up (si complétion commencée) | Complétion suivante |
| Shift+Tab, Down (si complétion commencée) | Complétion précédente |
| Left (si complétion commencée) | Complétion à gauche |
| Right (si complétion commencée) | Complétion à droite |