Existe-t-il un moyen de copier toutes les lignes du fichier ouvert dans le presse-papiers dans l'éditeur de VI. J'ai essayé yGmais il n'utilise pas le presse-papiers pour stocker ces lignes.
Est-ce donc possible?
vim
editor
keyboard-shortcuts
vi
Xinus
la source
la source
Réponses:
Vous devez extraire le texte des registres
*
ou :+
gg"*yG
Explication:
gg
pour amener le curseur sur le premier caractère du fichier"*y
pour lancer une commande yank dans le registre à*
partir de la première ligne, jusqu'à ce que ...G
aller à la fin du fichierla source
"
.:version
dans vim et recherchez l'+xterm_clipboard
indicateur. S'il est précédé d'un signe moins, vous n'aurez pas cette fonctionnalité. Si tel est le cas, vous voudrez peut-être compiler vim vous-même ou exécuter gvim qui a généralement cette fonctionnalité activée.Utilisation:
:%y+
pour tirer toutes les lignes.
Explication:
%
faire référence à la commande suivante pour travailler sur toutes les lignesy
pour arracher ces lignes+
copier dans le presse-papiers du systèmeNB : sous Windows,
+
et*
sont équivalents voir cette réponse .la source
:help
pour vous assurer que vous êtes bien dans vim.set clipboard=unnamed
, mais cela a très bien fonctionné!E850: Invalid register name
:(sur Mac
copier la partie sélectionnée: sélectionner visuellement le texte (taper
v
ouV
en mode normal) et taper:w !pbcopy
copier tout le fichier
:%w !pbcopy
passé du presse-papiers
:r !pbpaste
la source
pbcopy
est un utilitaire Mac. Sous Linux,xsel
peut fonctionner à la place ouclip
sous Windows.:%w !pbcopy
fonctionne toujours si le fichier est plus long que la hauteur du terminal.Le presse-papiers est un tampon +. Pour copier dans le presse-papiers, faites "+yet [mouvement].
Donc, gg"+yGcopiera tout le fichier.
De même, pour coller à partir du presse-papiers, "+p
la source
Un autre moyen simple de copier l'intégralité du fichier si vous rencontrez des problèmes avec VI, consiste simplement à taper "cat filename". Il fera écho du fichier à l'écran, puis vous pouvez simplement faire défiler vers le haut et vers le bas et copier / coller.
la source
:!cat %
. Et pour copier le contenu du fichier par programme dans le presse-papiers sur Mac OS::!cat % | pbcopy
Voici ce que je fais pour arracher tout le fichier:
la source
clipboard
jeu pour copier le texte retiré+
.Vous pouvez utiliser la commande "cat" pour ouvrir le fichier et utiliser la souris pour copier
la source
reset
le terminal au préalable, puis sélectionnez tout et copiez. Cela fonctionne parssh
session.(en réponse à @rshdev, et pour éviter d'avoir à recompiler vim avec + xterm_clipboard par @nelstrom dans les commentaires sur OP)
il y a un programme appelé xclip qui fonctionne comme putclip sur Ubuntu 11:
il n'est pas installé par défaut. pour installer, utilisez:
la source
Sur Ubuntu 12
vous pouvez essayer d'installer le
vim-gnome
package:Je l'ai essayé, car il
vim --version
m'a dit que le drapeau xterm_clipboard serait désactivé (indiqué par - ), ce qui est nécessaire pour utiliser la fonctionnalité du presse-papiers.-> l'installation du paquet vim-gnome sur Ubuntu 12 a également installé une version console de vim, qui a cette option activée (indiquée par un + avant l'indicateur xterm_clipboard)
Sur Arch Linux
vous pouvez installer
vim-clipboard
pour la même raison.Si vous exécutez neovim, vous devez installer
xclip
(comme expliqué parhelp clipboard-tool
)la source
Si vous utilisez Vim en mode visuel, les touches standard de copier-coller s'appliquent également, au moins avec Windows.
Sous le terminal Ubuntu (Gnome) au moins, la copie standard fonctionne également ( CTRLSHIFTC, bien qu'il ne semble pas y avoir de raccourci clavier standard pour
select all
(autre que ALTEsuivi par A).la source
vous pouvez appuyer sur gg pour localiser votre curseur au début du fichier, puis appuyez sur yG pour copier tout le contenu du début à la fin (G situé) dans buffer.good luck!
la source
J'ai essayé quelques-unes des commandes que les gens ont mentionnées ci-dessus. Aucun n'a fonctionné. Ensuite, je me suis emparé du plus simple de tous.
Étape 1:
vi <filename>
Étape 2: Faites un clic droit sur la barre de titre de la fenêtre Putty
Étape 3: Sélectionnez "Effacer le défilement" (pour éviter de copier le reste de votre session SSH)
Étape 4: Cliquez de nouveau avec le bouton droit et sélectionnez "Copier tout dans le presse-papiers".
la source
Window > Settings > lines of scrollback
à 40000 (également disponible en cliquant avec le bouton droit sur la barre de titre). Il est également utile d'utilisercat
au lieu de vi, car cela fait défiler tout le texte.:%y a
Copie tout le contenu dans le tampon de vim, en appuyant surp
en mode commande, le contenu copié sera collé après la ligne sur laquelle se trouve votre curseur.la source
gVim:
ggVG
Voir
:help go-a
:la source
Eh bien, toutes ces approches sont intéressantes, mais en tant que programmeur paresseux, j'utilise yank all line en utilisant une combinaison de nombre +
y
par exemple, vous avez un fichier de code source avec un total de 78 lignes, vous pouvez faire comme ci-dessous:
gg
pour obtenir le curseur à la première ligney
-> il tire 78 lignes sous votre curseur et la ligne actuellela source
Il n'y avait pas de concept de "presse-papiers" dans Bill Joy's vi, donc je ne pense pas qu'il y ait une manière intégrée de le faire.
La fonction de copie automatique de tout ce qui est mis en surbrillance dans le presse-papiers de gVim est la plus simple ou utilisez un programme externe via:!
Pour le vim de Cygwin, j'utilise
Peut-être qu'Ubuntu a une application CLI comme putclip ??
la source
Si vos doigts par défaut
CTRL-A CTRL-C
, essayez les mappages depuis$VIMRUNTIME/mswin.vim
.Je les ai mappés à
<Leader><C-a>
et<Leader><C-c>
.la source
Copiez tout le fichier à l'intérieur du vim ou de ses onglets
puis passez à un onglet et collez par
et pour couper l'utilisation du fichier entier
la source
J'ai ajouté la ligne suivante à mon .vimrc
Cela me permet de copier tout le texte de Vim dans le presse-papiers en appuyant sur
F5
(en mode commande).la source
Voici une commande de carte pour tout sélectionner dans le presse-papiers à l'aide de CTRL+ a:
Ajoutez-le à votre .vimrc et vous êtes prêt à partir ...
la source
Je sais que dix ans devraient être réglés, mais les deux premières réponses n'ont pas fonctionné pour moi, alors j'ai continué à creuser. Sur un Redhat (serveur distant) - Windows 10 (machine locale), si vous ne pouvez pas sélectionner le tout avec une souris, vous êtes bloqué car les copies habituelles ne fonctionnent pas entre la télécommande et les presse-papiers de la machine locale.
Donc, pour copier sur le Linux distant et coller sur le Windows local, spécifiez le tampon primaire avec le *et faites un joli double tirage
Utilisez gg" * yy.
la source
J'ai créé une fonction pour effectuer cette action, placez-la sur votre
~/.vimrc
.OBS: Si vous utilisez neovim, vous avez également besoin d'un gestionnaire de presse-papiers comme xclip. pour plus d'informations sur neovim
:h checkhealth
Il est également important de mentionner que pas toujours simple
y
copie dans le presse papier, afin de faire tous les aliments de copie+
Wich est « Presse - papiers Enregistrer » essayer de définir::set clipboard=unnamed,unnamedplus
. Pour mor informations , voir::h unnamed
.Voici plus d'informations sur vim wikia.
la source
Vous pouvez utiliser un raccourci, comme celui-ci:
Cela signifie que lorsque vous appuyez sur F6 en mode normal, il copie l'intégralité du fichier et l'ajoute au presse-papiers. Ou vous pouvez simplement taper en mode normal,
:%y+
puis appuyer surEnter
.la source
Cliquez avec le bouton gauche de la souris, faites glisser sur la section que vous souhaitez copier et libérer. Le code est automatiquement copié dans le presse-papiers.
la source
vi
moyen).Je n'ai pas pu copier les fichiers en utilisant les réponses ci-dessus mais j'ai du mastic et j'ai trouvé une solution de contournement sur Quora.
Remarque: il copie tous les caractères imprimés de cette session dans le fichier journal, de sorte qu'il deviendra éventuellement grand. Dans ce cas, supprimez le fichier journal et cat le fichier cible afin que le contenu de ce fichier particulier soit copié sur votre ordinateur.
la source