Comment copier de la position actuelle à la fin de la ligne dans vi


106

J'utilise gvim dans Windows. Comment copier du texte de la position actuelle à la fin de la ligne dans vi et le coller dans un autre fichier ouvert dans vi. Je l'ai googlé mais je ne trouve aucune solution pour cela. J'apprécie toute aide à ce sujet. Je vous remercie.

Réponses:


160

La commande en mode normal pour passer à la fin de la ligne est $.

Vous pouvez copier à la fin de la ligne avec y$et coller avec p.

Pour copier / coller entre différentes instances, vous pouvez utiliser le presse-papiers système en sélectionnant le *registre, de sorte que les commandes deviennent "*y$pour copier et "*pcoller.

$ saut de ligne

$

y$ saut de ligne

y,$

"*y$ sélectionner le clipboard-register yank-to-linebreak

", *, y,$

"*p sélectionnez coller le registre du presse-papiers

", *,p

Vérifiez :h registerspour plus d'informations.


Merci. mais je veux coller le contenu dans «un autre fichier» ouvert dans vi. Cela fonctionne uniquement avec le même fichier.
javalearner

4
Cela fonctionnera pour tout fichier ouvert dans la même instance. Vous pouvez copier dans le presse-papiers du système en sélectionnant le registre *(ou +).
Don Reba

Pourquoi les registres du système ne peut pas fonctionner ... je ne peux pas copier le contexte file1de file2. J'ai encore besoin d'utiliser la souris. Quelle pourrait être la raison probablement?
Alston

8
J'utilise généralement Dpour couper de la position actuelle à la fin et ppour coller (récupérer) les données d'origine, puis me déplacer ailleurs pour coller les données extraites. Tout simplement parce qu'il est beaucoup plus facile à taper Dque y$.
neevek

1
@PhilipRego, c'est y$, sans point-virgule.
Don Reba

45

Si vous ne souhaitez pas inclure le saut de ligne avec le yank, vous pouvez utiliser yg_. (Ou dans votre cas, "*yg_)

En gros, reconnaissez simplement qu'il y a une différence entre $ et en g_termes de mouvement. Cela m'a aidé à de nombreuses reprises.


3
Est-il possible d'échanger g_et $? Je me retrouve rarement, voire jamais, à inclure le saut de ligne dans les mouvements.
Jonathan Dumaine

1
OUI! la nouvelle ligne supplémentaire me rend fou. Ce sont les informations nécessaires.
javadba

6
@JonathanDumaine dans votre $MYVIMRCajouter la lignenmap $ g_
thedanotto

@thedanotto vous belle personne
Jonathan Dumaine

10

Ajoutez cette ligne à votre .vimrc

" Make Y yank till end of line
nnoremap Y y$

Plus à mon vimrc .


3

Une autre solution: Dpet collez-la avec p. En fait, cela supprime d'abord à la fin de la ligne et la re-colle au même endroit. Collez-le ailleurs avec p.


1
Pourquoi ne pas Du et laisser le fichier inchangé? (note: ceci inclut une nouvelle lignée)
gene
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.