gpt4 book ai didi

function - vim 中的切换功能

转载 作者:行者123 更新时间:2023-12-04 23:52:34 26 4
gpt4 key购买 nike

基本上我想做的是

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 结尾即可)在 ~/.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 中.

关于您的代码的一些评论:
  • 使用 let为了分配变量(参见 set 选项)。
  • Vim 不支持 truefalse ;使用 10反而。
  • if需要关闭 endif .
  • umap应该是 unmap ;前者不存在。
  • nnoremap应该使用以避免递归映射。
  • :在脚本中的命令之前是不必要的。
  • 关于function - vim 中的切换功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20579142/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com