Comment empêcher Gedit, Gvim, Vim, Nano d’ajouter des caractères de nouvelle ligne en fin de fichier?

33

Parfois, je veux que la dernière ligne d’un fichier texte soit une simple chaîne de texte avec un caractère sans nouvelle ligne ajouté: 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 Gedit, Gvim et Vim pour ne sauvegarder que ce que j'ai tapé ... et même Nano pourrait être utile

J'utilise actuellement Gedit, et je me mêle de Gvim / Vim .. il serait donc utile de savoir comment "activer / désactiver" ces éléments ...

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

J'ai utilisé un outil hexadécimal pour vérifier les observations ci-dessus.

    
posée Peter.O 15.11.2010 - 05:21
la source

3 réponses

42

gEdit , il ne semble pas y avoir de moyen de désactiver la ligne insérée à la fin.

Toutefois, Vim < img src="https://hostmar.co/software-small"> (et gVim ) - en exécutant l’option suivante: :set binary Si vous choisissez binaire, le fichier sera enregistré tel quel et ne pas insérer de nouvelle ligne à la fin du document (sauf s'il en existe déjà un, dans lequel il sera conservé). A tout moment, vous pouvez annuler cette option avec :set nobinary .

Nano est un peu plus facile. Vous pouvez lancer nano avec l'indicateur -L (ou --nonewlines si vous êtes plus du type visuel). Cela désactivera l'ajout automatique de la nouvelle ligne à la fin du fichier (tant que celui-ci n'a pas été entré). Idéalement, vous pourriez configurer cet alias dans votre ~/.bashrc : alias nanon=nano -L qui lancerait Nano avec l'indicateur no newlines inclus.

Comme je ne sais pas exactement ce que vous faites, je vais vous indiquer Pourquoi les fichiers devraient-ils se terminer par une nouvelle ligne? , ce qui pourrait expliquer pourquoi ils existent. En bref, certaines applications échoueront si elles ne trouvent pas un EOL directement avant EOF

    
réponse donnée Marco Ceppi 15.11.2010 - 06:44
la source
14

Pour gEdit:

Si vous utilisez 12.04 ou 12.10 (autres versions non testées), vous pouvez déjà définir le comportement.

  1. Exécutez l'éditeur dconf ( dconf-editor )
  2. Aller à /org/gnome/gedit/preferences/editor
  3. Décochez la case assurer-trailing-newline si vous ne souhaitez pas ajouter automatiquement de nouvelles lignes.

Référence | Bogue du Launchpad

    
réponse donnée Ravi Gadhia 03.12.2013 - 07:44
la source
0

Si vous voulez simplement écrire un seul fichier de ligne, echo est probablement la solution la plus simple:

echo -n "the contents of my file" > myfile
    
réponse donnée jpillora 03.03.2016 - 09:27
la source

Lire d'autres questions sur les étiquettes