Comment faire pour coller à la ligne où le curseur est?
La commande p colle ci-dessous le curseur et P pâtes au-dessus du curseur. Quelle est la commande pour la coller dans la ligne où le curseur est?
Vous devez vous connecter pour publier un commentaire.
Tout cela dépend du type de données contenues dans le registre vous êtes collant. Si les données sont en ligne axés sur les données (tiré d'un coup sec avec yy par exemple), il sera collé ensemble de la ligne au-dessus ou au-dessous du curseur. Si les données sont de caractère orientée (tiré d'un coup sec avec, par exemple, y2w), alors elle sera collée à ou avant la position du curseur dans la ligne courante.
Voir
:help linewise-register
pour plus d'informations sur l'interaction entre le type de registre et de le mettre de commande.0y$
plutôt que de la linewiseyy
.p
ouP
coller dans le courant de la ligne ou de ligne différente selon que yank a caractère par caractère (pâtes en ligne en cours) ou linewise (pâtes en ligne ci-dessus ou ci-dessous).p
/P
, vous pourriez vouloir vérifier UnconditionalPaste par Ingo Karkat. vim.org/scripts/script.php?script_id=3355La Modifier menu dans gvim listes suivantes:
Coller = "+gP
Mettre Devant = [p
Mettre Après = ]p
Si vous utilisez vim dans Windows, vous pouvez effectuer les opérations suivantes pour obtenir Ctrl+C et Ctrl+V pour fonctionner comme prévu:
Si vous voulez garder la ligne en cours tel qu'il est, vous pouvez soit coller au-dessus ou au-dessous de la ligne.
Si vous souhaitez remplacer l'actuelle ligne que vous allez avoir à l'effacer, ce qui signifie que la ligne suivante prend sa place, puis coller au-dessus de la nouvelle ligne en cours.
Il y a plus d'une façon de le faire:
"_ddP
"_dd
supprime l'ensemble de la ligne courante dans le "trou noir s'inscrire", la ligne suivante est maintenant la ligne courante.P
met le contenu du registre sans nom au-dessus de la ligne courante.Vp
V
vous met dans LIGNE VISUELLE mode et sélectionne visuellement l'ensemble de la ligne en coursp
remplace la sélection par le contenu du registre sans nomS<C-r>"
S
supprime le contenu de la ligne en cours et vous met en INSÉRER mode<C-r>"
met le contenu du registre sans nomLes deux dernières options ont un effet secondaire: le contenu de la ligne précédente est mis dans le registre sans nom qui rend impossible de faire de multiples colle avec le même contenu.
Heureusement, vous pouvez contourner cette situation:
Le trou noir "s'inscrire", mentionné dans la première solution fonctionne, eh bien... comme un trou noir. Tout ce que vous mis dans ce qu'il disparaisse à jamais, de sorte que vous pouvez continuer à utiliser
p
etP
avec un certain degré de confiance que le registre sans nom est toujours le même à partir de pâte de coller.Vim vous donne accès à 26 alphabétique des registres de qui vous pouvez utiliser pour enregistrer des macros ou... coller des trucs à plusieurs reprises.
En prenant la deuxième solution comme un point de départ, vous commencez par extraire une ligne entière dans le registre
"a
avec"ayy
alors vous neV"ap
sur une autre ligne.Mais tout ce qui précède suppose que le texte que vous souhaitez coller est une réelle ligne. Vim qui fait la différence entre la ligne "sage" et "caractère" : elle ne vous laissera pas vous coller une ligne dans un caractère sage contexte ou l'autre manière autour.
Extraire une ligne entière avec
yy
conserve sa ligne wiseness ou caractère wiseness et vous ne serez pas en mesure dep
entre les deux personnages sur une même ligne. Pour cela, vous devez vous assurer que ce que vous tirez-vous de ne pas être interprétées comme des sage par Vim. Par exemple, supposons que vous êtes sur le premier caractère de la première ligne et voulez tireripsum dolor
et de le mettre à sa place normale entrelorem
etsit
:Vous devez taper
"ayee
pour mettre votre texte tiré d'un coup sec dans le registre"a
, placez le curseur là où nécessaire et le type"aP
."*
n'est pas le registre sans nom.""
est le registre sans nom. Voir:h quotequote
. J'imagine que vous avez changé'clipboard'
inclureunnamed
.À coller en mode insertion, vous appuyez simplement sur Contrôle+R. Ensuite, entrez le registre, par exemple, Maj++.
À coller en mode commande, vous appuyez sur la touche P, cependant, vous avez pour vous assurer que votre ligne n'ont pas un caractère de nouvelle ligne (par exemple, happé par
0v$hy
), sinon ça va apparaître au-dessus du curseur.La même chose pour le mode visuel, voir: Comment coller une ligne verticale de sélection de bloc? à Vim SE
Vous pouvez utiliser D pour supprimer à partir de la position courante du curseur à la fin de la ligne, et le p à la nouvelle position du curseur.
Qui est de couper et de coller l'ensemble de l'utilisation de la marge ^D et p.
J'avais besoin de "cast" contenu d'un registre dans un certain (caractère par caractère /linewise /blockwise) mode si souvent, j'ai écrit le UnconditionalPaste plugin pour elle. Il fournit
gcp
,glp
, etc. des solutions de rechange pour le haut-coller des commandes que la force d'un certain mode (et, aujourd'hui, plusieurs variations sur ce thème, comme le collage avec rejoints par des virgules ou des interrogés caractères).Avec elle, vous pouvez simplement utiliser
gcp
/gcP
à coller après /avant la position du curseur, indépendamment de la façon dont vous avez passé le texte.Maj + v la totalité de la ligne, mais vous ne voulez pas le faire. Au lieu de cela, appuyez sur la touche CTRL + v depuis le début de la ligne qui permet de sélectionner par caractère, $ pour sélectionner la fin de la ligne. yank y coller p.
Je ne suis pas sûr qu'il y en est un. J'ai essayé de trouver de la documentation et couru à travers les trois documents suivants:
Malheureusement, tous trois seulement les deux commandes que vous de la liste. En particulier, le troisième lien
The commands to paste are p and P...
(Je sais que ce fil est vieux, tout en laissant ce et espérons que cela puisse aider quelqu'un)
Inspiré par @wbg du commentaire ci-dessus concernant la suppression de la ligne d'alimentation, j'ai ajoutés à mon mappages:
nnoremap <leader>p :let @"=substitute(@", '\n\+$', '', '')<CR>p
inoremap <leader>p <esc>:let @"=substitute(@", '\n\+$', '', '')<CR>pa
C'est utile quand j'ai un fichier avec une certaine Sql (ligne par ligne) et j'ai tirer dans le code.
diviser la ligne en 2 à chaque fois que vous souhaitez insérer
coller la section entre eux
fusionner les 3 lignes avec j comme décrit ici (Supprimer le saut de ligne dans Vim)
fonctionne, mais fastidieux, et eu à réfléchir, chercher
=> vi et emacs sont des ordures logiciel