2011-04-11 81 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