如何解决两个模式的keymap冲突

我这里配置下 awesome-pair 的键位绑定

(use-package awesome-pair
  :load-path "~/workspace/repo/awesome-pair/"
  :hook (prog-mode . awesome-pair-mode)
  :bind (:map awesome-pair-mode-map
	      ("(" . awesome-pair-open-round)
	      ("[" . awesome-pair-open-bracket)
	      ("{" . awesome-pair-open-curly)
	      (")" . awesome-pair-close-round)
	      ("]" . awesome-pair-close-bracket)
	      ("}" . awesome-pair-close-curly)))

不巧的是,web-mode中也有关于 花括号 的键位设置,于是在 web-mode 下,按下 { 就会变成

第一次遇到这个问题,没什么经验,求各位大佬指点

可以解绑 web-mode 里面的这些。不过 web-mode 是 major-mode,awesome-pair 是 minor-mode,按理说后者的优先级应该更高才对。

看你想要保留那个键位了,如果要保留 awesome-pair 里的绑定,就把 web-mode 里的 { 设置为 nil,这样应该就行了

(use-package web-mode
  :bind
  (:map web-mode-map ("{" . nil)))

@DogLooksGood @Shaun
我还是决定保留 web-mode 的设置,转而改写括号匹配的配置
不知道你们那有没有关于括号补全的配置,包括中括号,花括号,双引号,单引号

我用的 smartparens。

你那里会与web-mode冲突吗

好像没啥问题。