Làm thế nào tôi có thể có âm thanh vim chuông cuối khi tôi viết sai một từ?


17

Tôi thực hiện một số lượng lớn phiên âm trong đó tôi gõ hơn 100 wpm mà không cần nhìn vào màn hình. Tôi nghĩ sẽ hữu ích nếu vim có thể đưa cho tôi một loại gợi ý có thể nghe được nếu trình kiểm tra chính tả vừa đánh dấu từ cuối cùng (có thể chỉ ra rằng tôi đã mắc lỗi đánh máy và nên kiểm tra lại những gì tôi đã viết).

Trình kiểm tra chính tả chắc chắn có thể đánh dấu các từ được đánh vần sai chính tả ngay khi tôi nhấn phím cách. Cái này hoạt động ra sao? Có cách nào để chạy một số loại lệnh cùng một lúc không?

Tôi luôn sử dụng vim trong thiết bị đầu cuối; Tôi không có âm thanh chuông thiết bị đầu cuối được thiết lập ngay bây giờ, nhưng nếu đó là cách dễ nhất để làm điều đó, tôi có thể có thể làm cho nó hoạt động.


Câu hỏi sang một bên, bạn có thực sự muốn gõ phím của bạn bị gián đoạn để sửa một từ? Bạn sẽ không nhanh hơn nếu bạn hoàn thành bài viết trước, sau đó sửa các lỗi, ví dụ như với lệnh "nhảy sang từ sai chính tả tiếp theo"?
Shahbaz

Động lực của tôi đi nhiều hơn như thế này: cách tôi thường gõ, tôi có thể biết khi nào tôi gõ rõ ràng một từ chính xác, nhưng đôi khi tôi gõ một từ và biết rằng tôi đã dò dẫm một chút, nhưng vẫn có cơ hội mà tôi có đúng. Nếu nó không có tiếng bíp, thì tôi biết tôi đã hiểu đúng và tôi có thể tiếp tục mà không phải lo lắng về điều đó; nếu không, tôi sẽ vượt qua nó và thử lại. Tuy nhiên, đây là một câu hỏi hoàn toàn công bằng - có lẽ đáng để định thời một vài cách tiếp cận khác nhau và xem điều gì sẽ xảy ra.
Soren Bjornstad

2
Ok, cách bạn làm điều đó, nó có thể sẽ hiệu quả hơn. Nếu tiếng bíp "làm bạn nhìn", điều đó có thể làm bạn chậm lại, nhưng nếu bạn trả lời tiếng bíp bằng tự động ^ W, thậm chí không cần nhìn vào màn hình, điều đó sẽ nhanh như vậy. Mặc dù vậy, hãy cẩn thận, nếu bộ não của bạn nhận ra tiếng bíp có thể nghe được sau khi bạn bắt đầu gõ từ tiếp theo, ^ W sẽ xóa từ sai. Trong trường hợp như vậy, bạn thậm chí có thể nghĩ đến việc vứt bỏ tất cả các ký tự được chèn sau tiếng bíp cho đến khi ^ W được nhấn, vì vậy bạn có thể biết rằng ^ W đã xóa từ sai chính tả và bạn phải tiếp tục từ đó.
Shahbaz

Câu trả lời:


15

Từ sai chính tả cuối cùng không thể truy cập trực tiếp, cũng không thể truy vấn tô sáng. Bạn phải tự truy xuất từ ​​trước con trỏ và kiểm tra chính tả từ đó. May mắn thay, có spellbadword()chức năng như vậy . Sau đây sẽ thiết lập một kích hoạt trên mỗi khóa được chèn để kiểm tra từ cuối cùng:

autocmd CursorMovedI * if &spell && spellbadword(matchstr(strpart(getline('.'), 0, col('.') - 1), '\S\+\s$') )[1] ==# 'bad' | execute "normal! \<C-\>\<C-n>\<Esc>" | endif

Thay vì tiếng bíp (thông qua :normal! <Esc>), bạn cũng có thể gọi một công cụ bên ngoài thông qua system()đó phát ra âm thanh ngắn gọn. Điều đó cũng sẽ tránh được các vấn đề với <Esc>việc dừng di chuyển con trỏ, điều mà đôi khi tôi đã thấy xảy ra.


Đây là hoàn hảo! Nó không thêm một chút chậm trễ nào khi nhấn phím cách (khi sau một từ), nhưng nó không đủ để trở thành một vấn đề lớn, và tất nhiên nó chỉ xảy ra khi bật kiểm tra chính tả. Đối với tiếng bíp, tôi tạo một kịch bản chạy mplayer -really-quiet $SOUNDFILE >/dev/null 2>&1 &và đặt nó thành hành động.
Soren Bjornstad

Cảm ơn! Bạn có thể thêm bổ sung if &spell && spellbadword(...)để vô hiệu hóa ngay cả việc truy xuất từ ​​trong trường hợp kiểm tra chính tả bị tắt.
Ingo Karkat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.