Sous Solaris, si vous ouvrez un fichier dans vi qui a des fins de ligne Windows, cela apparaît comme ^ M à la fin de chaque ligne.
Sous Linux, vi est plus intelligent et comprend le format de fichier Windows et n'affiche pas ^ M.
Existe-t-il un paramètre pour que Linux vi se comporte de la même manière que Solaris à cet égard?
Un problème commun pour nous est de copier un script shell sur une boîte de développement (Windows) et d'oublier de le dos2unix, puis d'être confus lorsqu'il ne fonctionne pas correctement. Sur Solaris, le problème est évident dès que vous vi le fichier, mais pas sur Linux.
Merci.
vim
, par défaut, je ne vois généralement pas^M
, mais parfois il y en a un à la fin du fichier.Réponses:
Essayez
:set ffs=unix
au démarrage de vi (ou définissez-le par défaut dans vimrc) qui devrait afficher tous les caractères CR comme^M
.vi devine automatiquement le format à utiliser selon qu'il rencontre ou non des lignes se terminant par juste LF ou les deux CR / LF.
la source
:set list
apparaît$
à la fin de toutes les lignes (format Unix et DOS), donc n'aide pas à distinguer les deux.Not an editor command: ffs=unix
- mais m'a mis sur la bonne voie. L'exécution:set ffs=unix
avec le fichier ouvert dans vi n'a pas fonctionné - aucune erreur mais rien ne s'est produit. J'ai misset ffs=unix
mon fichier .vimrc et cela a fonctionné.ffs
exactement ce que c'est. Mais voyez la réponse de @wisbucky.Pour afficher les fins de ligne dos pour le fichier actuel:
:e +ff=unix
Cela force le format de fichier à unix, qui sera rendu
CR
comme^M
Pour rendre ce paramètre permanent, ajoutez à
~/.vimrc
:set ffs=unix
Notez que le paramètre .vimrc ne l'est
ffs
pasff
.la source
:e ++ff=unix
, je crois.:e ++ff=unix
(par fourche0) 54321
la source