Plusieurs fois dans vim, je voudrais supprimer une ligne complètement, donc j'utilise dd. Cependant, je dois ensuite coller cette ligne dans une autre position au sein d'une ligne, mais cela insère une nouvelle ligne avant de la coller, ce qui rend très difficile pour moi d'obtenir le résultat souhaité. Par exemple,
while( pasteInHere )
{
cin >> n; // Delete this line completely with dd
}
quand je fais cela avec le code ci-dessus, je reçois:
while( pasteInHere )
cin >> n; // Delete this line completely with dd
{
}
ce qui est très loin du résultat que je veux ... comment puis-je supprimer ce comportement de nouvelle ligne, ou utiliser une autre méthode qui le fait très efficacement? Je ne pense pas que d $ soit bon parce que je dois non seulement aller au début de la ligne, mais si je veux aussi supprimer la ligne vide, je dois la supprimer dans un autre registre, je pense qu'il devrait y avoir un moyen plus simple! Merci.
la source
0D
supprimer la ligne sauf le saut de ligne. Et quegJ
de rejoindre les lignes. Vous pouvez maintenant mettre le texte sans ligne de rupture et sans ligne vide.Réponses:
Vous pouvez aller n'importe où dans la ligne au-dessus de la ligne que vous souhaitez supprimer, puis appuyez
JD
dessus et collez-lap
au point souhaité.J
joint les deux lignes et vous déplace au début du texte que vous souhaitez supprimer. Cela supprime un caractère de nouvelle ligne et l'indentation de la ligne que vous souhaitez déplacer.D
supprime de la position actuelle du curseur jusqu'à la fin de la ligne mais conserve le caractère de nouvelle ligne.Astuce: vous pouvez utiliser
:pu
si vous avez supprimé avecD
ou tiré avecy$
et que vous souhaitez coller avec une nouvelle ligne.la source
Pas vraiment plus simple, mais légèrement plus efficace, et vous pouvez également créer des cartes en mode normal pour les deux séquences:
la source
Vous pouvez réaliser quelque chose qui fonctionne assez bien avec un
imap
. Ajoutez ce qui suit à votrevimrc
:Cela créera un mappage pour CTRL-acoller le dernier texte supprimé (avec
dd
ou similaire). Si vous préférez, vous pouvez bien sûr utiliser une clé différente pour le mappage.Références:
la source
Cela revient un peu pour moi aussi, je n'ai jamais pensé à l'optimiser auparavant, mais cette cartographie fonctionne:
dil
est « suppression en ligne », semblable àdiw
,di"
etc.la source
Coller sans nouvelle ligne
Mettez ceci dans votre fichier .vimrc:
Exemple:
Vous pouvez maintenant taper
gp
pour insérer#D51B3F
aprèscolor:
lorsque mon curseur est:
en mode Normal.Yank sans nouvelle ligne
Utilisez la réponse de Flukus:
comme acronyme de supprimer la ligne intérieure . Cela supprime également l'indentation principale.
la source
Vous pouvez sélectionner le texte que vous souhaitez copier en appuyant sur
v
, puis le mettre en mémoire tampon en appuyant sury
, puis le coller n'importe où parp
. Il n'insère aucune nouvelle ligne.la source