51 votes

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

Parfois, je souhaite que la dernière ligne d'un fichier texte soit une simple chaîne de texte avec pas de nouvelle ligne caractère ajouté : ...par exemple pour concaténer un autre fichier à celui-ci.

Plusieurs éditeurs automatiquement modifie mon texte en ajoutant un caractère de nouvelle ligne, même si je n'ai pas appuyé sur Entrer .

Remains unmodified: Emacs, SciTE, Kate, Bluefish, Notepad(Wine)

Newline is added: Gedit, Gvim, Vim, Nano

J'aimerais savoir s'il existe un moyen de modifier Gedit, Gvim et Vim pour qu'ils ne sauvegardent que ce que j'ai tapé. .... et même Nano pourraient être utiles.

J'utilise actuellement Gedit, et je m'essaie à Gvim/Vim... il serait donc utile de savoir comment les activer/désactiver...

PS . Lors de la réouverture du même fichier dans Gedit, Gvim et Vim, le curseur de fin de fichier se trouve à la fin du texte, alors qu'il devrait se trouver sur la ligne suivante (vide). C'est trompeur (mais c'est à cause de ce à quoi je suis habitué).

J'ai utilisé un éditeur hexagonal pour vérifier les observations ci-dessus.

57voto

Redbaron Points 523

Pour gEdit il ne semble pas y avoir de moyen de désactiver l'insertion d'une nouvelle ligne à la fin. voir cette réponse .

Pour Vim (et gVim ), vous pouvez - en exécutant l'option suivante : :set binary . Le réglage sur binaire permet d'enregistrer le fichier tel quel et de ne pas insérer de nouvelle ligne à la fin du document (à moins qu'il n'y en ait déjà une, auquel cas elle sera conservée). Vous pouvez à tout moment revenir sur cette option avec :set nobinary .

Nano est un peu plus facile. Vous pouvez lancer nano avec la commande -L (ou --nonewlines si vous êtes plutôt du genre visuel). Cela désactivera l'ajout automatique d'une nouvelle ligne à la fin du fichier (tant qu'une ligne n'a pas été saisie). Idéalement, vous pourriez configurer cet alias dans votre fichier ~/.bashrc : alias nano="nano -L" qui lancerait Nano avec l'option "no newlines" incluse !

Comme je ne sais pas exactement ce que vous faites, je vous renvoie à Pourquoi les fichiers doivent-ils se terminer par une nouvelle ligne ? ce qui peut expliquer leur présence. En résumé, certaines applications échoueront si elles ne trouvent pas de EOL directement avant le EOF .

17voto

Ravi Gadhia Points 271

Pour gEdit :

Si vous utilisez Ubuntu 12.04 ou une version plus récente, vous pouvez déjà définir le comportement.

Par le biais d'une interface utilisateur graphique :

  1. Lancer l'éditeur dconf ( dconf-editor )
  2. Ir a org gnome gedit preferences editor
    (ou recherchez simplement ensure-trailing-newline )
  3. Décocher ensure-trailing-newline si vous ne voulez pas que les nouvelles lignes soient ajoutées automatiquement.

Sur la ligne de commande :

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

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

    et vous avez terminé.

Référence | Bug du Launchpad

0voto

jpillora Points 631

Si vous souhaitez simplement écrire un fichier d'une seule ligne, echo est probablement la solution la plus simple :

echo -n "the contents of my file" > myfile

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X