基本上我想做的是
map ,e :call ToggleEssayMode()<CR>
function! ToggleEssayMode()
if toggle==true
:map j gj
:map k gk
toggle=false
else
:umap j
:umap k
toggle=true
enndfunction
我环顾了一段时间,但我发现人们只使用保留的 vim 变量。我可以创建自己的变量吗?有更正确的方法吗?
除非您使用单独的函数来启用和禁用,否则您将需要一个标志变量,为了将其与其余配置隔离,我建议编写一个小插件。例如,创建一个文件essay.vim
(实际名称无关紧要,只要它以.vim
) in ~/.vim/plugin/
包含以下内容:
let s:enabled = 0
function! ToggleEssayMode()
if s:enabled
unmap j
unmap k
let s:enabled = 0
else
nnoremap j gj
nnoremap k gk
let s:enabled = 1
endif
endfunction
要调用的映射ToggleEssayMode()
然后可以在同一个文件中或在您的.vimrc
.
关于您的代码的一些注释:
- Use
let
为了分配变量(参见set
用于选项)。
- Vim 不支持
true
and false
; use 1
and 0
反而。
- Every
if
需要结束endif
.
-
umap
应该unmap
;前者不存在。
-
nnoremap
应使用以避免递归映射。
-
:
在脚本中的命令之前是不必要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)