我想循环浏览用于拼写检查的语言列表,例如
:setlocal spell spelllang=en_EN
:setlocal spell spelllang=en_US
:setlocal spell spelllang=de
:setlocal spell spelllang=fr
:setlocal nospell
Run Code Online (Sandbox Code Playgroud)
只需一个按键。
一种明显的方法是将每个键放在一个单独的键上,例如 F1 到 F5。但这对我拥有的宝贵的少数功能键来说很难。所以我试着把它们放在一个功能键上,它会重新映射自己以在列表中循环。但事实证明,映射的长度会随着 O(N^2) 增加。我相信有一种更优雅的方法可以使用 vim 函数来实现这一点,我确信它可以将状态保存在变量中的某个地方。可悲的是,我的 vim 编程功能还没有开发到足以解决这个问题。(不,我不想在 gvim 中使用菜单)。
尝试这个:
nnoremap <F2> :call CycleLang()<CR>
fun! CycleLang()
let langs = ['', 'en_gb', 'en_us', 'de', 'fr']
let i = index(langs, &spl)
let j = (i+1)%len(langs)
let &spl = langs[j]
if empty(&spl)
set nospell
else
set spell
endif
endfun
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |