VIM – zamiana znaków HEX

Jeśli w VIM mamy dziwne znaki (np. <9c>) możemy je wszystkie zamienić na prawidłowe za pomocą poniższej komendy:

:%s/\%x9c/ś/gc

W powyższym przykładzie zmienimy w całym pliku źle zakodowaną literę ‚ś’.

VIM – dodawanie numeru wiersza

W VIM’e mamy możliwość dodania numerów wierszy, przez co kod staje się czytelniejszy i łatwiej jest po nim nawigować. Będąc w trybie visual wystarczy wpisać polecenie:

:set nu

Jeśli chcemy dodać w treści dokumentu na początku każdego wiersza jego numer, wpisujemy w trybie visual poniższe polecenie:

:%s/^/\=line('.')/

Dodatkowo możemy po numerze wiersza dodać spację: Czytaj dalej VIM – dodawanie numeru wiersza

Vim – hurtowe usuwanie spacji i tabulatorów

W vim’ie możemy w prosty sposób usunąć kilka spacji lub tabulatorów znajdujących się na początku wiersza lub na jego końcu za pomocą znacznika \s wykorzystując opcje zastępowania ciągu znaków innym ciągiem lub pustym stringiem.

:[zakres]s/zastępowane_wyrażenie/zastępujące_wyrażenie/[g][c]

[zakres] – zakres linii oddzielonych przecinkiem, np. 20,30 (linie od 20 do 30), .,30 (od bieżącej linii do linii 30), % (cały plik),

[g] – przełącznik powodujący zastąpienie kilku wystąpień w jednej linii (global),

[c] – potwierdzenie przez użytkownika każdego zastąpienia

 

Usunięcie pierwszego wystąpienia spacji lub tabulatora w wierszu w całym pliku.

:%s/\s

Usunięcie wszystkich wystąpień spacji lub tabulatora w wierszu w całym pliku.

:%s/\s//g

Usunięcie wszystkich wystąpień spacji lub tabulatora w wierszu w całym pliku z potwierdzeniem przez użytkownika.

:%s/\s//gc

Usunięcie wszystkich spacji występujących na końcu wiersza w całym pliku.

:%s/\s\+$

Usunięcie pierwszego wystąpienia spacji lub tabulatora występujących na początku wiersza w całym pliku.

:%s/^\s

Ręcznie możemy usunąć kilka spacji znajdujących się na początku wiersza poprzez wciśnięcie kombinacji klawiszy CTRL+D w trybie dodawania.

Kolory w Vim’ie

W celu zmiany koloru komentarzy na zielony w VIM’ie edytujemy plik /usr/share/vim/vim73/colors/peachpuff.vim i zmieniamy linię zaczynającą się od hi Comment na poniższą

hi Comment term=bold ctermfg=green guifg=#406090

Teraz komentarze będą koloru zielonego i będą bardziej czytelne.

Zmiana domyślnego edytora między innymi dla mc jest możliwa poprzez wydanie komendy:

update-alternatives --config editor

Zmianę domyślnego edytora dla użytkownika możemy wykonać również poprzez  edycję poniższego pliku:

vim /home/administrator/.selected_editor

i zmianę linii SELECTED_EDITOR=”/usr/bin/vim.nox” na:

SELECTED_EDITOR="/usr/bin/vim"

To samo możemy zrobić dla konta root zmieniając powyższy wpis w pliku /root/.selected_editor na poniższy:

SELECTED_EDITOR="/usr/bin/vim"

W celu ustawienia schematu kolorów w Vim’ie edytujemy plik /etc/vim/vimrc i dopisujemy poniższą linię po linii set compatible

set compatible
colorscheme peachpuff

powodzenia.

Polskie znaki VIM – zmiana kodowania pliku

Jeżeli po otwarciu pliku w vim’ie zamiast polskich znaków widzicie dziwne krzaczki, np.

... tworzy po³±czenie z baz± danych ...

może to oznaczać, że otwierany plik ma inne kodowanie niż konsola. Na przykład w konsoli macie ustawione kodowanie utf8, a otwierany plik ma np. kodowanie iso-8859-2. W takiej sytuacji po otwarciu pliku, ale przed dokonaniem jakichkolwiek zmian musimy zmienić sposób wyświetlania pliku w vim’ie odpowiednio do sytuacji poniższymi poleceniami:

dla wyświetlania w utf8

:e ++enc=utf8

dla wyświetlania w iso-8859-2

:e ++enc=iso8859-2

Po takiej zmianie możemy już zapisać plik w odpowiednim do potrzeb kodowaniu.

dla utf8

:w ++enc=utf8

dla iso-8859-2

:w ++enc=iso8859-2

Po zapisaniu pliku w kodowaniu zgodnym z konsolą, przy kolejnym otwarciu pliku vim będzie już prawidłowo wyświetlał polskie znaki.

Dzięki powyższym kombinacjom możemy zapisać plik w innym kodowaniu niż jest wyświetlany w vim’ie.

Vim – porównanie dwóch otwartych plików

W vim’ie istnieje możliwość porównania dwóch otwartych plików w widoku podzielonym na okna. W tym celu wystarczy wydać poniższą komendę w obu oknach.

:diffthis

Vim w czytelny sposób zaznaczy nam różnice pomiędzy oboma plikami.

Wyjście z trybu porównania wykonamy poprzez wydanie komendy:

:difftoff

 

Vim – automatyczne wcięcie tekstu

Dużym udogodnieniem podczas pisania kodu jest przenoszenie ręcznego wcięcia tekstu do następnej linijki po wciśnięciu przycisku Enter. Niestety ostatni Vim tego nie potrafi robić domyślnie.
Można go do tego zmusić wpisując w trybie poleceń poniższy tekst:

:set autoindent

po tym zabiegu vim będzie przenosić wcięcia z bieżącej linijki do następnej po wybraniu przycisku Enter.

Jeśli chcemy zmienić domyślną szerokość tabulatora (szerokość 8 spacji) wystarczy wydać w oknie vim’a poniższe polecenie:

:set softtabstop=x

Zamiast x wpisujemy ilość spacji jaką ma mieć tabulator, np. 4 jak poniżej:

:set softtabstop=4

Po tym poleceniu vim będzie zamiast tabulatora wstawiał 4 spacje, jeśli chcemy zmienić szerokość tabulatora bez zamieniania go na spacje wydajemy poniższe polecenie:

:set tabstop=4

Powyższe możemy oczywiście zapisać do pliku konfiguracyjnego vim’a i wtedy zmiany będą obowiązywały na stałe.

Zamiana lub usunięcie znaku końca linii ^M w vim’ie

Aby usunąć DOS’owy znak końca lini ^M widoczny w vim’ie wystarczy wydać w nim poniższe polecenie, które usunie wszystkie znaki ^M (aby wpisać znak końca linii wybieramy kombinacje Ctrl + v później Ctrl + m):

:%s/\r//g

Jeśli chcemy zamienić znak końca linii ^M na np. * wydajemy w vim’ie polecenie

:%s/\r/*/g

możemy też chcieć zatwierdzać każdą zmianę, wtedy wydajemy polecenie:

:%s/\r/*/gc

Usunięcie znaków końca linii ^M można również dokonać poniższą komendą wydaną z wiersza poleceń:

tr -d "\015" < plik_do_zmiany > plik_zmieniony

Konwersji plików z formatu DOS na format Linux możemy dokonać poniższym polecenie:

:e ++ff=dos
:setlocal ff=unix

w drugą stronę z Linux na DOS:

:e ++ff=dos

lub (znak ^V wybieramy wciskając dwukrotnie Ctrl + v)

:%s/\r/^V^M/gc

Oczywiście we wszystkich przypadkach po konwersji należy zapisać plik poleceniem:

:w