VIM拼写功能

时间:2011-04-11 20:42:47

标签: vim

我不想拥有一个能够打开拼写检查的功能然后转到下一个拼写错误的单词并替换第一个建议继续我到目前为止所获得的内容:

function! Spell_new_word()
  set spell=true
  exe ']s'
  exe '1z='
  set spell=false
endfunction

但它似乎只是将拼写设置为true并且没有做任何事情......我做错了什么?

更新

我已经厌倦了将exe改为正常,但仍然没有运气:

function! Spell_new_word()
  set spell!
  normal ']s'
  normal '1z='
  set spell!
endfunction

更新2:

我已经厌倦了这个但它仍然不起作用:

function! Spell_new_word()
  set spell
  normal ]s
  normal 1z=
  set nospell
endfunction

但我不认为这是我认为不会对,d具有约束力的问题:

let mapleader = ","
namp ,d Spell_next_word()

3 个答案:

答案 0 :(得分:2)

exe更改为normalexe用于执行命令行命令。

答案 1 :(得分:2)

除了实现Austin的答案(请参阅下面的评论),您还需要了解如何打开和关闭vim的设置。这在:help :set下的各个条目中进行了解释。具体来说,您应该使用set spell启用拼写,set nospell禁用拼写。

可能需要执行一些其他配置才能使拼写纠正工作,例如设置'spelllang'。请仔细阅读:help spell.txt

答案 2 :(得分:2)

nnoremap ,d :call Spell_next_word()^M

需要注意的事项:

  1. 选择模式(正常模式,无重映射)
  2. 包括:进入命令模式
  3. call函数
  4. 执行它! ^M 通常通过 Cv 输入在linux上输入,或者 CQ Enter < / kbd>在Windows上
  5. 另外,也许包括

    inoremap ,d ^O:call Spell_next_word()^M
    

    (再次将^O键入 Cv Co CQ Co