Juste une note, la raison principale d'utiliser Vi est parce que Vim n'est pas installé. Si vous avez installé Vim, utilisez plutôt cette option. Vi n’a pas vraiment d’avantage à ce qu’il soit déjà présent sur toutes les installations Unix. La meilleure façon d'apprendre que Vim, à mon avis, consiste à ouvrir votre émulateur de terminal (pas à partir de Vim) et à taper vimtutorIl vous permettra de vous familiariser avec l'endroit où vous pourrez l'utiliser en environ 45 minutes.
Ben Mordecai
1
+1 @BenMordecai - Je connaissais déjà vi (de l'ancien), y compris sa fonctionnalité pratique de sous-shell, mais j'avais besoin de cette actualisation. Super petit peu de tutorat. Je suis passé à travers comme une brise. Merci.
Cbhihe
Réponses:
192
Tout d’abord, assurez-vous d’être en mode édition (appuyez sur i). Ensuite, vous pouvez coller avec Ctrl+ Shift+ V, si vous êtes dans un émulateur de terminal comme gnome-terminal(ou sélectionnez "Coller" dans le menu contextuel).
Vous pouvez également taper :set pastevim avant de coller pour désactiver l'indentation automatisée, etc. Après :set nopasteavoir collé le contenu.
Consultez également cette question sur stackoverflow.com pour plus d'informations.
Si vous souhaitez copier / coller des lignes vim(par opposition au collage du contenu du presse-papiers), vous devez vérifier la commande yank . Voici un aide- mémoire qui pourrait aider.
Je pense que si vous avez le curseur de la souris, vous ne pouvez pas coller avec Ctrl + Maj + V.
Alvin Wong
14
Juste une note, le Iest sensible à la casse. La minuscule iest la manière habituelle d’entrer en mode insertion. Capital Iamène le curseur au début de la ligne, puis vous met en mode insertion.
Ben Mordecai
64
Vi (et Vim) fonctionne très différemment par rapport à un éditeur de texte tel que Gedit. Il a également une courbe d'apprentissage assez raide. Si vous souhaitez apprendre quelques commandes de base, commencez par ce tutoriel interactif .
Cependant, pour répondre à votre question. Le contenu du presse-papiers du système est accessible via le registre plus. Donc, pour coller quelque chose dans le presse-papiers du système, vous pouvez, à partir du mode Normal, appuyer sur: "+p(Pas en même temps, mais les uns après les autres).
Dans le terminal GNOME, les raccourcis pour copier / coller sont respectivement Ctrl-Maj-C et Ctrl-Maj-V.
Flimm
1
J'ai essayé d'appuyer à tour de rôle <kbd> "</ kbd>, <kbd> + </ kbd> et <kbd> p </ kbd>, ainsi que <kbd>" </ kbd> et <kbd> p < / kbd> et rien ne s'est passé. Qu'est-ce que j'ai mal fait? Je n'utilise vipasvim
user907860
1
C'est la bonne réponse. En utilisant par exemple. Ctrl-Shift-v ne fonctionnera qu'avec le contenu le plus simple (les sauts de ligne et les indentations peuvent être très mauvais si vous êtes dans le terminal et que vous avez oublié de l'utiliser set :paste).
Rachel
29
Si vous souhaitez copier le contenu de la colle dans le même fichier , utilisez yanket paste.
Si vous souhaitez copier le contenu de la pâte sur les terminaux , ouvrez le premier fichier, en éditant le texte souhaité, puis ouvrez votre deuxième fichier dans vim (par exemple :tabnew /path/to/second/file) et appuyez sur ppour le coller.
Si vous souhaitez copier le contenu de coller de vim dans un programme externe , vous devez accéder au Presse-papiers du système. Je suppose que vous utilisez Ubuntu. La version graphique de vim a toujours la prise en charge du presse-papiers. Toutefois, si vous souhaitez utiliser Vim depuis un terminal, vous devez vérifier la prise en charge de la prise en charge du presse-papiers X11.
Sur la console, tapez:
$ vim --version | grep xterm
Si vous trouvez -xterm_clipboard , vous avez deux options:
1) Compilez vim vous-même, avec le drapeau xterm_clipboard sur
2) Désinstallez vim, installez plutôt gvim (vim-gtk ou vim-gnome). Vous pouvez vous en tenir à vim non-gui en appelant vim depuis le terminal, comme vous le faisiez auparavant. Lorsque vous vérifiez, vous devriez trouver + xterm_clipborad .
Désormais, lorsque vous extrayez du texte dans le registre + dans votre éditeur vim (par exemple, "+ yy), il est également copié dans le Presse-papiers du système que vous pouvez extraire de votre programme externe, tel que l'éditeur gedit, en utilisant Ctrl+ V.
Si vous souhaitez copier le contenu collé d'un programme externe dans vim , copiez d'abord votre texte dans le presse-papiers du système via Ctrl+ C, puis en mode insertion de l' éditeur vim , cliquez sur le bouton central de la souris (généralement la molette) ou appuyez sur Ctrl+ Shift+ Vpour coller.
Ce sont 4 conditions de base copier / coller liées à vim. J'espère que ça aide.
Quel est le point de: tabnew / path / to / second / file? Vous pouvez obtenir exactement la même chose en tirant / copiant / coupant dans le premier fichier, en ouvrant le deuxième fichier avec: vi / chemin / vers / deuxième / fichier et en collant (p / P). Du moins dans mon cas ... Ou est-ce parce que la fonctionnalité vim de + xterm_clipboard est activée? Ou y a-t-il plus à tabnew que cela?
Cbhihe
1
Ubuntu vim-gtka un xterm_clipboardsupport et Fedora l’ xvima.
icc97
18
J'utilise toujours Shift+ Insertlorsque je veux coller du texte dans le terminal, cela fonctionne dans tous les programmes du terminal.
(C'est aussi la raison pour laquelle je n'ai jamais un ordinateur portable sur lequel vous ne pouvez appuyer Insertsans appuyer sur une touche secondaire)
Je pensais être en minuscule i. Que font les majuscules I?
Flimm
@ Flimm déjà expliqué dans un commentaire de Ben Mordecai sur une autre réponse.
sierrasdetandil
J'ai modifié la réponse pour qu'elle soit en minuscule i. Les majuscules Idéplacent le curseur au début de la ligne avant d'entrer en mode insertion, ce qui n'est pas nécessaire ici.
Flimm
6
Instructions détaillées pour copier / coller des lignes de texte dans vi en utilisant yanketput
(utilisez ce qui suit dans le mode de commande de vi)
Copier (YANK)
Pour copier une ligne dans vi:
En mode commande, déplacez le curseur sur la ligne à copier et tapez yyou tapezY
Pour copier 2 lignes dans vi:
En mode commande, déplacez le curseur sur la première ligne à copier et tapez 2yyou tapez2Y
(De même, n'importe quel nombre de lignes peut être copié)
Pour copier toutes les lignes de l'emplacement actuel à la fin du fichier:
En mode commande, déplacez le curseur sur la première ligne à copier et tapez yG
Pour copier tout le texte de l'emplacement actuel à la fin du mot actuel:
En mode commande, déplacez le curseur à l’endroit où le texte doit être copié et tapez yw
Pour copier tout le texte de l'emplacement actuel à la fin de la ligne:
En mode commande, déplacez le curseur à l’endroit où le texte doit être copié et tapez y$
Coller (PUT)
Pour coller du texte dans le presse-papiers - après l'emplacement du curseur:
En mode commande, tapez p
Pour coller du texte dans le presse-papiers - avant l'emplacement du curseur:
Avec Vim 8+ sous Linux ou Mac, vous pouvez désormais utiliser simplement le collage natif du système d'exploitation ( ctrl+shift+Vsous Linux, cmd+Vsur Mac). Ne pas appuyer sur ipour le mode insertion.
Il collera le contenu du presse-papiers de votre système d'exploitation, en préservant les espaces et les onglets sans ajouter d'auto-identification. Il est équivalent à l'ancienne :set paste, i, ctrl+shift+V, esc, :set nopasteméthode.
C'est la réponse que je cherche. Puisque Vim n’est pas installé par défaut sur les distributions gnu / linux, il doit être installé même dans Ubuntu. De plus, les boutons haut et bas de Vi ne fonctionnent pas sur Ubuntu et ne sont pas surlignés.
itsnotmyrealname
0
Si vous êtes root : Ctrl+ Shift+V
Si vous n'êtes pas root : Cliquez au centre de la souris.
Je voulais juste noter que, si vous utilisez Vim via Git Bash sous Windows, vous pouvez simplement utiliser pou cliquer au centre de la souris sans être en mode insertion. En utilisant Vim via PuTTY , vous pouvez faire un clic droit. Et en soulignant fait la copie.
Je l'ai noté parce que je ne suis pas arrivé ici parce que c'est SE pour Ubuntu.
Autres commandes utiles:
yy(nombre de lignes) - yank (copie)
dd(nombre de lignes) - supprimer
p - coller la ligne sous la ligne actuelle
Shift+ p- colle la ligne au-dessus de la ligne actuelle
Cela n'a pas fonctionné pour moi sur Windows Git Bash. Quelle console utilisez-vous, mintty ou windows cmd?
Wisbucky
Je crois que c'était mentholé.
Tyler Christian le
0
Vous pouvez utiliser Ctrl+ Shift+ Vpour coller dans la version de terminal vim, mais pour la version graphique Neovim-Qt, comme par exemple , coller du texte depuis le Presse-papiers du système avec Ctrl+ Shift+ Vne fonctionnera tout simplement pas. Vous devez accéder au presse-papiers "+ou "*à l'éditeur vim.
Ajouter un nouveau raccourci clavier .vimrcsimplement les commandes copier / coller:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
Il vous permettra de vous familiariser avec l'endroit où vous pourrez l'utiliser en environ 45 minutes.Réponses:
Tout d’abord, assurez-vous d’être en mode édition (appuyez sur i). Ensuite, vous pouvez coller avec Ctrl+ Shift+ V, si vous êtes dans un émulateur de terminal comme
gnome-terminal
(ou sélectionnez "Coller" dans le menu contextuel).Vous pouvez également taper
:set paste
vim avant de coller pour désactiver l'indentation automatisée, etc. Après:set nopaste
avoir collé le contenu.Consultez également cette question sur stackoverflow.com pour plus d'informations.
Si vous souhaitez copier / coller des lignes
vim
(par opposition au collage du contenu du presse-papiers), vous devez vérifier la commande yank . Voici un aide- mémoire qui pourrait aider.la source
I
est sensible à la casse. La minusculei
est la manière habituelle d’entrer en mode insertion. CapitalI
amène le curseur au début de la ligne, puis vous met en mode insertion.Vi (et Vim) fonctionne très différemment par rapport à un éditeur de texte tel que Gedit. Il a également une courbe d'apprentissage assez raide. Si vous souhaitez apprendre quelques commandes de base, commencez par ce tutoriel interactif .
Cependant, pour répondre à votre question. Le contenu du presse-papiers du système est accessible via le registre plus. Donc, pour coller quelque chose dans le presse-papiers du système, vous pouvez, à partir du mode Normal, appuyer sur: "+p(Pas en même temps, mais les uns après les autres).
la source
vi
pasvim
set :paste
).Si vous souhaitez copier le contenu de la colle dans le même fichier , utilisez
yank
etpaste
.Si vous souhaitez copier le contenu de la pâte sur les terminaux , ouvrez le premier fichier, en éditant le texte souhaité, puis ouvrez votre deuxième fichier dans vim (par exemple
:tabnew /path/to/second/file
) et appuyez surp
pour le coller.Si vous souhaitez copier le contenu de coller de vim dans un programme externe , vous devez accéder au Presse-papiers du système. Je suppose que vous utilisez Ubuntu. La version graphique de vim a toujours la prise en charge du presse-papiers. Toutefois, si vous souhaitez utiliser Vim depuis un terminal, vous devez vérifier la prise en charge de la prise en charge du presse-papiers X11.
Sur la console, tapez:
Si vous trouvez -xterm_clipboard , vous avez deux options:
1) Compilez vim vous-même, avec le drapeau xterm_clipboard sur
2) Désinstallez vim, installez plutôt gvim (vim-gtk ou vim-gnome). Vous pouvez vous en tenir à vim non-gui en appelant vim depuis le terminal, comme vous le faisiez auparavant. Lorsque vous vérifiez, vous devriez trouver + xterm_clipborad .
Désormais, lorsque vous extrayez du texte dans le registre + dans votre éditeur vim (par exemple, "+ yy), il est également copié dans le Presse-papiers du système que vous pouvez extraire de votre programme externe, tel que l'éditeur gedit, en utilisant Ctrl+ V.
Si vous souhaitez copier le contenu collé d'un programme externe dans vim , copiez d'abord votre texte dans le presse-papiers du système via Ctrl+ C, puis en mode insertion de l' éditeur vim , cliquez sur le bouton central de la souris (généralement la molette) ou appuyez sur Ctrl+ Shift+ Vpour coller.
Ce sont 4 conditions de base copier / coller liées à vim. J'espère que ça aide.
la source
vim-gtk
a unxterm_clipboard
support et Fedora l’xvim
a.J'utilise toujours Shift+ Insertlorsque je veux coller du texte dans le terminal, cela fonctionne dans tous les programmes du terminal.
(C'est aussi la raison pour laquelle je n'ai jamais un ordinateur portable sur lequel vous ne pouvez appuyer Insertsans appuyer sur une touche secondaire)
la source
Vi
/Vim
! = terminal;)Ctrl+A
,Ctrl+C
aussi?Utilisez le bouton central de la souris pour insérer du texte que vous avez surligné ailleurs.
C'est utile lorsque vous n'avez pas accès au Presse-papiers de votre système (par exemple, dans une session SSH distante).
Doit être en mode édition / insertion pour Vim.
la source
Une fois que vous avez entré vi, appuyez sur
i
pour entrer en mode insertion, faites un clic droit sur le terminal, cliquez sur coller.la source
i
. Que font les majusculesI
?i
. Les majusculesI
déplacent le curseur au début de la ligne avant d'entrer en mode insertion, ce qui n'est pas nécessaire ici.Instructions détaillées pour copier / coller des lignes de texte dans vi en utilisant
yank
etput
(utilisez ce qui suit dans le mode de commande de vi)
Copier (YANK)
Pour copier une ligne dans vi:
yy
ou tapezY
Pour copier 2 lignes dans vi:
2yy
ou tapez2Y
(De même, n'importe quel nombre de lignes peut être copié)
Pour copier toutes les lignes de l'emplacement actuel à la fin du fichier:
yG
Pour copier tout le texte de l'emplacement actuel à la fin du mot actuel:
yw
Pour copier tout le texte de l'emplacement actuel à la fin de la ligne:
y$
Coller (PUT)
Pour coller du texte dans le presse-papiers - après l'emplacement du curseur:
p
Pour coller du texte dans le presse-papiers - avant l'emplacement du curseur:
P
la source
J'ai eu un problème, car mon installation de Vim ne supportait pas le presse-papiers :
J'ai installé vim-gnome (qui supporte le presse-papiers) puis vérifié à nouveau:
Maintenant, je peux copier et coller en utilisant "+ y et" + p respectivement.
la source
Avec Vim 8+ sous Linux ou Mac, vous pouvez désormais utiliser simplement le collage natif du système d'exploitation (
ctrl+shift+V
sous Linux,cmd+V
sur Mac). Ne pas appuyer suri
pour le mode insertion.Il collera le contenu du presse-papiers de votre système d'exploitation, en préservant les espaces et les onglets sans ajouter d'auto-identification. Il est équivalent à l'ancienne
:set paste
,i
,ctrl+shift+V
,esc
,:set nopaste
méthode.Vous n'avez même plus besoin d'installer les fonctionnalités de
+clipboard
ou+xterm_clipboard
vim. Cette fonctionnalité est appelée "pâte entre crochets". Pour plus de détails, voir https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763la source
Si vous êtes root : Ctrl+ Shift+V
Si vous n'êtes pas root : Cliquez au centre de la souris.
la source
Je voulais juste noter que, si vous utilisez Vim via Git Bash sous Windows, vous pouvez simplement utiliser
p
ou cliquer au centre de la souris sans être en mode insertion. En utilisant Vim via PuTTY , vous pouvez faire un clic droit. Et en soulignant fait la copie.Je l'ai noté parce que je ne suis pas arrivé ici parce que c'est SE pour Ubuntu.
Autres commandes utiles:
la source
Vous pouvez utiliser Ctrl+ Shift+ Vpour coller dans la version de terminal vim, mais pour la version graphique
Neovim-Qt
, comme par exemple , coller du texte depuis le Presse-papiers du système avec Ctrl+ Shift+ Vne fonctionnera tout simplement pas. Vous devez accéder au presse-papiers"+
ou"*
à l'éditeur vim.Ajouter un nouveau raccourci clavier
.vimrc
simplement les commandes copier / coller:la source