quelle est la commande pour «Sélectionner tout» dans vim et VsVim?

22

Comment sélectionner tout le contenu d'un fichier dans Vim et VsVim? Comme dans d'autres éditeurs, tout est ctrl+Afait pour tout sélectionner.

Armaan
la source
3
La réponse de SibiCoder est bonne, mais il serait utile de savoir ce que vous avez l'intention de faire avec le contenu que vous avez copié.
Loi29
5
Tout d'abord, vous "sélectionnez" du texte dans un "tampon", pas dans un "fichier". Deuxièmement, la «sélection» est souvent inutile dans Vim, vous devez donc être clair sur ce que vous voulez faire avec cette «sélection». Pour vous et pour nous.
romainl
3
@romainly je pense que l'OP signifie sélectionner tout le fichier en mode visuel, étant donné que ctrl+adans d'autres éditeurs, il met visuellement en évidence le fichier entier.
EvergreenTree
@statox Pourquoi avez-vous édité vsvim out? Ce n'est pas un gros problème pour moi, mais je pense que le tag est parfaitement approprié, et je ne voulais pas entrer dans une guerre d'édition. (Je vous aurais cinglé :chat!, mais vous n'êtes pas allé dans cette pièce récemment, donc ça ne me laisserait pas)
James
@DJMcMayhem: C'était une erreur: j'ai d'abord pensé que vsvimc'était comme vimperatoret ce genre de plugins pour d'autres logiciels et donc hors sujet donc je l'ai supprimé, puis j'ai eu un doute alors j'ai vérifié la méta et j'ai vu que c'était sur le sujet donc j'ai a approuvé la modification de votre balise, mais a oublié de modifier à nouveau la question. Je change ça maintenant, désolé pour ça.
statox

Réponses:

27

ggVGsélectionne tout le contenu. ggpasse à la première ligne. Vdémarre le mode visuel. Gsaute à la dernière ligne, sélectionnant ainsi de la première à la dernière ligne

SibiCoder
la source
15

Avec la réponse de SibiCoder, si vous avez une idée claire de ce que vous voulez faire, vous pouvez utiliser ce qui suit:

:%X

Xest une commande, par exemple:

:%d             -> delete every line
:%y             -> yank every line
:%normal! >>    -> indent every line

Vous avez également la commande globale :gqui, avec le modèle de recherche ^, peut faire la même chose:

:g/^/d             -> delete every line
:g/^/y             -> yank every line
:g/^/normal! >>    -> indent every line

Si ce que vous voulez est de sélectionner le texte, ggVGc'est bien, mais gardez à l'esprit ces méthodes, dans le cas où vous savez déjà quelle est la prochaine étape. Notez qu'il ne laissera pas le curseur en mode visuel.

Voir: :h :%et :h :gpour référence.


Notez que, même si le C-Amappage est utilisé dans vim (voir :h CTRL-A), vous pouvez le mapper pour faire ce que font les autres éditeurs:

nnoremap <C-A> ggVG
nobe4
la source
4

Les autres réponses sont bonnes. Voici une autre alternative.

Puisque vous mentionnez que vous utilisez VsVim, vous pouvez modifier les clés gérées par Visual Studio et les clés gérées par vsvim. Aller à

Outils -> Options -> VsVim -> Clavier

De là, vous pouvez définir Ctrl-a pour qu'il soit géré par Visual Studio, plutôt que VsVim.

Bien que je ne le recommande pas car vous ne pourrez pas utiliser les vim <C-a>, ce que je trouve être une fonctionnalité essentielle. Bien que cela dépend de vous.

James
la source
0

vous pouvez utiliser un grand nombre comme 99999yy pour sélectionner tout le contenu de votre fichier

Adel Kihal
la source
3
Des fichiers plus grands que les 100000lignes sont possibles, bien que rares. De plus, en utilisant yyva tirer sur eux, pas sélectionner eux.
James
1
oui, vous avez raison, mais lorsque vous sélectionnez quelque chose, c'est dans la plupart des cas que vous les coupez, copiez ou supprimez :)
Adel Kihal
Voilà ce dont j'avais besoin. Sélectionnez tout et tirez.
Ivan