Wyszukiwanie w witrynie

Jak zamienić Vima w edytor tekstu


Wierzcie lub nie, ale na co dzień używam Vima jako edytora tekstu. Podoba mi się jego prosty układ i modalny wygląd, który faworyzuje polecenia klawiaturowe zamiast kliknięć myszą.

Chociaż prawdopodobnie znasz Vima jako edytor tekstu bardziej nadający się do kodowania niż do prozy, po kilku poprawkach ty także możesz pisać dokumenty jak w programie Word lub LibreOffice, pozostając w wygodnym terminalu.

Przeczytaj także: Jak używać skrótów Vima do nawigacji w przeglądarce internetowej

Pierwsze kroki

Jeśli jeszcze nie zapoznałeś się z podstawami Vima, sprawdź ten artykuł, który jest pierwszym z serii czterech. Zanim przejdziesz dalej do tego fragmentu, upewnij się, że nauczyłeś się otwierać plik tekstowy, wchodzić do programu i wychodzić z niego oraz poruszać się po ekranie za pomocą klawiatury.

Instalacja

Twoja dystrybucja Linuksa prawdopodobnie zawiera Vima w repozytorium pakietów, więc możesz go łatwo zainstalować za pomocą Menedżera oprogramowania lub menedżera pakietów. Kiedy będziesz później edytować plik konfiguracyjny Vima, będziesz mógł to zrobić jako zwykły użytkownik.

Arch Linux:

sudo pacman -S vim

Fedora:

sudo dnf install vim

Ubuntu:

sudo apt install vim

Wszyscy inni mogą pobrać Vima z repozytorium Github:

git clone https://github.com/vim/vim.git
cd ./vim/src/
make
sudo make install

Plik konfiguracyjny Vima

Instalacja Vima może spowodować utworzenie pliku .vimrc w twoim katalogu domowym. Jeśli nie, utwórz taki:

touch ~/.vimrc

Możesz go otworzyć za pomocą samego Vima:

cd
vim .vimrc

Nasz edytor tekstu

Teraz prawdopodobnie patrzysz na pusty plik. Zmieńmy to.

Możemy stworzyć funkcję o nazwie „WordProcessor”, którą możesz wywołać w dowolnym momencie. Będzie to wyglądać tak:

func! WordProcessor()
  " movement changes
  map j gj
  map k gk
  " formatting text
  setlocal formatoptions=1
  setlocal noexpandtab
  setlocal wrap
  setlocal linebreak
  " spelling and thesaurus
  setlocal spell spelllang=en_us
  set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt
  " complete+=s makes autocompletion search the thesaurus
  set complete+=s
endfu
com! WP call WordProcessor()

Teraz, gdy widzisz funkcję jako całość, możemy rozbić jej części. Kontynuuj, patrząc na sekcje naszej funkcji skomentowane pojedynczym cudzysłowem, a poszczególne linie zaznaczone są na szaro.

1. Zmiany w ruchu za pomocą map j gj i map k gk

To, co tu widzicie, to zmiana w działaniu ruchu kursora w Vimie. Jeśli przeczytałeś poprzednie artykuły o Vimie wspomniane na początku tego artykułu, wiesz, że j przesuwa kursor w dół, a k przesuwa kursor w górę. Podobnie gj i gk przesuwają w dół i w górę, ale przesuwają kursor po linii na ekranie zamiast według linii w pliku.

Nasze mapowanie j/k na gj/gk umożliwia kursorowi poruszanie się w górę i w dół po zawijanych liniach na ekranie. Pomaga to w przypadku pisania długich akapitów i konieczności łatwego przesuwania kursora na środek tych akapitów.

2. Formatowanie tekstu za pomocą poleceń „setlocal”.

Najpierw zobacz setlocal formatoptions=1. „Formatopcje” umożliwiają wybór spośród wielu trybów formatowania tekstu. W przypadku opcji „1” Vim będzie powstrzymywał się od łamania linii po jednoliterowym słowie. Zamiast tego spróbuje, jeśli to możliwe, podzielić linie przed jednoliterowym słowem.

Następnie setlocal noexpandtab pozwala uniemożliwić Vimowi zmianę tabulatorów na spacje. Przykładowo, ustawienie "expandtab" powie Vimowi, aby zmienił naciśnięcie klawisza Tab na liczbę spacji o tej samej długości. „Noexpandtab” działa odwrotnie; zachowuje naciśnięcie klawisza Tab jako pojedynczy znak.

setlocal wrap mówi Vimowi, aby zawijał twój tekst, gdy dotrze do końca ekranu. Jest to zachowanie, jakiego można oczekiwać od edytora tekstu.

Na koniec setlocal linebreak pozwala Vimowi łamać linie w rozsądnych miejscach. Zapobiega zawijaniu linii do ostatniego znaku mieszczącego się na ekranie. Dlatego po części zobaczysz, że linie tekstu docierają do różnych punktów na ekranie, zanim zawiną się na początek. Sprawdź, jak to wygląda z niedokończoną kopią tego artykułu na zrzucie ekranu poniżej

3. Pisownia i tezaurus offline

Vim ma wbudowaną funkcję sprawdzania pisowni. Możesz sprawić, by Twoja funkcja „WordProcessor” korzystała z tej możliwości, używając polecenia setlocal Spelllang=en_us. Tutaj możesz zdefiniować wiele języków na liście oddzielonej przecinkami.

Więcej plików językowych znajdziesz na tej stronie FTP Vima. Umieść wybrane pliki (zarówno pliki .spl, jak i .sug dla każdego języka) w „$HOME/.vim/spell/”. Zmień linię swojej funkcji na set Spelllang=en_us,nl,medical, na przykład, aby sprawdzić słowa angielskie, holenderskie i medyczne.

Błędnie napisane słowa zostaną podkreślone i pogrubione w tekście.

Możesz wyszukiwać zamienniki, wpisując :z= w trybie normalnym. (Użyj klawisza Escape, aby przejść do trybu normalnego.) To polecenie wyświetli ekran podobny do poniższego obrazu.

Możesz użyć funkcji tezaurusa Vima, przekazując mu wybrany katalog tezaurusów za pomocą set thesaurus+=/home//.vim/thesaurus/mthesaur.txt lub podobnego. Plik „mthesaur.txt” można znaleźć w Project Gutenberg. Umieść pobrany plik tekstowy w katalogu zdefiniowanym za pomocą tego polecenia.

Wyszukaj słowa podobne do wyróżnionego słowa, przechodząc do trybu wstawiania (naciśnij i w trybie normalnym) i wpisując Ctrl + < kbd class="key">x, a następnie Ctrl + t. Wyświetli się lista podobna do poniższej ilustracji, którą możesz przewijać, aby znaleźć nowe słowo.

Czasami sugestie nie są najlepsze.

4. Autouzupełnianie słów za pomocą opcji „uzupełnij”.

Ostateczne rozważenie nastąpi w setcomplete+=s. Ta opcja mówi Vimowi, aby przeszukał twój tezaurus pod kątem słowa, które chcesz autouzupełniać.

Zwykle możesz autouzupełniać słowa, pozwalając Vimowi sprawdzić poprzednie słowa, które wpisałeś, takie jak „błędnie napisane” i „błąd” na poniższym zrzucie ekranu. Wystarczy wejść w tryb wstawiania i wpisać Ctrl + n lub Ctrl + < kbd class="key">p, aby wyszukać słowo, które na przykład pasuje do słowa „mis” z pisownią w połowie.

Widzisz, że pierwsze dwa zaznaczenia nie pochodzą ze tezaurusu? Te dwie linie to jedyne opcje, które byś tu zobaczył, gdyby nasza funkcja nie użyła „complete+=s”. Możesz pominąć lub skomentować tę linię, aby przyspieszyć autouzupełnianie.

Uruchamianie edytora tekstu

Ostatnia linia pliku .vimrc, która powoduje działanie funkcji WordProcessor, to com! WP wywołuje WordProcessor(). Pozwala wpisać :WP w trybie normalnym, aby ustawić możliwości przetwarzania tekstu Vima.

Możesz edytować „WP” w tym wierszu, aby przeczytać, co chcesz - upewnij się tylko, że tekst sąsiaduje ze sobą. Niezależnie od tego, jaki tekst wybierzesz, zmienisz polecenie na :.

Wniosek

Funkcjonalność, którą tutaj omówiłem, trwa tylko przez jedną sesję Vima. Dlatego też, kiedy zamkniesz i ponownie otworzysz Vima, ustawienia domyślne zostaną ponownie zastosowane. Stanie się tak nawet wtedy, gdy otworzysz ten sam plik po raz drugi.

Możesz ustawić te opcje poza funkcją, aby działały przez cały czas, ale mogą nie odpowiadać wielu zadaniom programistycznym, do których obsługi Vim został stworzony. W każdym razie wpisanie kilku znaków nie jest trudne. Po prostu ciesz się nowymi ustawieniami i faktem, że zamieniłeś swój terminal w potężny edytor akapitów.

Powiązane artykuły