Question

Comment dupliquer une ligne entière dans Vim de la même manière que Ctrl + D dans IntelliJ IDEA / Resharper ou Ctrl + < kbd> Alt + & # 8593; / & # 8595; dans Eclipse?

Était-ce utile?

La solution

y y ou Y pour copier la ligne
ou
d d pour supprimer (couper) la ligne

puis

p pour coller le texte copié ou supprimé après la ligne en cours
ou
P pour coller le texte copié ou supprimé avant la ligne en cours

Autres conseils

Mode normal: voir les autres réponses.

La méthode Ex :

  • :t. va dupliquer la ligne,
  • :t 7 le copiera après la ligne 7,
  • :,+t0 va copier la ligne courante et la suivante au début du fichier (,+ est un synonyme pour la plage .,.+1),
  • :1,t$ copiera les lignes du début à la fin du curseur (1, est un synonyme de la plage 1,.).

Si vous devez déplacer au lieu de copier, utilisez :m au lieu de :t.

Cela peut être très puissant si vous le combinez avec :g ou :v:

  • :v/foo/m$ déplacera toutes les lignes ne correspondant pas au modèle & # 8220; foo & # 8221; à la fin du fichier.
  • :+,$g/^\s*class\s\+\i\+/t. va copier toutes les lignes suivantes du formulaire class xxx juste après le curseur.

Référence: :help range, :help :t, :help :g, :help :m et :help :v

YP ou Yp ou yyp.

copier et coller dans vim

Ne devient pas plus simple que ça! En mode normal:

yy

puis déplacez-vous vers la ligne que vous souhaitez coller et

p

y y

tirera la ligne en cours sans la supprimer

d d

supprimera la ligne en cours

p

aura put une ligne saisie par l'une des méthodes précédentes

Si vous voulez une autre façon: -)

"ayy Ceci stockera la ligne dans le tampon a

"ap Ceci placera le contenu du tampon "a5yy au niveau du curseur.

Il existe de nombreuses variantes à ce sujet.

<=> ceci stockera les 5 lignes dans le tampon <=>

voir http://www.vim.org/htmldoc/help.html pour plus de plaisir

Faites ceci:

D'abord, y y pour copier la ligne en cours, puis p pour coller.

y y p - rappelez-vous-le avec & "yippee! &";

Plusieurs lignes avec un nombre entre les deux:

y 7 y p

y y p - coller après

y y P - coller avant

Vous pouvez également essayer < C-x > < C-l > qui répètera la dernière ligne du mode insertion et vous amènera une fenêtre d’achèvement avec toutes les lignes. Cela fonctionne presque comme & Lt; C-p & Gt;

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 précédentes pourraient le tromper avec des phrases telles que & "coller ... après / avant ligne courante &
Il s’agit en fait de & "coller ... après / avant de curseur &";

y y ou Y pour copier la ligne
ou
d d pour 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 raccourcis clavier, vous pouvez visiter ce site: vi Liste complète des raccourcis clavier

j'aime bien: Shift + v (pour sélectionner immédiatement toute la ligne et vous permettre de sélectionner d'autres lignes si vous le souhaitez), y, p

1 gotcha: lorsque vous utilisez & "; p &"; pour mettre la ligne, il le met après la ligne sur laquelle se trouve votre curseur. Par conséquent, si vous souhaitez ajouter la ligne après la ligne que vous tirez, ne déplacez pas le curseur sur une ligne avant de placer la nouvelle ligne.

La valeur par défaut est y y p , mais je l'utilise depuis environ un an et j'adore:

" 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 plage (lignes toujours entières) en dessous du numéro de ligne indiqué en argument.

En mode normal, cela permet de copy . copier cette ligne juste en dessous de cette ligne .

Et en mode visuel, il se transforme en '<,'> copy '> copie du début à la fin de la sélection jusqu'à la ligne située en dessous de la fin de la sélection .

Pour ceux qui commencent à apprendre vi, voici une bonne introduction à vi en répertoriant côte à côte les commandes vi associées aux mouvements de curseur et aux touches de raccourci typiques de l’éditeur d’interface graphique Windows. Il répertorie toutes les commandes de base, y compris yy (ligne de copie) et p (coller après) ou P (coller avant).

vi (Vim) pour les utilisateurs Windows

Si vous souhaitez dupliquer une ligne et la coller immédiatement sous le courant, comme dans Sublime Ctrl + Maj + D , vous pouvez ensuite l'ajouter à votre .vimrc fichier.

imap <S-C-d> <Esc>Yp

J'aime utiliser ce mappage:

:nnoremap yp Yp

car il est cohérent d’utiliser la commande YP en natif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top