turbo-editors/turbo-pythonpublic Fork 0
v1.0.1
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-python.git
git clone ssh://git@rickub.com/turbo-editors/turbo-python.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

📦 Turbo Python 6fc62ea · on v1.0.1 · k33g · 10h ago
getting-started.md · 216 lines · 7.9 KBmarkdown
Blame HistoryOpen raw

Tutoriel : votre premier fichier dans Turbo Python

À la fin de ce tutoriel, vous aurez compilé l'éditeur, écrit un petit programme Python dedans, vu les mots-clés changer de couleur à la frappe, enregistré le fichier et exécuté le résultat. Comptez une dizaine de minutes.

Aucune connaissance préalable de Turbo Python n'est nécessaire. Il vous faut Go 1.26 ou plus récent pour compiler l'éditeur, et uv pour créer et lancer le projet Python.

Prérequis

Vérifiez que Go est là — l'éditeur est écrit en Go, même si c'est un éditeur pour Python :

go version

Vous devriez voir quelque chose comme :

go version go1.26.5 linux/arm64

Si la commande échoue, installez d'abord Go : https://go.dev/dl/

Vérifiez qu'uv est là aussi :

uv --version

Vous devriez voir quelque chose comme :

uv 0.9.26

Si la commande échoue, installez d'abord uv : https://docs.astral.sh/uv/getting-started/installation/

Étape 1 — Compiler l'éditeur

Depuis le dossier du projet, tapez :

make build

Vous devriez voir une ligne go build, puis une ligne qui nomme la version que le binaire annonce. Cette dernière ligne est une vérification, pas une décoration : elle exécute le binaire qui vient d'être lié et refuse une compilation dont l'estampille de version ne lui est jamais parvenue.

Nous avons maintenant un exécutable dans bin/turbo-python. Retenez où il est, pour pouvoir le lancer de n'importe où :

export TURBO="$PWD/bin/turbo-python"

Étape 2 — Se faire un endroit où travailler

Turbo Python est à son meilleur à l'intérieur d'un projet, alors créons-en un :

cd /tmp && uv init hello && cd hello

Vous devriez voir :

Initialized project `hello` at `/tmp/hello`

uv init écrit un pyproject.toml, un README.md, un .python-version et un main.py contenant un hello-world. C'est pyproject.toml que Turbo Python cherche pour trouver la racine d'un projet, et c'est là que pylsp sera lancé. Nous allons remplacer le contenu de main.py par le nôtre.

Étape 3 — Ouvrir l'éditeur

Lancez Turbo Python sur le fichier qu'uv a écrit :

$TURBO main.py

L'écran se remplit d'un bureau bleu. Vous devriez voir :

  • une barre de menus en haut : File Edit Search Run Code Options Window Snippets Python Help
  • une fenêtre encadrée d'un double trait, intitulée main.py
  • une barre d'état en bas : F1 Describe F2 Save F3 Open …

Le curseur clignote en ligne 1, colonne 1 — la barre d'état affiche 1:1 à droite.

À côté, la barre d'état dit l'une de deux choses. LSP: ready signifie que le serveur de langage a été trouvé et démarré. LSP: no pylsp — pipx install "python-lsp-server[all]" signifie qu'il ne l'a pas été, et nomme l'unique commande qui l'installe. Dans les deux cas la suite de ce tutoriel fonctionne ; le guide de la complétion est là pour transformer le second message en premier.

Nous sommes dans l'éditeur.

Étape 4 — Vider le fichier et taper un programme Python

Appuyez sur Ctrl-A pour tout sélectionner, puis sur Suppr pour effacer. La fenêtre est vide et son titre indique main.py * — l'étoile signale des modifications non enregistrées.

Tapez cette ligne, puis Entrée :

def greet(name):

Regardez les couleurs pendant que vous tapez. def passe en blanc gras dès que le mot se termine : c'est un mot-clé. greet passe en jaune gras dès que vous tapez la ( qui suit, parce que c'est ce qui en fait une fonction. name reste en jaune simple : c'est un identifiant ordinaire.

(Ce sont les couleurs de Turbo Classic, celles avec lesquelles l'éditeur démarre. L'étape 8 en change.)

Tapez maintenant quatre espaces vous-même, puis la ligne suivante :

    message = f"Hello from {name}!"

Entrée recopie l'indentation de la ligne courante ; elle n'ajoute pas de niveau après un deux-points. Les blocs de Python sont faits d'indentation, et l'éditeur ne cherche pas à deviner où un nouveau bloc commence — les quatre espaces sont donc à taper une fois, et toutes les lignes suivantes les gardent gratuitement.

f"Hello from {name}!" passe en vert, en entier, {name} compris. C'est une seule chaîne : ce qui est entre les accolades est du Python, mais ce n'est pas coloré comme du Python, parce que décider où une expression s'arrête à l'intérieur d'un littéral demande un analyseur syntaxique et qu'ici il n'y a qu'un scanner. Ce compromis est écrit noir sur blanc dans Coloration et complétion.

Appuyez sur Entrée — le curseur se pose sous le m, déjà indenté — et tapez :

    print(message)

print passe en cyan gras : c'est l'une des primitives que le langage fournit, et non un nom venu de votre code.

Appuyez sur Entrée, puis sur Maj-Tab pour reprendre l'indentation, et tapez la dernière ligne :

greet("Turbo Python")

Nous venons d'écrire un programme Python complet, coloré par l'éditeur au fil de la frappe.

Si la barre d'état affichait LSP: ready tout à l'heure, regardez le bord gauche de la dernière ligne : il y a un ! dans la gouttière. Le serveur de langage a un avis sur notre fichier, et Code ▸ Problems… dit lequel — warning main.py:4 E305 expected 2 blank lines after class or function definition. C'est une règle de style et non une erreur, et la laisser ne coûte rien ; ce qui compte est que la marque et le message soient là, et qu'ils arrivent sans que personne ne les demande.

Étape 5 — Enregistrer

Appuyez sur F2.

L'étoile disparaît du titre, et la barre d'état affiche, un instant :

Saved main.py

Elle revient ensuite aux rappels de touches — le message est une confirmation, pas un état. L'état, c'est le titre sans son étoile.

Étape 6 — Regarder le fichier de l'extérieur

Quittez l'éditeur avec Alt-X. Le terminal revient tel qu'il était.

Vérifiez ce que nous avons écrit :

cat main.py

Vous devriez voir :

def greet(name):
    message = f"Hello from {name}!"
    print(message)
greet("Turbo Python")

Étape 7 — L'exécuter

uv run main.py

Le premier lancement fabrique l'environnement, vous verrez donc une ligne ou deux d'uv avant la sortie :

Using CPython 3.14.4 interpreter at: /usr/bin/python3.14
Creating virtual environment at: .venv
Hello from Turbo Python!

C'est un programme Python qui marche, écrit entièrement dans l'éditeur.

Étape 8 — Changer de thème

Rouvrez le fichier :

$TURBO main.py

Appuyez sur F10. Le menu File s'ouvre. Appuyez cinq fois sur : le menu longe la barre jusqu'à Options, dont la première entrée, Theme…, est surlignée. Appuyez sur Entrée.

Une liste de onze apparaît, par ordre alphabétique, le thème courant déjà surligné :

borland-light
cappuccino
catppuccin-frappe
catppuccin-latte
cobalt
darcula
intellij-light
monochrome-dark
monochrome-light
turbo-classic
turbo-dark

turbo-classic est la ligne surlignée, parce que c'est le thème dans lequel vous êtes. Appuyez une fois sur pour aller à turbo-dark, puis sur Entrée.

Tout l'éditeur se repeint en gris sombre, et la barre d'état affiche Theme: Turbo Dark.

Appuyez sur Alt-X pour sortir.

Et maintenant ?

Vous avez compilé l'éditeur, écrit un programme Python dedans, l'avez enregistré, exécuté, et vous avez changé son apparence.

  • Pour faire des choses précises — activer la complétion, écrire votre propre thème, chercher dans un fichier → voir les guides pratiques
  • Pour retrouver une touche ou une entrée de menu → voir la référence
  • Pour comprendre comment la coloration et la complétion fonctionnent vraiment → voir les explications
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# Tutoriel : votre premier fichier dans Turbo Python

À la fin de ce tutoriel, vous aurez compilé l'éditeur, écrit un petit programme Python dedans, vu les mots-clés changer de couleur à la frappe, enregistré le fichier et exécuté le résultat. Comptez une dizaine de minutes.

Aucune connaissance préalable de Turbo Python n'est nécessaire. Il vous faut Go 1.26 ou plus récent pour compiler l'éditeur, et [uv](https://docs.astral.sh/uv/) pour créer et lancer le projet Python.

## Prérequis

Vérifiez que Go est là — l'éditeur est écrit en Go, même si c'est un éditeur pour Python :

```bash
go version
```

Vous devriez voir quelque chose comme :

```
go version go1.26.5 linux/arm64
```

Si la commande échoue, installez d'abord Go : https://go.dev/dl/

Vérifiez qu'uv est là aussi :

```bash
uv --version
```

Vous devriez voir quelque chose comme :

```
uv 0.9.26
```

Si la commande échoue, installez d'abord uv : https://docs.astral.sh/uv/getting-started/installation/

## Étape 1 — Compiler l'éditeur

Depuis le dossier du projet, tapez :

```bash
make build
```

Vous devriez voir une ligne `go build`, puis une ligne qui nomme la version que le binaire annonce. Cette dernière ligne est une vérification, pas une décoration : elle exécute le binaire qui vient d'être lié et refuse une compilation dont l'estampille de version ne lui est jamais parvenue.

Nous avons maintenant un exécutable dans `bin/turbo-python`. Retenez où il est, pour pouvoir le lancer de n'importe où :

```bash
export TURBO="$PWD/bin/turbo-python"
```

## Étape 2 — Se faire un endroit où travailler

Turbo Python est à son meilleur à l'intérieur d'un projet, alors créons-en un :

```bash
cd /tmp && uv init hello && cd hello
```

Vous devriez voir :

```
Initialized project `hello` at `/tmp/hello`
```

`uv init` écrit un `pyproject.toml`, un `README.md`, un `.python-version` et un `main.py` contenant un hello-world. C'est `pyproject.toml` que Turbo Python cherche pour trouver la racine d'un projet, et c'est là que `pylsp` sera lancé. Nous allons remplacer le contenu de `main.py` par le nôtre.

## Étape 3 — Ouvrir l'éditeur

Lancez Turbo Python sur le fichier qu'uv a écrit :

```bash
$TURBO main.py
```

L'écran se remplit d'un bureau bleu. Vous devriez voir :

- une **barre de menus** en haut : `File  Edit  Search  Run  Code  Options  Window  Snippets  Python  Help`
- une **fenêtre** encadrée d'un double trait, intitulée `main.py`
- une **barre d'état** en bas : `F1 Describe  F2 Save  F3 Open …`

Le curseur clignote en ligne 1, colonne 1 — la barre d'état affiche `1:1` à droite.

À côté, la barre d'état dit l'une de deux choses. `LSP: ready` signifie que le serveur de langage a été trouvé et démarré. `LSP: no pylsp — pipx install "python-lsp-server[all]"` signifie qu'il ne l'a pas été, et nomme l'unique commande qui l'installe. Dans les deux cas la suite de ce tutoriel fonctionne ; le [guide de la complétion](../how-to/enable-completion.md) est là pour transformer le second message en premier.

Nous sommes dans l'éditeur.

## Étape 4 — Vider le fichier et taper un programme Python

Appuyez sur **Ctrl-A** pour tout sélectionner, puis sur **Suppr** pour effacer. La fenêtre est vide et son titre indique `main.py *` — l'étoile signale des modifications non enregistrées.

Tapez cette ligne, puis **Entrée** :

```python
def greet(name):
```

Regardez les couleurs pendant que vous tapez. `def` passe en **blanc gras** dès que le mot se termine : c'est un mot-clé. `greet` passe en **jaune gras** dès que vous tapez la `(` qui suit, parce que c'est ce qui en fait une fonction. `name` reste en **jaune** simple : c'est un identifiant ordinaire.

(Ce sont les couleurs de Turbo Classic, celles avec lesquelles l'éditeur démarre. L'étape 8 en change.)

Tapez maintenant quatre espaces vous-même, puis la ligne suivante :

```python
    message = f"Hello from {name}!"
```

**Entrée recopie l'indentation de la ligne courante ; elle n'ajoute pas de niveau après un deux-points.** Les blocs de Python sont faits d'indentation, et l'éditeur ne cherche pas à deviner où un nouveau bloc commence — les quatre espaces sont donc à taper une fois, et toutes les lignes suivantes les gardent gratuitement.

`f"Hello from {name}!"` passe en **vert**, en entier, `{name}` compris. C'est une seule chaîne : ce qui est entre les accolades est du Python, mais ce n'est pas coloré comme du Python, parce que décider où une expression s'arrête à l'intérieur d'un littéral demande un analyseur syntaxique et qu'ici il n'y a qu'un scanner. Ce compromis est écrit noir sur blanc dans [Coloration et complétion](../explanation/colouring-and-completion.md).

Appuyez sur **Entrée** — le curseur se pose sous le `m`, déjà indenté — et tapez :

```python
    print(message)
```

`print` passe en **cyan gras** : c'est l'une des primitives que le langage fournit, et non un nom venu de votre code.

Appuyez sur **Entrée**, puis sur **Maj-Tab** pour reprendre l'indentation, et tapez la dernière ligne :

```python
greet("Turbo Python")
```

Nous venons d'écrire un programme Python complet, coloré par l'éditeur au fil de la frappe.

Si la barre d'état affichait `LSP: ready` tout à l'heure, regardez le bord gauche de la dernière ligne : il y a un `!` dans la gouttière. Le serveur de langage a un avis sur notre fichier, et **Code ▸ Problems…** dit lequel — `warning  main.py:4  E305 expected 2 blank lines after class or function definition`. C'est une règle de style et non une erreur, et la laisser ne coûte rien ; ce qui compte est que la marque et le message soient là, et qu'ils arrivent sans que personne ne les demande.

## Étape 5 — Enregistrer

Appuyez sur **F2**.

L'étoile disparaît du titre, et la barre d'état affiche, un instant :

```
Saved main.py
```

Elle revient ensuite aux rappels de touches — le message est une confirmation, pas un état. L'état, c'est le titre sans son étoile.

## Étape 6 — Regarder le fichier de l'extérieur

Quittez l'éditeur avec **Alt-X**. Le terminal revient tel qu'il était.

Vérifiez ce que nous avons écrit :

```bash
cat main.py
```

Vous devriez voir :

```python
def greet(name):
    message = f"Hello from {name}!"
    print(message)
greet("Turbo Python")
```

## Étape 7 — L'exécuter

```bash
uv run main.py
```

Le premier lancement fabrique l'environnement, vous verrez donc une ligne ou deux d'uv avant la sortie :

```
Using CPython 3.14.4 interpreter at: /usr/bin/python3.14
Creating virtual environment at: .venv
Hello from Turbo Python!
```

C'est un programme Python qui marche, écrit entièrement dans l'éditeur.

## Étape 8 — Changer de thème

Rouvrez le fichier :

```bash
$TURBO main.py
```

Appuyez sur **F10**. Le menu `File` s'ouvre. Appuyez cinq fois sur **→** : le menu longe la barre jusqu'à `Options`, dont la première entrée, `Theme…`, est surlignée. Appuyez sur **Entrée**.

Une liste de onze apparaît, par ordre alphabétique, le thème courant déjà surligné :

```
borland-light
cappuccino
catppuccin-frappe
catppuccin-latte
cobalt
darcula
intellij-light
monochrome-dark
monochrome-light
turbo-classic
turbo-dark
```

`turbo-classic` est la ligne surlignée, parce que c'est le thème dans lequel vous êtes. Appuyez une fois sur **↓** pour aller à `turbo-dark`, puis sur **Entrée**.

Tout l'éditeur se repeint en gris sombre, et la barre d'état affiche `Theme: Turbo Dark`.

Appuyez sur **Alt-X** pour sortir.

## Et maintenant ?

Vous avez compilé l'éditeur, écrit un programme Python dedans, l'avez enregistré, exécuté, et vous avez changé son apparence.

- Pour faire des choses précises — activer la complétion, écrire votre propre thème, chercher dans un fichier → voir les [guides pratiques](../how-to/)
- Pour retrouver une touche ou une entrée de menu → voir la [référence](../reference/)
- Pour comprendre comment la coloration et la complétion fonctionnent vraiment → voir les [explications](../explanation/)