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 list
dans 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 list
N'affichera PAS les ^M
caractères (CR). Fournir l' -b
option à 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 list
ne 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 edit
spectacles e[dit]! [++opt] [+cmd]
. Et :help ++e
dit que l' argument [++ opt] peut être utilisé pour forcer la valeur de 'fileformat' [..] .
:set list
montre newline ( $
), :e ++ff=unix
montre CR ( ^M
); si vous voulez voir les deux, :set list
alors:e ++ff=unix
:set ff=unix
dit à 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=unix
lui dit de forcer le format du fichier comme unix
sans 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.
vim
pour une raison quelconque ... Je ne veux dire ni -b
option, 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 -b
commutateur pour le mode binaire. Par exemple vi -b filename
ou 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
.
Unix
environnement. 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 filename
ou :set binary
simplement montrer ^M
s'il s'agit d'un fichier de type Windows et pas d'autres fins de ligne autrement?
Juste pour clarifier pourquoi :set list
ne montrera pas les CR comme ^M
sans e ++ff=unix
et pourquoi :set list
n'a rien à voir avec ^M
les.
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
, mac
et unix
respectivement.
Lorsque l' list
option est définie, Vim affiche un $
caractère lorsque le saut de ligne s'est produit, quelle que soit l' fileformat
option 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 fileformat
options détectées, convertissant essentiellement tous ces internes $
avec les caractères appropriés. Si le se fileformat
produit, unix
il écrira simplement \n
à la place de son saut de ligne interne.
L'astuce consiste à forcer Vim à lire un dos
fichier codé en unix
un seul. L'effet net est qu'il supprimera toutes \n
les \r
parties intactes et les affichera comme étant ^M
dans votre tampon. Le réglage :set list
affichera également les fins de ligne internes sous la forme $
. Après tout, vous voyez ^M$
à la place des dos
sauts de ligne codés.
Notez également que cela :set list
n'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' list
option) en insérant un CR unique en utilisant CTRL-V
suivi de Enter
en mode insertion. Après avoir écrit le tampon sur le disque et l'avoir ouvert à nouveau, vous verrez ^M
bien que l' list
option 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 binary
n'est pas le même que vim -b filename.py
. Une idée pourquoi? J'ai vérifié help
et il semble que ce que vous dites est généralement correct. Comment puis-je comprendre pourquoi il en est ainsi?
:e ++ff=unix
montre le ^M
correctement et ne le montre pas quand j'utilise unix
des 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 cat
et -A
vous 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.