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.

Oznaczone jako → 
Share →