Quelqu'un connaît-il un éditeur de texte sous Linux qui me permet de voir les sauts de ligne et les retours chariot? Vim prend-il en charge cette fonctionnalité?
Quelqu'un connaît-il un éditeur de texte sous Linux qui me permet de voir les sauts de ligne et les retours chariot? Vim prend-il en charge cette fonctionnalité?
Réponses:
:set listdans Vim affichera des espaces. La fin des lignes est représentée par « $» et les retours chariot sont généralement affichés par « ^M».
:set listN'affichera PAS les ^Mcaractères (CR). Fournir l' -boption à vi / vim fonctionnera. Ou, une fois que vim est chargé, tapez::e ++ff=unix
:set nolist
Pour ne pas être d'accord avec la réponse officielle:
:set listne pas montrer ^ caractères M (SNPC). Fournir l'option -b à vi / vim fonctionnera. Ou, une fois que vim est chargé, tapez :e ++ff=unix.
:help editspectacles e[dit]! [++opt] [+cmd]. Et :help ++edit que l' argument [++ opt] peut être utilisé pour forcer la valeur de 'fileformat' [..] .
:set listmontre newline ( $), :e ++ff=unixmontre CR ( ^M); si vous voulez voir les deux, :set listalors:e ++ff=unix
:set ff=unixdit à Vim de changer les fins de ligne en style Unix (dans le cadre de la définition du format de fichier), de sorte que les caractères ^ M ne soient plus là (et ne sont donc pas affichés). :e ++ff=unixlui dit de forcer le format du fichier comme unixsans modifier réellement le contenu. Ainsi, vim le lit comme un fichier Unix, voit les caractères CR comme supplémentaires et les affiche comme ^ M.
vimpour une raison quelconque ... Je ne veux dire ni -boption, ni :e ++ff=unixà l'intérieur :(
VI montre les nouvelles lignes (caractère LF, code x0A) en affichant le texte suivant sur la ligne suivante.
Utilisez le -bcommutateur pour le mode binaire. Par exemple vi -b filenameou vim -b filename --.
Il affichera alors les caractères CR ( x0D), qui ne sont normalement pas utilisés dans les fichiers de style Unix, comme caractères ^M.
Unixenvironnement. Mais je voudrais être averti des fins de ligne de type Windows s'il y en a dans le fichier. Est-ce que vi -b filenameou :set binarysimplement montrer ^Ms'il s'agit d'un fichier de type Windows et pas d'autres fins de ligne autrement?
Juste pour clarifier pourquoi :set listne montrera pas les CR comme ^Msans e ++ff=unixet pourquoi :set listn'a rien à voir avec ^Mles.
En interne, lorsque Vim lit un fichier dans sa mémoire tampon, il remplace tous les caractères de fin de ligne par sa propre représentation (appelons- $la). Pour déterminer quels caractères doivent être supprimés, il détecte d'abord dans quel format les fins de ligne sont stockées dans un fichier. S'il n'y a que CRLF '\r\n'ou uniquement CR '\r'ou uniquement des '\n'caractères de fin de ligne LF , alors 'fileformat'est défini sur dos, macet unixrespectivement.
Lorsque l' listoption est définie, Vim affiche un $caractère lorsque le saut de ligne s'est produit, quelle que soit l' fileformatoption détectée. Il utilise sa propre représentation interne des sauts de ligne et c'est ce qu'il affiche.
Désormais, lorsque vous écrivez du tampon sur le disque, Vim insère des caractères de fin de ligne en fonction des fileformatoptions détectées, convertissant essentiellement tous ces internes $avec les caractères appropriés. Si le se fileformatproduit, unixil écrira simplement \nà la place de son saut de ligne interne.
L'astuce consiste à forcer Vim à lire un dosfichier codé en unixun seul. L'effet net est qu'il supprimera toutes \nles \rparties intactes et les affichera comme étant ^Mdans votre tampon. Le réglage :set listaffichera également les fins de ligne internes sous la forme $. Après tout, vous voyez ^M$à la place des dossauts de ligne codés.
Notez également que cela :set listn'a rien à voir avec les projections ^M. Vous pouvez le vérifier par vous-même (assurez-vous que vous avez d'abord désactivé l' listoption) en insérant un CR unique en utilisant CTRL-Vsuivi de Enteren mode insertion. Après avoir écrit le tampon sur le disque et l'avoir ouvert à nouveau, vous verrez ^Mbien que l' listoption soit définie sur 0.
Vous pouvez en savoir plus sur les formats de fichiers sur http://vim.wikia.com/wiki/File_format ou en tapant :help 'fileformat'Vim.
Essayez la commande suivante.
: définir le binaire
Dans VIM, cela devrait faire la même chose que l'utilisation de l'option de ligne de commande "-b". Si vous mettez ceci dans votre fichier de démarrage (ie .vimrc), il sera toujours en place pour vous.
Sur de nombreux systèmes * nix, il existe une commande «dos2unix» ou «unix2dos» qui peut traiter le fichier et corriger tout problème de fin de ligne suspecté. S'il n'y a aucun problème avec les fins de ligne, les fichiers ne seront pas modifiés.
set binaryn'est pas le même que vim -b filename.py. Une idée pourquoi? J'ai vérifié helpet il semble que ce que vous dites est généralement correct. Comment puis-je comprendre pourquoi il en est ainsi?
:e ++ff=unixmontre le ^Mcorrectement et ne le montre pas quand j'utilise unixdes fichiers de type .. Donc je suppose que le problème est résolu pour l'instant ...
Je vous suggère de modifier votre fichier .vimrc, pour exécuter une liste de commandes. Modifiez votre fichier .vimrc, comme ceci:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Lorsque vous exécutez vim, les commandes dans .vimrc sont exécutées, et vous pouvez voir cet exemple:
My line with CRLF eol here ^M¶
en utilisant catet -Avous pouvez voir les nouvelles lignes sous forme d' $onglets comme^I
cat -A myfile
Vous pouvez afficher les lignes de rupture à l'aide de l' éditeur gedit .
Tout d'abord, si vous n'avez pas installé:
sudo apt-get install gedit
Maintenant, installez les plugins gedit :
sudo apt-get install gedit-plugins
et sélectionnez le plugin Draw Spaces , entrez dans Préférences, et choisissez Dessiner de nouvelles lignes
En utilisant VSCode, vous pouvez installer l' extension de fin de ligne .
Sublime Text 3 a un plugin appelé RawLineEdit qui affichera les fins de ligne et permettra l'insertion d'un type de fin de ligne arbitraire
shift + ctrl + p et commencez à saisir le nom du plugin, et basculez pour afficher la fin de la ligne.