我将<cr>(输入)重新映射为za,因此我可以快速打开/关闭折叠。因为它正在尝试打开/关闭快速修复窗口中不存在的折叠)。

进入快速修复窗口时是否可以禁用我的映射或在本地重新设置映射?

#1 楼

使用表达式映射是执行此操作的最简单方法:请参见:

请参见:


到函数

还可以定义一个函数,当从quickfix窗口调用该函数时,将执行常规回车,否则将执行“ za”。这对于您要尝试执行的操作效率不高,但是我将其留在此处,因为如果您要映射到比普通模式命令更复杂的内容,它会提供有用的信息:

nnoremap <expr> <CR> &buftype ==# 'quickfix' ? "\<CR>" : 'za'


评论


我可以问为什么我们必须在“ ”中使用\ <吗?

–WW00WW
19-2-26在12:46



@Voldikss我们希望字符串包含一个回车符。有两种方法可以实现此目的:我们可以按 以字面意义输入回车符,但是显示为^ M并且不能轻松地在Vim之外复制/粘贴,或者可以使用Vim的字符串常数符号。 (请参见:help expr-string。)如果我们未在“ ”中包含反斜杠,则该字符串将包含四个字符的序列:小于号,大写C,大写R,大于。

–丰富
19-2-26在13:13



谢谢男人,我现在明白了。 :help expr-string很重要。

–WW00WW
19-2-26在14:27