Wyświetl CR i LF zamiast „EOL” w „: set list”


12

Zamiast wybierać jeden znak, który ma być wyświetlany jako znak EOL, chciałbym, aby jeden wyświetlał się zarówno dla CR, jak i LF osobno i niezależnie od tego, czy plik jest uniksowy czy dos. czy to możliwe?


2
Więc jeśli dobrze cię rozumiem, potrzebujesz czegoś takiego Hello%$dla plików DOS (gdzie %jest CR i $a LF)? Nie jest to możliwe przy ustawieniu list/ listchars, i tak naprawdę nie mogę wymyślić sposobu na zrobienie tego w VimScript ...
— Martin Tournoij

1
@Carpetsmoker To prawda. Poza tym, czy set listjest jakiś sposób, aby mieć CRi LFpokazywać się jako konkretne postacie?
— Captain Man,

2
Możesz być w stanie wyróżnić je określonym kolorem, ale nie ma sposobu, aby pokazać je jako konkretne postacie, które nie byłyby zuchwałym afaikiem.
— EvergreenTree,

Myślę, że CR lub LF można zobaczyć jednocześnie, a nie jedno i drugie.
— SibiCoder,

1
set stl+=\ [%{&ff=='mac'?'CR':&ff=='unix'?'LF':'CRLF'}]
— Antony

Odpowiedzi:


2

Z pewnymi zastrzeżeniami możesz to zrobić w trybie binarnym Vima. Wygląda na to, że możesz chcieć użyć polecenia

vim -b +'set list' somefile

Alternatywnie możesz umieścić w swoim .vimrc:

:set binary
:set list

Ważne jest to, że tryb binarny musi zostać ustawiony, zanim dany plik zostanie odczytany do bufora. Gdy Vim wczyta plik, jest już za późno; ta sztuczka polega na zmianie sposobu, w jaki Vim odczytuje plik. W szczególności potrzebujesz, aby Vim nie próbował odgadnąć konkretnego typu pliku <EOL>.

Tryb binarny robi to, co chcesz, wyłączając to automatyczne wykrywanie separatora linii, ale robi też kilka innych rzeczy:

  • ustawia 'textwidth'na 0
  • ustawia 'wrapmargin'na 0
  • rozbroił 'modeline'
  • rozbroił 'expandtab'

Więc możesz nie chcieć mieć tego w swoim .vimrc; lepszym rozwiązaniem może być użycie wersji wiersza polecenia i tylko w przypadku plików, w których potrzebujesz tego specjalnego rodzaju wyświetlania.

Po więcej informacji:

  • :help 'binary'
  • :help edit-binary
  • :help file-read
  • :help file-formats
  • :help 'fileformat'

but it does quite a few other things as wellczy to dlatego, że plik binarny jest FileTypewyposażony w kilka poleceń automatycznych, czy może jest to wbudowana, nieunikniona rzecz?
— Captain Man

Przez to zdanie chciałem przedstawić listę, która następuje bezpośrednio po nim.
— Ptolemarch

Racja, po prostu nie zacytowałem całej rzeczy :) Chodziło mi o to, czy robi te rzeczy, ponieważ używa niektórych FileTypewywoływanych za binarypomocą tych automatycznych poleceń, czy może tylko wbudowanych?
— Captain Man

1
Ah, tak. Nie ma to nic wspólnego z typami plików (ale jest dość pochłonięte formatami plików). jest to część samego trybu binarnego. Zobaczyć :help 'binary'. A może :help 'fileformat'.
— Ptolemarch

0

Jeśli dodasz do ~/.vimrc:

set ffs=unix
set list

To zawsze będzie pokazywane CRjako ^Mi LFjako $.

Domyślnie vim interpretuje plik, który ma tylko CRLFzakończenia, jako plik dos i pokazuje CRLFjako $. Ustawiając ffs=unix, wymuszasz, aby vim zawsze otwierał się jako plik unix, dlatego CR jest traktowany jako dodatkowy znak.

Uwaga: zachowaj ostrożność podczas modyfikowania i zapisywania plików dos. Jeśli naciśniesz ENTER, wstawi tylko LF. Musisz ręcznie wstawić a CR, wpisując CTRL+V, CTRL+M.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.