我最終在_vimrc下加入的是:
1 map <F9> :w!<CR>:!E:\Aspell\bin\aspell --lang=en check %<CR>:e! %<CR>
即按 F9 執行 aspell 對當前檔案的檢查
註:vimrc中 %號 表示當前檔案
E:\Aspell\bin\aspell 改成自己的aspell所在目錄
========== [以下是參考文獻] ===========
[轉] http://ar.newsmth.net/thread-5ad4875c9af373.html
一直想讓vim在winxp下也可以spell check,這樣就可以隨意的使用beloved vim
來寫tex了,不用老得用winedt去檢查一下spell。
於是昨天就下了個aspell,裝上了。
或許大家都看到過vimaspell.vim或vimispell.vim這兩個檔案,其實把它們放到
*nix下工作是完全沒有問題的,它可以直接調用ispell或aspell。但是在win32下,
由於vim通過cmd.exe 來執行外部命令,所以即使你把aspll添加到PATH裡也沒用,
vim不能用這個教本來check spell.我想一會兒再看看vimaspell.vim裡面是怎麼
找到aspell命令的,或許可以解決。
另一個常見的解決方案就是:
map ^T :w!<CR>:aspell check %<CR>:e! %<CR>
注意:^T是<CTRL+V><CTRL+T>的組合,在win32下是敲不出來的,因為
<CTRL+V>是paste的shortcut。一個辦法就是到*nix下寫到一個檔案裡,在拷貝回來,
在vi中用:r命令讀入。---我自己就是這麼弄的,笨了點兒!哪位有好辦法請
指教! [轉者註:(見上)不用^T,而用<F9>之類]
事實上,直接把這條map指令放到_vimrc裡還是沒用的,原因就是上面講的,cmd.exe
根本找不到aspell.
所以只好把你的aspll的完全路徑加上:--我的是這樣的:
map ^T :w!<CR>:d:\Aspell\bin\aspell check %<CR>:e! %<CR>
好了,啟動vi,隨便找個檔案,當然要有錯誤的單詞了,不然check what :),
press CTRL+T,是不是看到DOS視窗中居然又有錯誤?大致是不是這樣講的:
Error: no word lists can be found for the language "zh_CN"
shell return 1
肯定是的,不過到這裡就容易多了,
在你的vi裡來這麼一下:
:lan en
或者
:lan en_US
除非你用的是e版系統,中文系統出這個問題很正常,只要暫時修改一下language屬性
就可以了。
現在再來一次CTRL+T
是不是在一個DOS視窗中出來了讓你激動不已的冬冬?
這是自己的一點收穫,歡迎大家拍板磚!
最後的應該是:
map ^T :w!<CR>:lan en<CR>:!<path_to_aspell>\bin\aspell check %<CR>:e! %<CR>