Supprimer le saut de ligne dans Vim
Est-il un moyen de supprimer le saut de ligne à la fin d'une ligne dans Vim, de sorte que la ligne suivante est ajoutée à la ligne en cours?
Par exemple:
Evaluator<T>():
_bestPos(){
}
J'aimerais mettre tout cela sur une seule ligne sans copier les lignes et les coller dans la précédente. Il semble que je devrais être en mesure de mettre mon curseur à la fin de chaque ligne, appuyez sur une touche, et avoir la ligne suivante, sautez sur le même que le curseur est sur.
Résultat final:
Evaluator<T>(): _bestPos(){ }
Est-ce possible dans Vim?
- Del à la fin de la ligne dans vim du mode d'insertion l'habitude de travailler pour moi. Pas dans tous les terminaux, cependant.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes sur la première ligne, en appuyant sur (en majuscules) J va rejoindre cette ligne et la ligne suivante ensemble, la suppression du saut de ligne. Vous pouvez aussi combiner cette fonction avec un nombre, donc en appuyant sur
3J
réunira tous les 3 lignes ensemble.gJ
permettra d'éviter l'ajout d'espaces qui Vim peuvent choisir d'ajouter lors de l'utilisation deJ
.V
(Visual Mode de Ligne), puis appuyez surJ
ougJ
:join
et:join!
qui rejoignent les lignes de maintien de la position du curseur et ne pas garder de l'espace au point de la réunion. vous pouvez également mapper comme:nnoremap <Leader>j :joing<cr>
etnnoremap <Leader>gj :join!<cr>
.Certainement. Vim reconnaît le caractère \n comme un retour à la ligne, de sorte que vous pouvez rechercher et remplacer.
En mode de commande de type:
V
-visual bloc et de le remplacer sur elle.Tandis que sur la ligne supérieure en mode normal, appuyez sur Maj+j.
Vous pouvez ajouter un nombre trop, de sorte
3J
sur la ligne du haut, devait se joindre à toutes ces lignes ensemble.J
supprime plus grand espacement (le cas échéant), des lignes de jonction avec un seul espace. (À quelques exceptions près: après/[.!?]$/
, deux espaces peuvent être insérés; avant/^\s*)/
, les espaces ne sont pas insérés.)Si vous ne voulez pas que le comportement, la
gJ
supprime simplement le retour à la ligne et ne pas faire n'importe quoi intelligent avec des espaces à tous.Comme d'autres réponses mentionnées, (en majuscules),
J
et de recherche + remplacer pour\n
peut être utilisé de manière générale pour la bande de caractères de saut de ligne et pour concaténer des lignes.Mais afin de se débarrasser de la fuite caractère de saut de ligne dans la dernière ligne, vous devez le faire dans Vim:
Toutes les conditions suivantes supposent que votre curseur est sur la première ligne:
L'utilisation normale des mappages:
3Maj+J
En utilisant les commandes Ex:
Qui est une abréviation de
Qui peut également être saisi par le raccourci suivantes:
3:j
Encore plus courte commande Ex:
:j!3
dans votre .vimrc vous permettra d'utiliser
backspace
etdelete
sur\n
(saut de ligne) en mode insertion.va vous permettre de supprimer la précédente LF en mode normal avec
X
(en col 1).Il dépend probablement sur vos paramètres, mais j'ai l'habitude de le faire avec
A<delete>
Où
A
est ajouter à la fin de la ligne. Il nécessite probablementnocompatible
mode 🙂curseur dans la première ligne de
MAINTENANT, en MODE NORMAL ne
ou
:normal V2jJ
Je voudrais juste appuyer sur A (ajouter à la fin de la ligne, vous fait passer en mode insertion) sur la ligne où vous souhaitez supprimer le saut de ligne, puis appuyez sur supprimer.
:help 'backspace'
si vous n'avez pas l'esprit à l'aide d'autres shell outils,
ggVGJ
.Le problème est que les multiples char 0A (\n), qui sont invisibles peuvent s'accumuler.
Supose que vous souhaitez nettoyer à partir de la ligne 100 de la fin:
Tapant ESC et : (terminal commandant)
Dans un script vim:
Explication: à partir de 110 jusqu'à la fin
rechercher les lignes qui commencent par une nouvelle ligne (sont vides)
et de les supprimer