Parfois, je veux que la dernière ligne d'un fichier texte soit une simple chaîne de texte avec le caractère pas de nouvelle ligne: ... par exemple. concaténer un autre fichier.
Plusieurs éditeurs automatiquement modifient mon texte en ajoutant un caractère de nouvelle ligne, même si je n’ai pas appuyé sur Entrée.
Remains unmodified:
Emacs, SciTE, Kate, Bluefish, Bloc-notes (vin)
Newline is added:
Gedit, Gvim, Vim, Nano
J'aimerais savoir s'il existe un moyen de modifier Tweak Gedit, Gvim et Vim pour ne sauvegarder que ce que j'ai dactylographié ... et même Nano pourrait s'avérer utile
J'utilise actuellement Gedit, et je bricole dans Gvim/Vim .. il serait donc utile de savoir comment "activer"/désactiver ces fonctions ...
PS. Lors de la réouverture du même fichier dans Gedit, Gvim et Vim, l’emplacement de fin de fichier du curseur se trouve à la fin du texte, alors qu’il devrait apparaître dans la ligne suivante (vide). C'est trompeur (mais c'est à cause de ce à quoi je suis habitué).
J'ai utilisé un hexeditor pour vérifier les observatons ci-dessus.
Pour gEdit il ne semble pas y avoir de moyen de désactiver le fait d'avoir une nouvelle ligne insérée à la fin voir cette réponse .
Pour Vim (et gVim ) vous pouvez - en exécutant l'option suivante: :set binary
. Définir sur binaire enregistre le fichier tel quel et n’insère pas de nouvelle ligne à la fin du document (sauf s’il en existe déjà une dans laquelle il sera conservé). A tout moment, vous pouvez rétablir cette option avec :set nobinary
.
Nano est un peu plus facile. Vous pouvez lancer nano avec l'indicateur -L
(ou --nonewlines
si vous êtes plutôt du type visuel). Cela désactivera l'ajout automatique de la nouvelle ligne à la fin du fichier (tant que celle-ci n'a pas été réellement entrée). Idéalement, vous pouvez configurer cet alias dans votre ~/.bashrc
: alias nano="nano -L"
, qui lancera Nano avec l'indicateur no newlines inclus!
Puisque je ne sais pas exactement ce que vous faites, je vais vous indiquer Pourquoi les fichiers doivent-ils se terminer par une nouvelle ligne? , ce qui peut expliquer pourquoi ils sont là. En bref, certaines applications échoueront si elles ne trouvent pas un EOL
juste avant le EOF
Si vous utilisez Ubuntu 12.04 ou une version ultérieure, vous pouvez déjà définir le comportement.
dconf-editor
)org
→ gnome
→ gedit
→ preferences
→ editor
name__ensure-trailing-newline
)ensure-trailing-newline
si vous ne souhaitez pas ajouter automatiquement de nouvelles lignes.entrez la commande suivante
gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
et tu as fini.
Si vous voulez juste écrire un fichier d'une seule ligne, alors echo est probablement la solution la plus simple:
echo -n "the contents of my file" > myfile