Je peux attraper un fichier, copier et coller du texte avec le bouton central ou l'insertion Maj.
Comment puis-je copier du texte dans vim et le coller depuis le presse-papiers du système?
:!sed -n 5,10p %
:!cat %
Je peux attraper un fichier, copier et coller du texte avec le bouton central ou l'insertion Maj.
Comment puis-je copier du texte dans vim et le coller depuis le presse-papiers du système?
:!sed -n 5,10p %
:!cat %
Réponses:
Vous devez avoir Vim avec les clipboard
et xtermclipboard
fonctionnalités compilées. Dans Ubuntu, ceux - ci ne sont disponibles qu'avec les packages de l' interface graphique (vim vim-gnome
, vim-gtk
, vim-athena
, etc.).
Une fois que vous en avez installé un, vous pouvez copier (et coller) dans les registres du presse-papiers ( *
et +
). De ce post très instructif sur Vi et Vim :
Pour les systèmes basés sur X11 (c.-à-d. Linux et la plupart des autres systèmes de type UNIX ), il existe 2 presse-papiers indépendants les uns des autres:
- PRIMARY - Il s'agit d'une copie sur sélection et peut être collée avec le bouton central de la souris.
- CLIPBOARD - Ceci est copié avec (généralement)
^C
et collé avec^V
(c'est comme MS Windows).
Vim dispose de 2 registres spéciaux correspondant à ces presse-papiers:
*
utilise PRIMARY; mnémonique: s goudron est s élisent (pour la copie-on- s élisent)+
utilise CLIPBOARD; mnémonique: CTRL + C (pour le raccourci clavier commun)
Pour copier dans un registre, vous faites précéder la commande de copie ( y
) avec "
et le nom du registre ( *
, par exemple). "*y
, puis cliquez avec le bouton central pour coller, ou "+y
et ShiftInsertpour coller.
Une solution assez intéressante vient de cette question. Installez xclip, puis dirigez la sortie d'une commande vers xclip ( cat file | xclip -selection clipboard
par exemple), puis collez-la n'importe où (si c'est dans le terminal - utilisez Ctrl ShiftV
). Maintenant, il s'avère que vous pouvez réellement raccourcir cette commande xclip -sel clip
, ce qui n'est pas exactement apparent à la lecture de la page de manuel ou des exemples.
/dev
, mais le texte se trouve toujours quelque part, non?
J'ai eu un problème car mon vim ne supportait pas le presse - papiers :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
J'ai installé vim-gnome (qui prend en charge le presse-papiers), puis vérifié à nouveau:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Maintenant, je peux copier et coller en utilisant respectivement "+ y et" + p.
sed -n5,10p
pour imprimer les lignes 5-10 afin que je puisse plus facilement copier et coller sans que vim réagisse à la souris.