234 votes

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

Utilisation de l'outil VI pour l'édition des fichiers de configuration.

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

195voto

G4TVLEADER Points 1

Le moyen le plus simple et le plus rapide est d'utiliser : : % y + puis allez sur Google Docs (ou autre) et collez. Explication :

  • % pour renvoyer la commande suivante pour travailler sur toutes les lignes
  • y   pour arracher ces lignes
  • +   pour copier dans le presse-papiers du système

Un autre moyen est g g " + y G mais vous admettrez probablement que la méthode ci-dessus est plus rapide et plus facile.

4 votes

+1 pour la première méthode, un autre avantage est qu'elle ne déplace pas la position du curseur.

10 votes

@Tuxmentat pouvez-vous s'il vous plaît expliquer ce que chaque clé fait dans :%y+

10 votes

Cette réponse serait meilleure si elle expliquait ce que fait chaque touche pour les deux séquences.

126voto

Arda Points 1501

De nombreuses réponses données entraînent également la sélection, ce que je ne recherchais pas.

J'utilise ggVG à cette fin (doit être exécuté en mode normal). Cette commande uniquement sélectionne l'ensemble du texte à l'intérieur du document.

J'ai même modifié Ctrl+A dans ce but, puisque je n'ai pas vraiment besoin d'incrémenter un entier avec le raccourci (par défaut Ctrl+A carte).

Il suffit d'ajouter ceci dans votre .vimrc :

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

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

4 votes

Exactement ce que je cherchais, et c'est bien de voir que Ctrl+A n'est pas occupé dans vim par défaut. J'espère qu'il n'y a pas d'effets secondaires.

5 votes

J'utilise personnellement ggVG pero gg0vG$ pourrait être plus approprié car il reproduit plus fidèlement l'opération "normale" Ctrl+A.

46voto

Cory T Points 171

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

Pour vi, c'est ainsi que 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 sur Linux et Windows - j'ai essayé sur un Mac mais cela ne fonctionne pas.

1 votes

Pour coller dans le navigateur Web cat file est la voie à suivre. Le site shift v ne fait que copier dans le buffer interne de Vi.

0 votes

Pas si vous utilisez le presse-papiers système qui utilise le registre * - mais cela ne fonctionne que sous X et j'ai entendu dire que sous Windows - donc si vous êtes en ssh vous avez besoin du -X - pour vérifier si vim supporte cela dans vim -- :set clipboard+=unnamed

0 votes

Si nous éditons en direct sur le serveur, nous devons conserver le code de sauvegarde sur la machine locale afin de pouvoir revenir en arrière.

20voto

user402791 Points 201

USE ggVG. tapez "gg" pour aller au début du test Puis tapez VG.

12voto

J'utilise Vim 7.4 dans un environnement CentOS-7. Ce qui m'a permis de sélectionner tout le texte est

:%y

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

Ou

Vous pouvez utiliser la commande cat.

cat copyfile > pastefile

Ce dépôt git comporte également d'autres commandes utiles.

1 votes

C'est le meilleur raccourci que tout autre code. Je l'ai testé et il fonctionne comme un charme.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X