Dupliquer une ligne entière dans Vim
19 réponses
y y ou Y pour copier la ligne
ou
d d supprimer (couper) la ligne
puis
p pour coller le texte copié ou supprimé après la ligne courante
ou
P coller le texte copié ou supprimé avant la ligne courante
mode Normal: voir les autres réponses.
Le Ex :
-
:t.
fera double emploi avec la ligne, -
:t 7
, vous les copiez, après la ligne 7, -
:,+t0
copiera la ligne courante et la ligne suivante au début du fichier (,+
est un synonyme pour la gamme.,.+1
), -
:1,t$
copie les lignes de début jusqu'à la position du curseur jusqu'à la fin (1,
est synonyme de la gamme1,.
).
si vous devez vous déplacer au lieu de copier, utilisez :m
au lieu de :t
.
cela peut être vraiment puissant si vous le combinez avec :g
ou :v
:
-
:v/foo/m$
déplace toutes les lignes ne correspondant pas au motif " foo " à la fin du fichier. -
:+,$g/^\s*class\s\+\i\+/t.
copie toutes les lignes suivantes du formulaireclass xxx
juste après le curseur.
référence: :help range
, :help :t
, :help :g
, :help :m
et :help :v
N'est pas plus simple que ça! À partir du mode normal:
yy
puis passer à la ligne que vous voulez coller à et
p
y y
tirera la ligne courante sans la supprimer
d d
supprimera la ligne courante
p
sera put
une ligne saisi par l'une des méthodes précédentes
Si vous voulez une autre façon :-)
"ayy
cela stockera la ligne dans le tampon a
"ap
cela placera le contenu du tampon a
sur le curseur.
il y a de nombreuses variantes à cela.
"a5yy
cela stockera les 5 lignes dans le tampon a
voir http://www.vim.org/htmldoc/help.html pour plus de plaisir
y y p - rappelez-vous il avec "youpi!"
lignes multiples avec un numéro entre:
y 7 y p
Faites ceci:
Première", 151930920" y y pour copier la ligne courante, et puis p pour coller.
une Autre option serait d'aller avec:
nmap <C-d> mzyyp`z
vous donne l'avantage de conserver la position du curseur.
pour quelqu'un qui ne connaît pas vi, certaines réponses d'en haut pourraient l'induire en erreur avec des phrases comme "coller ... après / avant ligne courante ".
C'est en fait "coller ... après / avant curseur ".
y y ou Y pour copier la ligne
ou
d d supprimer la ligne
puis
p pour coller le texte copié ou supprimé après le curseur
ou
P pour coller le texte copié ou supprimé avant le curseur
Pour plus de liens clés, vous pouvez visiter ce site: vi liste complète des liens clés
j'aime: Shift + v (pour sélectionner la ligne entière immédiatement et vous laisser sélectionner d'autres lignes si vous voulez), y, p
1 gotcha: quand vous utilisez " p "pour mettre la ligne, il le met après la ligne sur laquelle votre curseur est, donc si vous voulez ajouter la ligne après la ligne que vous tirez, ne pas déplacer le curseur sur une ligne avant de mettre la nouvelle ligne.
pour ceux qui commencent à apprendre vi, voici une bonne introduction à vi en listing côte à côte des commandes vi à l'éditeur d'interface graphique typique déplacement du curseur Windows et raccourci clés. Il Liste toutes les commandes de base dont yy (ligne de copie) et P (coller après) ou P (coller avant).
par Défaut est y y p , mais j'ai été en utilisant cette nouvelle liaison pour un an ou deux et l'amour:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
je sais que je suis en retard à la fête, mais peu importe; j'ai ceci dans mon .vimrc:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
la commande :copy
copie simplement la ligne sélectionnée ou la gamme (toujours des lignes entières) au-dessous du numéro de ligne indiqué comme argument.
en mode normal ce que cela fait est copy .
copiez cette ligne juste au-dessous de cette ligne .
et en mode visuel il se transforme en '<,'> copy '>
copie du début de la sélection à la fin de la sélection jusqu'à la ligne ci-dessous fin de la sélection .
si vous souhaitez dupliquer une ligne et la coller immédiatement au-dessous de l'actuel comme, juste comme dans Sublime Ctrl + Shift + D , alors vous pouvez ajouter cela à votre fichier .vimrc
.
imap <S-C-d> <Esc>Yp
j'aime utiliser ce mapping:
:nnoremap yp Yp
parce qu'il le rend cohérent à utiliser à côté de la commande native YP
.