Édition multi-curseur dans Cursor : Modifications en masse pilotées par l'IA

Cursor combine les fonctionnalités multi-curseur des IDE traditionnels avec l'intelligence pilotée par l'IA pour rendre l'édition de code en masse plus rapide que jamais. Ce guide couvre tout, depuis la sélection multi-lignes de base jusqu'au refactoring à grande échelle assisté par l'IA.
Prérequis
Avant de commencer :
- Cursor installé (dernière version recommandée)
- Familiarité avec les raccourcis d'édition de texte de base
- Un projet sur lequel expérimenter
Multi-curseur de base
Raccourcis clés
| Opération | Windows/Linux | macOS |
|---|---|---|
| Ajouter un curseur en dessous | Ctrl+Alt+Down | Cmd+Option+Down |
| Ajouter un curseur au dessus | Ctrl+Alt+Up | Cmd+Option+Up |
| Ajouter un curseur à la prochaine correspondance | Ctrl+D | Cmd+D |
| Ajouter un curseur à toutes les correspondances | Ctrl+Shift+L | Cmd+Shift+L |
| Annuler le dernier curseur | Ctrl+U | Cmd+U |
| Sélectionner la ligne actuelle | Ctrl+L | Cmd+L |
Exemple de base
Convertir des lignes simples en tableau :
// Avant :
apple
banana
cherry
// 1. Placez un curseur à la fin de chaque ligne (Ctrl+Alt+Click)
// 2. Tapez `',`
// 3. Sélectionnez tout et ajoutez des parenthèses
// Après :
['apple',
'banana',
'cherry']
Sélection multi-curseur intelligente
Utilisation de la sélection sémantique par l'IA
L'IA de Cursor comprend la structure du code. Appuyez sur Ctrl+D sur une variable :
// Le curseur est sur le premier "user"
const user = await getUser();
const userData = formatUser(user);
sendEmail(user.email);
// Ctrl+D sélectionne "user", puis Ctrl+D à nouveau
// Sélectionne uniquement les références de variable, pas l'accès aux propriétés
Mode de sélection par colonne
// Sélectionnez plusieurs colonnes pour refactoriser un objet :
const data = {
id: 1,
name: 'John',
};
// Alt+Shift+Click pour sélectionner par colonne
// Toutes les valeurs peuvent être éditées simultanément
Refactoring en masse piloté par l'IA
Utilisation de Ctrl+K pour l'édition IA en ligne
- Sélectionnez plusieurs lignes
- Appuyez sur Ctrl+K
- Décrivez la modification :
Convertir toutes les instructions console.log en logs structurés
Avant :
console.log('User logged in', userId);
console.log('Fetching data', endpoint);
console.log('Error occurred', error);
Après :
logger.info('User logged in', { userId });
logger.info('Fetching data', { endpoint });
logger.error('Error occurred', { error });
Renommage à grande échelle avec le symbole @
Renommer toutes les références User en Customer
mais pas dans les définitions de types et les importations
Patterns avancés
Édition simultanée de plusieurs fichiers
Ouvrir la palette de commandes (Ctrl+Shift+P)
> "Add Selection to Next Find Match"
Opérer sur les correspondances entre plusieurs fichiers
Multi-curseur avec expressions régulières
Rechercher : (const|let|var)\s+(\w+)
Remplacer : $1 $2
Appuyez sur Alt+Enter lors d'une recherche par regex
Place des curseurs sur toutes les correspondances
Raccourcis d'édition rapide
| Opération | Raccourci |
|---|---|
| Dupliquer la ligne | Ctrl+Shift+D |
| Déplacer la ligne vers le haut/bas | Alt+Up/Down |
| Supprimer la ligne | Ctrl+Shift+K |
| Basculer le commentaire | Ctrl+/ |
| Indenter/Désindenter | Ctrl+]/[ |
| Entourer la sélection de parenthèses | Ctrl+Shift+( |
Exemples pratiques
Ajouter des types aux réponses d'API
// Avant
const data = await fetch('/api/users');
// 1. Placez des curseurs sur tous les appels fetch
// 2. Utilisez Ctrl+K :
// "Ajouter l'annotation de type User[] à la réponse"
// Après
const data: User[] = await fetch('/api/users');
Ajouter des Error Boundaries en masse
// Avant
function ComponentA() { ... }
function ComponentB() { ... }
function ComponentC() { ... }
// Sélectionnez toutes les fonctions
// Ctrl+K : "Envelopper chaque fonction dans ErrorBoundary"
// Après
function ComponentA() {
return (
<ErrorBoundary>
...
</ErrorBoundary>
);
}
// ... etc
Astuces et conseils
- Commencez par une sélection : sélectionnez toujours le code cible avant d'appeler l'édition IA
- Combinez : multi-curseur + Ctrl+K pour des refactorings complexes
- Prévisualisez les modifications : utilisez la vue de diff IA pour réviser les éditions avant de les appliquer
- Sauvegardez des snippets : enregistrez les refactorings courants en tant que commandes Cursor
Ressources connexes
Dernière mise à jour : Juillet 2025