Créons deux fichiers:
$ echo -n 'test' > test.txt
$ wc test.txt
0 1 4 test.txt
Le fichier test.txt
ne contient pas la nouvelle ligne de fin.
$ echo 'test' > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
Le fichier test_n.txt
contient la nouvelle ligne de fin.
Les deux fichiers ci - dessus sont évidemment différentes, mais l'aperçu des fichiers en vim
en mode d'insertion ne contient pas de différences:
$ vim test.txt
$ vim test_n.txt
Pourquoi n'y a-t-il pas de différence (nouvelle ligne ou distinction spéciale)?
Et que puis-je faire pour ajouter ou supprimer un tel caractère supplémentaire vim
en mode insertion ?
Réponses:
vim a un mode "eol" (pour la fin de ligne) pour dire quoi faire si la dernière ligne du fichier n'a pas de caractère de nouvelle ligne . Vous pouvez voir tous les paramètres de mode dans vim (ou tout programme comme vi) en
POSIX vi n'a pas de fonctionnalité pour cela: les fichiers sont de longueur nulle ou ont une nouvelle ligne de fin. En effet, POSIX vi ne traite que des fichiers texte, qui sont par définition des lignes se terminant par des retours à la ligne. Dans une vérification rapide, nvi et elvis n'ont pas de modes pour cela. Dans mon commentaire, j'avais oublié un détail de vim: contrairement à vile, une ": set list" ne montre pas facilement la nouvelle ligne manquante. Voici ce que je vois dans vim:
en vile:
Pour l'un ou l'autre éditeur, vous pouvez lire le fichier, modifier le mode , par exemple,
et écrivez le fichier pour obtenir une nouvelle ligne sur le fichier mis à jour. Plutôt que de l'afficher directement, vous pouvez modifier la ligne d'état de vim pour afficher ces informations. Par défaut, cela ne semble pas le faire, mais certains emballeurs l'ont personnalisé, par exemple,
L'un des commentaires suggère d'utiliser le "?" modificateur de la
set
commande, par exemple,qui pourrait montrer quelque chose comme ceci:
mais en mode insertion, qui est remplacé par
la ligne d'état semble donc le bon endroit pour conserver ces informations.
Les fonctionnalités existent depuis un certain temps:
La
eol
fonctionnalité est apparue pour la première fois dans vim 2.4 (juillet 1994), selon un commentaire dans son code source.vile's
newline
mode est apparu en juillet 1993 .( nvi, elvis, vim et vile gèrent tous les fichiers binaires en plus des fichiers texte de POSIX vi ).
la source
:set eol?
voir si eol est activé ou désactivé, vous n'avez donc pas à parcourir toutes les sorties de:set all
.