2010-04-07 15 views
12

Mam trudności ze zrozumieniem znaków widzę w moim edytorze tekstu Vim. Widzę znaki takie jak ^@ i ^A i ^M i ^F. Co to znaczy? Czy istnieje uporządkowana lista tych znaków i ich znaczenie?Co te znaki oznaczają w Vim?

Próbując go google to ślepy zaułek, ponieważ Google nie będzie szukać „^ @”.

+8

http://vimdoc.sourceforge.net/htmldoc/digraph.html#digraph-table –

+0

+1 dla strony z informacjami bibliograficznymi! vim jest świetny, ale mam wiele problemów ze znajdowaniem rzeczy w dokumentacji. –

+0

Dziękuję, ten link dał mi tę uporządkowaną listę, której szukałem. – user292303

Odpowiedz

16

Te znaki są znakami kontrolnymi. ^@ jest NUL lub postać 0, ^M jest CR lub postaci 13, itd. Co ten zapis jest w istocie o to, że patrzysz tylko niższych 5 bitów na @, M lub cokolwiek.

Schemat ASCII, np this pomoże Ci uporządkować większość z nich. Znajdź postać, którą widzisz w vim gdzieś na wykresie, a następnie jej kod znajduje się w lewej kolumnie.

0

Jeśli widzisz coś takiego

^@F^@i^@l^@e 

jest to reprezentacja NULL i najwyraźniej jest nieco skomplikowany, aby wyjść z Vima. This artykuł może podać więcej informacji.

5

Kiedy można zobaczyć wiele znaków binarnych w vim, należy uważać, że edytujesz pliki poprawnie i nic nie psuje. Nietypowe jest traktowanie plików tekstowych o dużej liczbie znaków binarnych.

Czy próbujesz edytować plik binarny? Powinieneś ustawić opcję Vim 'binary'przed ładowaniem pliku przez (lub zacząć od vim -b), w przeciwnym razie Vim przetłumaczy znaki nowej linii i wykona inne niepożądane konwersje.

Czy edytując plik tekstowy, który ma złe znaki nowej linii? Objawem tego są znaki ^M lub ^J pojawiające się na końcu linii. Przeglądaj opcje 'fileformat' i 'fileformats', aby pomóc Vimowi zapisać pliki z odpowiednimi znakami nowej linii. Jeśli używasz kontroli wersji, możesz poinstruować ją, aby konwertowała znaki nowej linii do iz platformy, aby wszyscy byli zadowoleni.

Czy widzisz dużo ^@ (null) znaki? Może ten plik jest zakodowany w UTF-16, a Vim go nie dekoduje. Przeładuj go na przykład za pomocą :e ++enc=utf-16. Aby uzyskać informację o wartości reprezentowanej przez znak, ustaw na nim kursor i wpisz .

+0

Mnóstwo dobrych rad! –

Powiązane problemy