2011-04-11 82 views
1

我wan't到有打开,然后去的下一个拼错的单词拼写检查和第一建议继承人什么我这么远替换功能:VIM拼写功能

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

但似乎只是将拼写设置为真,并且什么都不做......我做错了什么?

UPDATE:

我已经厌倦了不断变化的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() 

回答

2
nnoremap ,d :call Spell_next_word()^M 

注意事项:

  1. 选择模式(普通模式,不重映射)
  2. 包括:进入命令行模式
  3. call功能
  4. 执行它!该^M通常进入了Cv输入在Linux或CQ在Windows

输入另外,也许包括

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

(再次typeing的^OCvCoÇ-QC-O

+1

你可以用''替换'^ M'(不区分大小写),而不是在你的配置文件中有控制字符。 – 2011-04-12 11:02:20

+0

@Randy:很高兴知道!这是否推断所有控制角色? E.q.如果我正确理解你的话,那么'g '而不是'g^U' – sehe 2011-04-12 11:10:46

+1

是的。例如,你可以将'nmap t '作为映射。 – 2011-04-12 11:52:08

2

变化exenormalexe用于执行命令行命令。

+0

仍然无法正常工作... – errorhandler 2011-04-11 20:47:57

+0

删除引号。 – intuited 2011-04-11 20:57:35

+0

[:help normal](http://vimdoc.sourceforge.net/htmldoc/various.html#:normal) – intuited 2011-04-11 20:58:22

2

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

还有一些其他配置可能需要完成拼写校正工作,如设置'spelllang'。请详细阅读:help spell.txt

+0

我已拼写lang set ...检查我的更新答案...我似乎无法映射,d到功能 – errorhandler 2011-04-11 21:08:09

+0

啊。你必须使这个映射调用SpellNewWord()。尝试在命令模式下调用SpellNewWord()。 – intuited 2011-04-11 21:16:09

+0

它的作品,谢谢!你知道我怎么能把它映射到d吗? – errorhandler 2011-04-11 21:25:39