vim: remplacer tous les caractères jusqu'à la fin de la ligne


30

Peut-être que je suis stupide, mais pouvez-vous remplacer tous les caractères de l'endroit où se trouve le curseur à la fin de la ligne par une seule commande? Ensuite, utilisez .pour faire le même remplacement sur la ligne suivante et ainsi de suite.

Réponses:


49

Si j'ai bien compris votre question, essayez ceci:

C(c'est un C majuscule) supprimera tout du curseur jusqu'à la fin de la ligne et vous mettra en mode INSERT , puis vous écrivez votre remplacement, quittez le mode INSERT, utilisez .pour répéter le processus ailleurs.


Bien. :)De rien.
sr_

16
si quelqu'un se demandait, c'est un C majuscule :)
David Silva Smith

1
Serait bon de mettre à jour la réponse pour préciser qu'il s'agit d'un C. majuscule
fraxture

14

Ajout à la réponse de sr_:

Si votre curseur commence à la même position sur chaque ligne, vous pourriez être intéressé par la fonctionnalité Visual Block .

Tapez ce qui suit dans l'ordre, avec votre curseur dans la position initiale:

  • Ctrl+ v: Entrer en mode de blocage visuel.
  • $: aller en fin de ligne.
  • [X]j: remplacez X par le nombre de lignes que vous souhaitez descendre.

Cela devrait créer une sélection rectangulaire allant de votre curseur sur la première ligne jusqu'à la fin de la ligne [X] lignes ci-dessous.

Vous pouvez alors remplacer toute votre sélection:

  • c: supprimer la sélection et passer en mode insertion.
  • insérer un nouveau texte
  • Esc: Quitter le mode d'insertion; Vim répétera automatiquement l'étape sur chaque ligne sélectionnée.

J'utilise le bloc visuel chaque fois que je le peux, je pensais partager


+1 belle réponse en effet. Mais pas vraiment ce que je veux car parfois mon code n'est pas bien formaté comme ça ^ _ ~
Sardathrion - Réinstallez Monica

@sardathrion; Commentaire RE, «bien formaté». Création de tableaux dans Markdown J'ai pu remplir automatiquement les espaces dans les n+1lignes, après avoir créé la ligne nen sélectionnant Visual Block en arrière ! En d'autres termes, la forme était similaire à 7 en arrière ou en L inversé verticalement, ou «pas bien formatée». lol.
xtian

3

Cou c$est pour "changer" et Rest pour "remplacer".

Deux comportements presque similaires. Le premier obtiendrait la ligne supprimée avant de commencer à taper; tandis que ce dernier vous permettrait de taper sur les caractères et éventuellement dépasser la limite des caractères de l'ancienne ligne affichés.


1

Appuyez simplement sur «C», c'est-à-dire Capital C en mode commande, et tapez le texte de remplacement.


0

Les autres réponses les ont manquées, elles n'entrent pas en mode insertion.

  • D Supprimer jusqu'à la fin de la ligne
  • d$ Supprime du curseur jusqu'à la fin de la ligne

Ensuite, bien sûr, utilisez .


-1 pour ne pas être entré en mode insertion car c'est précisément ce que j'ai demandé. +1 par souci d'exhaustivité.
Sardathrion

0

Comme cela peut être utile, une fois que nous essayons de changer jusqu'à la fin de la ligne. J'ai créé un mappage d'insertion pour effectuer cette tâche, il ne l'utilise pas Dcar en mode d'insertion, cette clé est utilisée pour diminuer l'indentation. Il en est ainsi Ctrl-k

:inoremap <C-k> <C-o>C
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.