Kiểm tra chính tả tiếng Việt trong Vim

September 09 2011 · 3 minute read · vim

Từ phiên bản 7, tính năng kiểm tra chính tả (spellcheck) đã được tích hợp sẵn. Mặc định, Vim chỉ kiểm tra tiếng Anh. Để kiểm tra ngôn ngữ khác, Vim hỗ trợ tạo các tập tin chính tả theo định dạng Vim từ các gói Aspell/Hunspell thông qua lệnh mkspell trong Vim.

Kiểm tra chính tả spellcheck

Tạo tập tin kiểm tra chính tả theo định dạng Vim

Trang dự án Bộ kiểm tra chính tả tiếng Việt cung cấp các gói kiểm tra chính tả dùng cho OpenOffice/LibreOffice, Firefox/Thunderbird và Hunspell. Để tạo bộ kiểm tra chính tả cho tiếng Việt, chúng ta tải về gói Hunspell vi_VN.zip.

Tiến hành giải nén:

unzip vi_VN.zip -d vi-spell
Archive:  vi_VN.zip
inflating: vi-spell/vi_VN.dic
inflating: vi-spell/vi_VN.aff

Loại bỏ các dòng trùng lặp trong tập tin ‘vi_VN.dic’:

cp vi_VN.dic vi_VN.orig.dic
sort vi_VN.dic | uniq | tee vi_VN.dic

Mở Vim với mã kí tự (encoding) muốn dùng tại thư mục vừa giải nén và tiến hành biên dịch từ điển.

Trên hệ thống kiểu Unix:

export LANG=vi_VN.UTF-8 vim
:mkspell vi vi_VN.dic

trong đó vi là tên ngôn ngữ của từ điển sẽ biên dịch, vi_VN là tên tập tin đã giải nén không kèm theo đuôi .aff.dic (ở đây là vi_VN.affvi_VN.dic). Vim sẽ dựa trên mã kí tự và biên dịch ra một tập tin trong trường hợp này là vi.utf-8.spl. Sao chép tập tin này vào thư mục $VIMRUNTIMEPATH/spell để sử dụng.

Sử dụng

Để bắt đầu sử dụng tập tin kiểm tra chính tả vừa tạo, ta bật chức năng kiểm tra chính ta bằng lệnh:

:set spell spelllang=vi

hoặc kiểm tra chính tả cả Anh và Việt:

:set spell spelllang=en,vi

Sau khi bật, Vim sẽ gạch dưới (hoặc tô sáng nếu trong terminal) các từ sai bằng màu đỏ, các từ hiếm bằng màu cam, các từ không viết hoa đầu dòng bằng màu xanh dương,…

Các lệnh cần nhớ

Tự động chỉnh sửa từ sai

Dùng chức năng viết tắt của Vim để tự chỉnh sửa từ viết sai theo thói quen.

:ab hoàgn hoàng

Khi bạn gõ hoàgn sẽ được thay thế với hoàng

Chức năng này rất giống macro của Unikey, vì vậy chúng ta có thể tạo các từ viết tắt để Vim tự thay thế cho nhanh

:ab m@il tui@mail.net