在vim中编辑Haskell代码时%不起作用?

时间:2013-10-05 19:52:28

标签: haskell vim

当我把光标放在vim的括号中时:

f = (\x y -> x+y)
    ^

键入%会将光标移动到匹配的括号:

f = (\x y -> x+y)
                ^

输入%d将删除括号及其中的所有内容

f = 
   ^

但是当我有嵌套括号时:

g = (\(x,y) -> x+y)
    ^

键入%会使其跳转到结束内括号而不是匹配的括号:

g = (\(x,y) -> x+y)
          ^

%d具有相同的不匹配行为:

g = (\(x,y) -> x+y)
    ^

变为

g =  -> x+y) 
    ^

为什么呢?如何使其正确匹配?


奇怪的是,匹配括号的视觉突出显示确实有效:

a b c d e f

这是如何工作的,但%的匹配却没有?有两个大脑吗?

1 个答案:

答案 0 :(得分:11)

简短回答,来自:help %

:set cpoptions+=M

这可以防止vim忽略\(组合并将其视为(

(很长的答案可能涉及使用类似的matchit插件,我不知道,这向vim解释\表示lambda,而不是反斜杠。)