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.
Archiwalny news dodany przez użytkownika: mikmach.
Kliknij tutaj by zobaczyć archiwalne komentarze.