gfishline/README.md

81 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 |