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 1et 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 1et vos LFpersonnages. Vérifions-le, avec l'utilitaire hexdump:
$ hexdump test_test
0000000 31 0a
0000002
31est le code ASCII pour le caractère 1, et 0aest le code ASCII pour le caractère non imprimable LFqui 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 eolsymbole à 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 eolpersonnage 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 eolcaractè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 eolcaractères comme $signe.