gpt4 book ai didi

VIM:使用 imap 从插入模式调用函数?

转载 作者:行者123 更新时间:2023-12-04 14:39:06 25 4
gpt4 key购买 nike

我在 vimrc 中编写了一个函数来关闭语法并设置粘贴。该函数如下所示:

function! ToggleSyntax()
if g:syntaxon == 1
syntax off
set paste
let g:syntaxon = 0
else
syntax on
set nopaste
let g:syntaxon = 1
endif
endfunction

我使用 F12 键调用该函数,并将该函数映射到 F12,如下所示:
map <F12> :call ToggleSyntax()<cr>
imap <F12> <c-o>:call ToggleSyntax()<cr>

我遇到的问题是我无法从插入模式调用 ToggleSyntax 函数。这让我很困惑,因为我使用了 imap 处理程序,但是,这个函数只能在命令模式下工作。我不知道如何让它工作,对此的任何帮助将不胜感激!谢谢你!

最佳答案

对我来说,您的函数也会在插入模式下打开粘贴,但不会将其关闭(并打开语法)。原因是当:set paste , 没有插入模式映射适用 .这是 'paste' 的一个重要方面,另见 :help 'paste' .

在插入模式下切换的唯一方法是

:set pastetoggle=<F12>

(该选项是为此目的而明确制定的)但是,您将失去您的函数提供的并行语法切换。

关于VIM:使用 imap 从插入模式调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16242627/

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