vim
Konwertowanie plików tekstowych z DOS na UNIX za pomocą vi
Szukaj…
Uwagi
Znak ^M
oznacza powrót karetki w Vimie ( <cm>
lub po prostu <CR>
). Vim wyświetla ten znak, gdy przynajmniej on-line w pliku używa zakończeń linii LF
. Innymi słowy, gdy Vim uważa, że plik ma fileformat=unix
pliku fileformat=unix
ale niektóre linie mają znaki powrotu karetki ( CR
), znaki powrotu karetki są wyświetlane jako ^M
Plik, który ma jedną linię z zakończeniem linii LF
i kilka linii z zakończeniami linii CRLF
jest najczęściej tworzony przez błędną edycję pliku utworzonego w systemie opartym na MSDOS. Na przykład, tworząc plik w systemie operacyjnym MSDOS, kopiując go do systemu opartego na UNIX, a następnie przygotowując żądło hash-bang (np. #!/bin/sh
) przy użyciu narzędzi w systemie operacyjnym opartym na UNIX.
Konwertowanie pliku tekstowego DOS na plik tekstowy UNIX
Dość często masz plik, który był edytowany w systemie DOS lub Windows i przeglądasz go w systemie UNIX. Może to wyglądać następująco podczas przeglądania pliku za pomocą vi.
First line of file^M
Next Line^M
And another^M
Jeśli chcesz usunąć ^ M, być może usuniesz każdy ^ M ręcznie. Alternatywnie, w vi po wciśnięciu Esc możesz wpisać następujące polecenie w wierszu poleceń:
:1,$s/^M//g
Gdzie ^ M jest wprowadzane razem z Ctrl i v razem, a następnie Ctrl i m razem.
Wykonuje to polecenie od pierwszego wiersza „1” do ostatniego wiersza „$”, polecenie ma zastąpić „s” „^ M” niczym ”i tym globalnie„ g ”.
Korzystanie z formatu pliku VIm
Kiedy Vim otworzy plik z zakończeniami linii <CR><NL>
(powszechny w systemach operacyjnych opartych na MSDOS, zwany także CRLF
), ustawi fileformat
na dos
, możesz to sprawdzić za pomocą:
:set fileformat?
fileformat=dos
Lub tylko
:set ff?
fileformat=dos
Aby przekonwertować go na zakończenia linii <NL>
(wspólne w większości systemów operacyjnych opartych na UNIX, zwanych także LF
), możesz zmienić ustawienie fileformat
, a Vim zmieni bufor.
:set ff=unix