您好我发现了spelllang
如果是vim。我正努力实现以下目标:
set spelllang=fr spell
或set spelllang=en spell
spell
被禁用我可以在vimrc
干杯(我正在使用gvim和windows,但我想这无关紧要)
答案 0 :(得分:3)
是的,你可以做到这一点。我写了一个小脚本来说明。您可以将其原样放入.vimrc
。
关键是使用inputlist()
提示用户输入数字。当然,您可以根据需要扩展包含可能语言列表的spelllang_list
。
function! <SID>ToggleSpell()
let spelllang_list = [ 'fr', 'en' ]
let string = []
for i in range(len(spelllang_list))
call add(string, i+1 . ") " . spelllang_list[i])
endfor
if ! &spell
let &spell = 1
let selection = inputlist(string)
let &spelllang = spelllang_list[selection-1]
else
let &spell = 0
echo "'spell' disabled..."
endif
endfunction
noremap <F7> :call <SID>ToggleSpell()<CR>
答案 1 :(得分:1)
添加
怎么样?nnoremap <F7>:set spelllang=en<CR>
nnoremap <F8>:set spelllang=fr<CR>
nnoremap <F9>:set spell!
这将使F9切换拼写状态(在正常模式下)。如果您希望所有操作都在状态之间切换,那么您应该编写一个vimscript函数来保存状态信息并对其进行操作。
答案 2 :(得分:1)
我有以下内容,它只使用一个密钥:
setlocal nospell
let g:togglespell = 0
let g:default_langn = 1 "1 for English, 2 for Portuguese
function! ToggleSpell()
if v:count != 0
let g:default_langn = v:count
let g:togglespell = 0 " force spelling this time
endif
if g:togglespell == 0
if g:default_langn == 1
setlocal spell spelllang=en_us
echo "language = en_us"
elseif g:default_langn == 2
setlocal spell spelllang=pt
echo "language = pt"
else
echom "No language corresponding to such option [1: English, 2 Portuguese]"
endif
let g:togglespell = 1
else
setlocal nospell
let g:togglespell = 0
echo "No spell Checking"
endif
endfunction
noremap <F8> :<C-U>call ToggleSpell()<CR>
使用此按下<F8>
,默认情况下,它会在英语拼写和拼写之间切换。
如果您使用计数调用它,请说2<F8>
,然后从该点开始,它将在葡萄牙语拼写或无拼写之间切换。