web-dev-qa-db-fra.com

Comment sélectionner tout le texte dans Vi/Vim?

Utiliser l'outil VI pour éditer les fichiers de configuration.

Comment sélectionner tout le texte d'un fichier (environ 1000 lignes), le copier, puis le coller dans Google Docs?

174
Daniel t.

Le moyen le plus simple et le plus rapide consiste à utiliser: :%y+ puis allez sur Google Docs (ou ailleurs) et collez-les. Explication:

  • % faire référence à la commande suivante pour travailler sur toutes les lignes
  • ytirer ces lignes
  • +copier dans le presse-papiers du système

Une autre façon est gg"+yG mais vous admettrez probablement que ce qui précède est plus rapide et plus facile.

147
Tuxmentat

Beaucoup de réponses données ont également annulé la sélection, ce que je ne cherchais pas.

J'utilise ggVG à cette fin (doit être exécuté en mode normal). Cette commande niquement sélectionne tout le texte du document.

J'ai même remappé Ctrl+A à cette fin, puisque je n'ai pas vraiment besoin d'incrémenter un entier avec le raccourci (par défaut) Ctrl+A carte).

Ajoutez simplement ceci dans votre .vimrc:

map <C-a> <esc>ggVG<CR>

Il porte d'abord <esc> pour s'assurer que l'utilisateur est en mode normal.

86
Arda

Vous pouvez utiliser cat file puis sélectionner la sortie et copier-coller si vous devez le coller dans votre navigateur.

Pour vi voici comment vous pouvez sélectionner tout le texte et l’écrire dans un nouveau fichier:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

En théorie, cela devrait fonctionner à la fois sous Linux et Windows - je l’ai essayé sur un Mac mais cela ne fonctionne pas.

39
silviud

UTILISEZ ggVG. tapez "gg" pour aller en haut du test, puis tapez VG.

15
user402791

gg"+yG

ou

gg"*yG

selon que + ou * est le presse-papiers du système. (Sur de nombreux unix, + est le tampon de sélection de la souris pour un clic du milieu et * le presse-papiers du système).

7
frabjous

J'utilise Vim 7.4 dans l'environnement CentOS-7. Ce qui m'a fonctionné pour sélectionner tout le texte est

:%y

Alors juste p dans le fichier suivant où je veux une copie complète.

ou

Vous pouvez utiliser la commande chat.

cat copyfile > pastefile

Ce dépôt git contient quelques autres commandes utiles.

5
Sachith

Pour un Mac, utilisez pbcopy (copier-coller):

cat file.txt | pbcopy

Le contenu de fichier.txt se trouve maintenant dans le presse-papiers pour pouvoir être collé dans une autre application (navigateur, par exemple).

Vous pouvez également coller le contenu du presse-papiers dans un fichier à l'aide de pbpaste:

pbpaste > file.txt

Bien que cela ne concerne pas spécifiquement vi, il atteint le même objectif sur un Mac.

3
Chris

Si vous utilisez un bureau Linux, vous pouvez le charger dans le presse-papiers en utilisant xclip ou xsel. Pour quelque chose de cette taille, vous voudrez peut-être simplement utiliser la fonctionnalité de téléchargement de Google Documents.

1
Cakemox

Une autre façon serait:

Vous appuyez sur v touchez votre clavier et tournez VIM sur VISUAL

Puis sélectionnez tout le texte en faisant défiler

^INSERT copier

SHIFT +INSERT coller le texte où vous voulez sur Google Documents.

1
user237678
0
petrus

Voir http://vim.wikia.com/wiki/Accessing_the_system_clipboard pour savoir comment procéder. (si compilé dans "* devrait se référer au presse-papiers du système). Il y a aussi des instructions pour utiliser xsel avec vim.

0
kasterma

Utilisez la commande suivante.

cat <your file name>

Cela fera écho au contenu du fichier. Maintenant, sélectionnez, faites défiler, copiez, collez.
Jeu terminé

Ex.:

cat bobis.txt
0
user359247