在vim中切换功能
发布时间:2020-12-15 21:17:34 所属栏目:安全 来源:网络整理
导读:基本上我想做的是 map,e :call ToggleEssayMode()CRfunction! ToggleEssayMode()if toggle==true :map j gj :map k gk toggle=falseelse :umap j :umap k toggle=trueenndfunction 我环顾了一会儿,但我能找到的人都是保留的vim变量.我可以制作自己的变量吗?
基本上我想做的是
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以避免递归映射.>:在脚本中的命令之前是不必要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- “scala.runtime in compiler mirror not found”,但是在使
- scala – 如何使用一个或多个StructType创建模式(StructTyp
- angular – 分组测试结果:Karma / Protractor与Jenkins集成
- REST WebService与SOAP WebService的比较
- angularjs – 如何运行量角器以在AWS上验证CHROME
- 简单的Websocket在scala/akka/play
- 在Vim中进行换行
- scala – 如何阻止sbt发布pom.xml
- 七步从Angular.JS菜鸟到专家(2):Scopes
- scala – Play 2.1中的私有资产