Od redakcji: Już kilka lat temu planowaliśmy przygotować cykl tekstów poświęconych edytorowi Vim. Ten pomysł nie został jednak realizowany - być może do dziś. Mamy nadzieję, że teraz się to zmieni dzięki Mikołajowi Machowskiemu, autorowi strony poświęconej temu edytorowi. Zapraszam do lektury pierwszego odcinka cyklu "skrypt tygodnia" - poświęconemu skryptowi sprawdzającemu pisownię w czasie pisania.
Skrypt tygodnia:
Vimspell
Wstęp
Sprawdzanie pisowni jest jednym z zadań jakiego oczekuje się od
współczesnego edytora. Vim nie posiada tej funkcjonalności wbudowanej,
ale można ją uzyskać przez różne skrypty podchodzące do sprawy
w odmienny sposób.
Jednym z popularniejszych jest engspchk.vim autorstwa
dr "Chipa" Campbella. Zapewnia on prawdziwe sprawdzanie pisowni w locie
jednak opiera się na wygenerowanej liście akceptowalnych słów. O ile
taki zbiór dla języka angielskiego da się zamknąć w 2M to z powodu
fleksji polski słownik sprawdza się dopiero od 18M załadowanych do
pamięci komputera co wystarczy by dało się to odczuć na większości maszyn.
Dla polskiego użytkownika wymagana jest prawdziwa interakcja z programem
do sprawdzania ortografii. Najbardziej dopracowanym skryptem jest
vimspell utrzymywany obecnie przez Matthieu Clabaut ( matthieu DOT
clabaut AT free DOT fr ).
Vimspell zapewnia następujące funkcje:
- sprawdzanie pisowni na żądanie oraz w locie
- przejście do następnego/poprzedniego błędu
- propozycja alternatywy (zarówno tekstowo jak i przez menu kontekstowe)
- dodawanie słów do słownika tymczasowego i trwałego
- pełna obsługa zarówno z klawiatury jak i myszką (menu)
- potrafi wykorzystać zarówno ispella jak i aspella
- sprawdzanie pisowni w zależności od typu pliku
- heurystyczne odgadywanie języka w jakim napisano tekst
Instalacja
Wystarczy skopiować vimspell.vim do jednego z katalogów plugin (np.
~/.vim/plugin), pomoc do skryptu zainstaluje się samoczynnie przy
pierwszym uruchomieniu Vima i jest dostępna poprzez :help vimspell.
Konfiguracja
(omawiam tutaj tylko najważniejsze opcje, pełna lista w dokumentacji
skryptu, wspomniane tutaj opcje mogą być istotne dla polskiego
użytkownika)
-
Domyślnie vimspell używa ispella, można to jednak zmienić dodając
w .vimrc:
let spell_executable = "aspell"
-
Polski użytkownik powinien poprawić też język:
let spell_language_list = "polish,english"
-
Jedną z ciekawszych możliwości vimspella jest odgadywanie słownika jakiego
słownika powinno się użyć. Odgadywanie można ustawić w zależności od
typu pliku:
let spell_guess_language_ft = "tex,mail,html"
-
Ta opcja włącza od razu sprawdzanie pisowni dla podanych typów
plików:
let spell_auto_type = "tex,mail,text,html,sgml,otl,cvs,none"
-
Należy się zdecydować czy vispell powinien sprawdzać pisownię w locie
czy nie:
let spell_insert_mode = 1
Uwaga: O ile sprawdzanie języka angielskiego nie stanowi żadnego
problemu, przy polskim komputer trochę "rwie" na słabszych maszynach,
zwłaszcza jeśli gdzieś w tle odbywa się coś pożerającego zasoby. Główną
zaletą w porównaniu do engspchk jest nieobciążanie na stałe całego
systemu ogromnym słownikiem.
Jest jeszcze wiele opcji, które pozwalają bardzo dokładnie określić np.
opcje programu sprawdzającego pisownię w zależności od typu pliku.
Klawiszologia
O <Leader> należy poczytać w :help mapleader. Domyślna wartość
to \
- <Leader>ss
- zapisz do pliku tymczasowego, sprawdź pisownię
i podświetl błędy
- <Leader>sA
- włącz sprawdzanie pisowni w locie
- <Leader>sq
- powróć do normalnego podświetlania składni
i przestań sprawdzać błędy
- <Leader>sl
- przełącz się między językami
- <Leader>sn
- idź do następnego błędu
- <Leader>sp
- idź do poprzedniego błędu
- <Leader>si
- wstaw słowo pod kursorem do słownika
użytkownika
- <Leader>su
- wstaw słowo pod kursorem do słownika
użytkownika w wersji małych liter
- <Leader>sa
- zaakceptuj wyraz tylko na bieżącą sesję
- <Leader>s?
- szukaj alternatyw
- <RightMouse>
- otwórz menu kontekstowe z alternatywami (może
wymagać zmian w opcji 'mousemodel'
Wtyczka zapewnia też do każdej czynności polecenia trybu :ex co ułatwia
oskryptowanie skryptu.
Używanie
Po wejściu do pliku html lub mail (zgodnie z ustawieniami domyślnymi), vimspell od razu
zacznie pracę. Nieznane słowa zostaną podświetlone, a kiedy zaczniesz pisać to co piszesz
będą od razu sprawdzane. Kiedy popełnisz błąd zazwyczaj wystarczy cofnąć się do wyrazu
z błędem i go poprawić. Podświetlenie zniknie. Vimspell omija słowa kluczowe dla danego
typu pliku - nie będziesz obwiniany o błędne wyrazy z cytowanych wiadomości, nie mające
sensu w normalnym języku znaczniki i nazwy atrybutów.
Przy sprawdzaniu już napisanego tekstu przyda się polecenie <Leader>sn
albo odpowiednie ustawienie opcji spell_auto_jump. Włączona sprawi, że po
poprawieniu błędu vimspell skoczy natychmiast do następnego. Jak poprawić błąd? Albo
standardowymi poleceniami Vima: r, ciw, etc. lub poprosić o podanie
możliwych alternatyw: <Leader>s?.
Co zrobią właściciele słabszych komputerów, których denerwuje "krztuszenie się" Vima
przy sprawdzaniu pisowni w locie i ją wyłączyli? Wystarczy wyjść z trybu Wstawiania i na
chwilę się zatrzymać. Autokomenda CursorHold sprawdzi pisownię.
Wersja vimspella z drobnymi poprawkami, które jeszcze nie zostały dołączone do głównego drzewa, znajduje się na
naszym serwerze.
|