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


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

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


148
2017-12-30 17:05


origine




Réponses:


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

  • %  renvoyer la prochaine commande à travailler sur toutes les lignes
  • ytirer ces lignes
  • +copier dans le presse-papier du système

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


128
2018-03-26 21:30



@Tuxmentat pouvez-vous s'il vous plaît expliquer ce que chaque touche fait en :%y+ - Jas
Cette réponse serait meilleure si elle expliquait ce que chaque touche fait pour les deux séquences. - AsksAnyway
Ma meilleure supposition: le ':' signifie que nous utilisons une commande "ex mode" (je pense). En tout cas, c'est une commande. '%' est un spécial spécificateur de plage de ligne de commande qui spécifie le fichier entier. 'y' tire tout, et '+' spécifie la presse-papiers. : help <command> m'a aidé à résoudre ce problème. - Hawkeye Parker
Je dois faire quelque chose de mal. J'écris :%y+et je reçois E488: Trailing characters - johny why
Je reçois "E850: Nom de registre invalide". La deuxième méthode a bien fonctionné pour la copie, mais ne parvient pas au presse-papiers du système sur Ubuntu 16.04 (pour moi, au moins --- j'ai un .vimrc qui peut affecter les choses). - EntangledLoops


De nombreuses réponses ont également été tirées de la sélection, ce que je ne cherchais pas.

j'utilise ggVG à cette fin (doit être exécuté en mode normal). Cette commande seulement sélectionne le texte entier à l'intérieur 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 a <esc> d'abord, pour vous assurer que l'utilisateur est en mode normal.


67
2018-05-29 15:09



Exactement ce que je cherchais, et c'est bien de voir que Ctrl + A n'est pas occupé par défaut dans vim. J'espère qu'il n'y a pas d'effets secondaires. - Nikos Alexandris
Je utilise personnellement ggVG, mais gg0vG$ peut être plus approprié car il reproduit de plus près l'opération «normale» Ctrl + A. - Sheharyar


Vous pouvez utiliser cat file puis sélectionnez la sortie et copiez-collez si vous avez besoin de la coller dans votre navigateur.

Pour vi, 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.


35
2017-12-30 17:21



Pour coller dans le navigateur Web cat file est la voie à suivre. le shift v méthode ne copie que dans le tampon interne de Vi. - Aleksandr Levchuk
pas si vous utilisez le presse-papier du système qui utilise le registre * - mais cela fonctionne uniquement sur X et j'ai entendu sur Windows - donc, si vous avez ssh, vous devez vérifier que vim est compatible avec vim -: = sans nom
Y a-t-il une alternative à cela sans créer un nouveau fichier. Si nous modifions en direct sur le serveur, nous devons conserver le code de sauvegarde sur la machine locale pour pouvoir revenir en arrière. - Nagama Inamdar
+1 pour le chat et sélectionnez dans le mastic. Bien sûr, cela ne fonctionnera pas pour les gros fichiers et ce n’est pas la méthode la plus conviviale. Mais pour copier de petits fichiers de script qui vont en dehors de l'écran, le viewport est suffisant. - Arnis Juraga


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


13
2017-12-29 12:47





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 de souris du milieu, et * est le presse-papier du système).


6
2017-12-30 19:19



Je pense que c'est l'inverse: "* est la sélection et" + est le presse-papier. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel
Tu as raison. Je le savais aussi, mais j'ai tapé la mauvaise chose. - frabjous


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

:%y

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

Ou 

Vous pouvez utiliser la commande cat.

cat copyfile > pastefile

Ce repo git a aussi d'autres commandes utiles.


4
2017-07-17 04:07





Pour un Mac, utilisez pbcopy (copie en carton):

cat file.txt | pbcopy

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

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
2018-01-08 19:05





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 pouvez utiliser la fonctionnalité de téléchargement de Google Documents.


1
2017-12-30 17:28





Une autre façon serait:

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

Ensuite, sélectionnez tout le texte en faisant défiler vers le bas

^+ INSÉRER copier

DÉCALAGE +INSÉRER coller le texte où vous voulez sur Google Docs.


1
2017-07-12 14:20





Sans utiliser vi, vous pouvez télécharger du texte vers Google Documents à l'aide de leur API et de cURL.


0
2017-12-30 17:34



c'est le contraire de ce que veut OP -.- - Rápli András


Voir http://vim.wikia.com/wiki/Accessing_the_system_clipboard pour des options sur la façon de le faire. (si compilé dans "* devrait faire référence au presse-papiers du système). Il y a aussi des instructions pour savoir comment utiliser xsel avec vim.


0
2017-12-30 17:38



"* est ce qui a été sélectionné et" + est ce qui a été copié. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel