Informations de base
Vim n'affiche pas la dernière nouvelle ligne dans le tampon, mais en fait, vim place toujours EOL à la fin du fichier lorsque vous l'écrivez, car il est standard pour les fichiers texte dans les systèmes Unix. Vous pouvez trouver plus d'informations à ce sujet ici . Bref vous n'avez pas à vous soucier de l'absence de nouvelles lignes à la fin du fichier dans vim.
Expérience 1
Vous pouvez faire cette petite expérience pour vérifier ce comportement. Dans le terminal, exécutez:
$ vim test_test
Saisissez le caractère 1
et enregistrez le fichier :wq.
Vous n'avez qu'un seul caractère dans le fichier, non? En fait non :) Vous avez maintenant dans votre fichier 1
et vos LF
personnages. Vérifions-le, avec l'utilitaire hexdump:
$ hexdump test_test
0000000 31 0a
0000002
31
est le code ASCII pour le caractère 1
, et 0a
est le code ASCII pour le caractère non imprimable LF
qui pour UNIX comme vous le savez peut-être déjà le code pour la fin de la ligne.
Expérience 2
Mais que faire si nous ouvrons un fichier qui n'a pas de eol
symbole à la fin du fichier. Vérifions-le aussi. Créons un fichier sans eol à la fin, par exemple comme ceci:
$ echo -n "1" > test_without_eol
Ensuite, regardons à l'intérieur avec hexdump:
$ hexdump test_without_eol
000000 31
0000001
Il n'y a donc aucun eol
personnage ici. Ouvrons ce fichier dans vim:
$ vim test_without_eol
Au bas de l'éditeur, vous verrez:
"test_without_eol" [noeol] 1L, 1C
Et si vous enregistrez ce fichier, le eol
caractère sera automatiquement ajouté.
Que pouvons-nous faire à ce sujet?
Si vous avez vraiment besoin de voir la fin du fichier. Essayez d'utiliser cette commande:
:set listchars=eol:$
il montrera tous les eol
caractères comme $
signe.