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é?
vim
newline
text-editor
line-breaks
carriage-return
test utilisateur
la source
la source
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
».la source
: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
.la source
:help edit
spectaclese[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 commeunix
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 exemplevi -b filename
ouvim -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
.la source
Unix
environnement. Mais je voudrais être averti des fins de ligne de type Windows s'il y en a dans le fichier. Est-ce quevi -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
sanse ++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 surdos
,mac
etunix
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 sefileformat
produit,unix
il écrira simplement\n
à la place de son saut de ligne interne.L'astuce consiste à forcer Vim à lire un
dos
fichier codé enunix
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 desdos
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 utilisantCTRL-V
suivi deEnter
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.la source
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.
la source
set binary
n'est pas le même quevim -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'utiliseunix
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:
Lorsque vous exécutez vim, les commandes dans .vimrc sont exécutées, et vous pouvez voir cet exemple:
la source
en utilisant
cat
et-A
vous pouvez voir les nouvelles lignes sous forme d'$
onglets comme^I
cat -A myfile
la source
Vous pouvez afficher les lignes de rupture à l'aide de l' éditeur gedit .
Tout d'abord, si vous n'avez pas installé:
Maintenant, installez les plugins gedit :
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.la source