2014-03-04 5 views
2

Я хотел бы иметь быстрый способ проверки орфографии слова под курсором в Vim.Слово проверки орфографии под курсором в Vim

Делать это в родном Vim требует от меня:

(1) Активировать орфографию (2) Проверьте слово (3) Отключение правописание

Причиной, побуждающей (1) и (3) заключается в том, что я не хочу использовать режим орфографии все время (например, я мог бы писать документацию по функциям/классу и не хочу, чтобы орфография подчеркивала неестественные слова языка в коде).

Я думал, что что-то подобное может работать:

nnoremap <F1> :setlocal spell<CR>z=:setlocal nospell<CR> 

Но, конечно, последний пункт (:setlocal nospell) вмешивается и отменяет проверку орфографии.

Я также попытался следующие, но это не работает либо:

function! s:spell_check_current() 
    :setlocal spell 
    :normal("z=") 
    :setlocal nospell 
endfunction 
nnoremap <F1> :call <SID>spell_check_current()<CR> 

Есть предложения?

Спасибо.

ответ

3

Проблема с вашей функцией заключается в том, что :normal("z=") - это неправильный способ вызова нормальной команды. Это должно быть только :normal z=, потому что это не функция. Второй ведущий : не нужен. Таким образом, функция будет

function! s:spell_check_current() 
    setlocal spell 
    normal z= 
    setlocal nospell 
endfunction 
nnoremap <F1> :call <SID>spell_check_current()<CR> 

В то время как это вызывает заклинание окно проверки не позволяет пользователю вводить что-либо, так это, вероятно, не будет работать.


Вместо этого вы должны просто отключить выделение для проверки орфографии, так как это кажется тем, что вас больше всего раздражает.

Добавление этих параметров после загрузки цветовой схемы должно привести к отключению цветов.

highlight clear SpellRare 
highlight clear SpellBad 
highlight clear SpellCap 
highlight clear SpellLocal 

Это позволяет z= работать для проверки орфографии без цветов.

Если вы хотите, чтобы цвета были toggleable, вы могли бы создать некоторые сопоставления, чтобы установить правила выделения.

+0

Спасибо, FDinoff. Да, я полагаю, что у меня могла бы быть моя ключевая карта для переключения цветов орфографии в случае, если я их хочу. – Jeet

1

Да, из-за запроса, сделанного командой z=, это действительно сложно. Нельзя сразу же отключить проверку орфографии. Мой SpellCheck plugin работает вокруг него через :autocmd, который запускается вскоре после исправления заклинаний. Вы можете использовать инфраструктуру плагина для обертывания команды z=. Вставьте следующее в ~/.vimrc:

nnoremap <silent> <expr> z= SpellCheck#mappings#SpellSuggestWrapper('call SpellCheck#mappings#SpellRepeat()') 
xnoremap <silent> <expr> z= SpellCheck#mappings#SpellSuggestWrapper('call SpellCheck#mappings#SpellRepeat()') 
+0

Спасибо, Инго. Это хороший плагин, но это слишком тяжелое решение для этого конкретного случая использования, которое я имею в виду. Я надеялся на что-то гораздо более легкое - в лучшем случае. Но мне нравятся ваши плагины вообще! – Jeet

Смежные вопросы