基本上我想做的是
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变量.我可以制作自己的变量吗?有没有更正确的方法呢?
解决方法
除非您使用单独的函数来启用和禁用,否则您将需要一个标志变量,并且为了将其与其他配置隔离,我建议您编写一个小插件.例如,在〜/ .vim / plugin /中创建一个文件essay.vim(实际名称无关,只要它以.vim结尾),其中包含以下内容:
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中.
>使用let来分配变量(参见为选项设置).> Vim不支持真假;请改用1和0.>每一个如果需要结束endif.> umap应取消映射;前者不存在.>应该使用nnoremap以避免递归映射.>:在脚本中的命令之前是不必要的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。