J'ai essayé de suivre ce qui suit:
Comment supprimer le texte sélectionné dans l'éditeur de VI
mais
5dd
donne
E492: Pas une commande d'éditeur: 5dd
J'ai ensuite essayé:
5d
Ce qui ne supprime qu'une seule ligne. Comment puis-je supprimer plusieurs lignes?
Réponses:
On dirait que vous entrez les commandes en mode commande (alias «mode Ex»). Dans ce contexte
:5d
, supprimerait la ligne numéro 5, rien d'autre. Pour5dd
fonctionner comme prévu - c'est-à-dire, supprimez cinq lignes consécutives commençant au curseur - entrez-le en mode normal et ne préfixez pas les commandes avec:
.la source
Je trouve ça plus facile
/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi
la source
Vous pouvez supprimer plusieurs lignes (plage) si vous connaissez les numéros de ligne:
Remarque: d signifie supprimer
où,
start_line_no est la ligne de début non que vous souhaitez supprimer et end_line_no est la ligne de fin non que vous souhaitez supprimer. Les lignes entre le début et la fin, y compris le début et la fin, seront supprimées.
Par exemple:
Les lignes entre 45 et 101 dont 45 et 101 seront supprimées.
la source
$
pour désigner la dernière ligne du fichier. Donc:45,$d
supprimerait chaque ligne de 45 jusqu'à la fin./<\/div>/
:.,[end_line_no]d
Commandes répertoriées pour une utilisation en mode normal (préfixe avec :pour le mode commande).
Testé à Vim.
Par montant de ligne:
Par numéros de ligne:
Backwards range given, OK to swap (y/n)?
la source
Si vous préférez une méthode en mode non visuel et reconnaissez les numéros de ligne, je voudrais vous suggérer une autre manière simple.
Exemple
Ma méthode vous suggère de taper une commande ci-dessous en mode commande:
Ça lit:
Notez que
vim
vous pouvez utilisergg
à la place deG
.Comparez à la réponse de @Bonnie Varghese qui est:
La commande ci-dessus à partir de sa réponse nécessite 9 fois la saisie, y compris enter, où ma réponse nécessite 8 à 10 fois de frappe. Ainsi, une vitesse de ma méthode est comparable.
Personnellement, je me préfère
45Gd101G
plus:45,101d
parce que je aime coller à la syntaxe de la commande du vi, dans ce cas est:la source
d5d "coupe" cinq lignes
Habituellement, je jette simplement le nombre au milieu comme:
d7l = supprimer 7 lettres
la source
Appuyez sur la Esctouche pour vous assurer que vous n'êtes pas en mode d'édition. Placez le curseur sur la première ligne à supprimer. Entrez
:5dd
. La ligne actuelle et les quatre lignes suivantes doivent être supprimées.Sinon, si la numérotation des lignes est activée ...
Appuyez sur la Esctouche pour vous assurer que vous n'êtes pas en mode d'édition. Entrez
:#,#d
où «#» représente les numéros de ligne de début et de fin à supprimer.la source
Tapez (pour les lignes numérotées).
:set number
la source
Si vous souhaitez supprimer une plage APRÈS un déclencheur de ligne spécifique, vous pouvez utiliser quelque chose comme ça
Cela supprime 11 lignes (inclus) après chaque rencontre de
^TMPDIR
.la source
c'est dxd, pas ddx
si vous souhaitez supprimer 5 lignes, placez le curseur au début de la première ligne à supprimer et d5d
la source
Pour supprimer toutes les lignes, utilisez - ESC gg dG Pour supprimer quelques lignes, disons 5 puis utilisez ESC 5dd
la source
Cela pourrait être fait comme suit.
la source