web-dev-qa-db-fra.com

Comment empêcher Gedit, Gvim, Vim, Nano d'ajouter des caractères de nouvelle ligne à la fin du fichier?

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.

39
Peter.O

Pour gEditInstall 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 VimInstall vim (et gVimInstall vim ) 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.

NanoInstall 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

47
Marco Ceppi

Pour gEdit:

Si vous utilisez Ubuntu 12.04 ou une version ultérieure, vous pouvez déjà définir le comportement.

Via une interface utilisateur graphique:

  1. Exécuter l'éditeur dconf (dconf-editor)
  2. Sélectionnez orggnomegeditpreferenceseditorname__
    (ou cherchez simplement ensure-trailing-newline)
  3. Décochez ensure-trailing-newline si vous ne souhaitez pas ajouter automatiquement de nouvelles lignes.

Sur la ligne de commande:

  1. Ouvrez un terminal (ctrl+alt+T)
  2. entrez la commande suivante

    gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
    

    et tu as fini.

Référence | Launchpad bug

15
Ravi Gadhia

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
0
jpillora