Comment obtenir un curseur sur chaque ligne dans vscode


102

J'essaie d'utiliser la fonctionnalité multi-curseur de vscode sur un gros fichier (ish). le fichier est trop volumineux pour sélectionner chaque ligne individuellement avec ctrl-alt-up ou down. Dans sublime-text, je sélectionnerais tout et appuyez sur ctrl-shift-l. Y a-t-il une chose similaire dans vscode. J'ai essayé d'utiliser une recherche regex pour ^, mais cela me donne une erreur indiquant "Expression correspond à tout".

Réponses:


189

La commande Sélection / Ajouter des curseurs aux extrémités de ligne altshiftiplacera un curseur sur chaque ligne de la sélection courante. (Pour une utilisation Mac optshifti)

Conseil: vous pouvez afficher la feuille de référence des raccourcis clavier avec ctrlk, ctrls(comme dans, ces deux combinaisons de clavier dans l'ordre). (Pour une utilisation Mac cmdk, cmds)


2
Quand je l'ai essayé, le curseur est allé à la fin de chaque ligne. Je cherchais le début de chaque ligne. J'ai vu une extension qui permettra un raccourci clavier pour "curseur au début de la ligne", mais je me demandais s'il est possible de le faire en vanilla VS Code?
Tiffany

17
@Tiffany a appuyé sur la hometouche après.
ZachB

3
Cela aurait dû être évident pour moi. Mais merci quand même!
Tiffany

Juste pour référence, pour dessiner vos curseurs sans faire de sélection au préalable, utilisez alt + shift + faire glisser la sélection. Ceux qui sont familiers avec Sublime Text le savent en utilisant la sélection alt + glisser.
palmi

1
homepour Mac est fn+left
eibersji

21

Maintenez Alt+ Shiftet sélectionnez le bloc. Appuyez ensuite sur le bouton Endou Right. Vous obtenez des lignes individuelles sélectionnées.

J'utilise la version VSCode 1.5.3 sous Windows.


4
C'est un beau travail, mais l'une des rares choses qui me manque dans le texte sublime, l'ancien ctrl + shift + Lpour ajouter des curseurs à toutes les lignes sélectionnées
Des Horsley

10
@DesHorsley Je pense que vous cherchez alt+shift+I.
ZachB

3
@ZachB votre légende. Merci!
Des Horsley

@ZachB. Veuillez faire qu'une réponse pour que je puisse l'accepter.
feihtthief

Si vous avez changé votre touche de curseur multiple en au ctrlcmdlieu de, altle raccourci pour cela est ctrl + shift + dragou cmd + shift + drag.
pantalon

7
  • Tenir Alt+ Shift+i

  • Maintenez Home( fn+ ->Mac) pour le plus à droite ou Endpour le plus à gauche ( fn+ <-Mac)

entrez la description de l'image ici


Cette réponse me fait gagner beaucoup de temps. BTW, comment enregistrez-vous ce gif?
Li Jinyao

Sur mac, j'utilisais gifoxpour de tels gifs.
snr

5

Cette fonctionnalité est en fait appelée split selection into linesdans de nombreux éditeurs.

  • Sublime Text utilise la liaison de touches par défaut, CTRLSHIFT L
  • VSCode utilise ALTSHIFTI
  • Pour Atom, vous devez en fait modifier votre keymap en quelque chose comme ça
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-shift-L': 'editor: split-selections-into-lines' 

1

Installez l'extension Sublime Commands .

[Commandes sublimes] Ajoute des commandes du texte sublime au code VS: transposer, étendre la sélection en ligne, diviser en lignes , joindre des lignes.

(N'oubliez pas d'ajouter le ou les raccourcis clavier de la page de détails des extensions à votre keybindings.json)


VS Code n'a-t-il pas déjà une commande "fractionner en lignes"?

Oui , oui. Cependant, il diffère de celui de Sublime.

Dans VS Code, lorsque vous divisez en lignes, votre sélection est désélectionnée et un curseur apparaît à la fin de chaque ligne sélectionnée (sauf pour la dernière ligne où le curseur apparaît à la fin de la sélection).

Dans Sublime, lorsque vous divisez en lignes, un curseur apparaît à la fin de chaque ligne (avec la même exception que dans VS Code) et la sélection est divisée sur chaque ligne et "donnée" à la même ligne.


Notez que l'OP demande comment effectuer la tâche sur vscode car ils savent déjà comment c'est fait en sublime
alamoot

0

J'ai le même problème, je suis habitué à Alt + glisser pour faire des 'sélections de boîtes' dans Visual Studio mais cela ne fonctionne pas dans le code.

Il semble impossible pour l'instant de le faire différemment qu'en sélectionnant chaque ligne.

Cependant, les plugins devraient bientôt être pris en charge, nous verrons donc probablement un plugin pour cela s'il n'est pas implémenté directement par Microsoft.

Depuis les forums de Visual Studio Uservoice:

Nous prévoyons d'offrir la prise en charge des plugins pour Visual Studio Code. Merci pour vos intérêts et cherchez plus de détails dans notre blog dans les semaines à venir. http://blogs.msdn.com/b/vscode .

Pour l'aperçu, nous recherchons exactement ce type de commentaires. Laisse le venir.

Sean McBreen - Membre de l'équipe VS Code

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.