Closed suliveevil closed 1 year ago
It also breaks M-x
and RET
.
lsp-bridge-mode-map should be temporary(disappear when acm hide), but it is not.
(keymap-set lsp-bridge-mode-map "H-;" 'lsp-bridge-toggle-sdcv-helper)
(keymap-set lsp-bridge-mode-map "TAB" 'acm-select-next)
(keymap-set lsp-bridge-mode-map "<backtab>" 'acm-select-prev)
(keymap-set lsp-bridge-mode-map "SPC" 'acm-insert-common)
(keymap-set lsp-bridge-mode-map "RET" 'acm-complete)
(keymap-set lsp-bridge-mode-map "ESC" 'acm-hide )
This will break normal TAB
SPC
RET
after acm-hide
.
When I setup this
(use-package lsp-bridge
:after (yasnippet)
:hook (prog-mode . lsp-bridge-mode)
:config
(setq acm-enable-quick-access t)
(setq lsp-bridge-enable-mode-line nil)
(setq lsp-bridge-use-wenls-in-org-mode t)
(add-to-list 'lsp-bridge-org-babel-lang-list "emacs-lisp")
(add-to-list 'lsp-bridge-org-babel-lang-list "shell")
)
M-3 is misfunctioned to C-u 3
.
第一, 我这边测试 M-3 没有问题 第二, 你要看看 macOS 的 meta 是 Alt 键吗? 第三, 请用 emacs -Q 来反馈问题, keymap-set 这些大概率是你自己插件或配置的问题, 请自己排查, 我只接受 emacs -Q 能够重现的 bug
抱歉,是我反馈不严谨了。
没有用 emacs -Q,不知道 /Applications/Emacs.app/Contents/MacOS/emacs --init-directory="~/.config/debug"
能不能等同于 emacs -Q
用最小配置测试了几十遍,还是不能确定问题的根源,不知道是不是 native compilation 的问题。
测试过程:
emacs --init-directory="~/.config/debug"
C-x C-q
取消只读状态M-x emacs-lisp-mode
(require
最终只能确定设置 acm 有关 keymap 任意一项都会导致在无候选框时按键常规功能失效。
能力有限,我就先放弃改键了。
;; (keymap-set lsp-bridge-mode-map "TAB" 'acm-select-next)
;; (keymap-set lsp-bridge-mode-map "<backtab>" 'acm-select-prev)
;; (keymap-set lsp-bridge-mode-map "SPC" 'acm-insert-common) ; 导致无法输入空格
;; (keymap-set lsp-bridge-mode-map "RET" 'acm-complete) ;; 导致无法输入换行符
;; (keymap-set lsp-bridge-mode-map "ESC" 'acm-hide )
;; (setq acm-enable-quick-access t) ;; 导致无法使用 Meta 组合键
;; (setq acm-quick-access-modifier 'meta) ;; 导致无法使用 Meta 组合键
early-init.el 是空的,所有配置都在 init.el 里
(package-initialize)
(setq mac-option-modifier 'meta
mac-right-command-modifier 'hyper
)
( add-to-list 'load-path "~/.config/debug/lib/lsp-bridge/")
(require 'yasnippet)
(yas-global-mode 1)
(require 'lsp-bridge)
(global-lsp-bridge-mode)
(setq lsp-bridge-enable-mode-line nil)
(keymap-set lsp-bridge-mode-map "H-;" 'lsp-bridge-toggle-sdcv-helper)
(keymap-set lsp-bridge-mode-map "TAB" 'acm-select-next)
(keymap-set lsp-bridge-mode-map "<backtab>" 'acm-select-prev)
(keymap-set lsp-bridge-mode-map "ESC" 'acm-hide )
;; (keymap-set lsp-bridge-mode-map "SPC" 'acm-insert-common) ; 导致无法输入空格
;; (keymap-set lsp-bridge-mode-map "RET" 'acm-complete) ;; 导致无法输入换行符
;; (setq acm-enable-quick-access t) ;; 导致无法使用 Meta 组合键
;; (setq acm-quick-access-modifier 'meta) ;; 导致无法使用 Meta 组合键
~/.config/debug
tree
.
├── auto-save-list
├── divide
│ └── init.el
├── early-init.el
├── eln-cache
│ └── 30_0_50-eddc38b6
│ ├── auth-source-49df7eef-5f9f1f33.eln
│ ├── byte-opt-9c5f25f5-e9c39fdd.eln
│ ├── bytecomp-12882072-18e0ca75.eln
│ ├── cl-lib-8b938900-091ba014.eln
│ ├── cl-macs-7ae82f81-1698466d.eln
│ ├── cl-seq-f464c4e2-5f2e2b69.eln
│ ├── eieio-0db8d1d4-eee3eae9.eln
│ ├── eieio-core-63c05904-7d08efc3.eln
│ ├── generate-lisp-file-20e31f41-8ca1f9d3.eln
│ ├── gv-e0cf7478-2848f41e.eln
│ ├── help-mode-d4dbae3d-8359eb28.eln
│ ├── json-a90a1eab-a324d5a3.eln
│ ├── mailcap-a1205653-830d5d57.eln
│ ├── map-5d7b616a-a49695ac.eln
│ ├── password-cache-187e4eec-01cf807d.eln
│ ├── subr--trampoline-72656e616d652d66696c65_rename_file_0.eln
│ ├── subr-x-02dfef32-1fdbddc8.eln
│ ├── url-38944b26-fc3efcbc44E6Ws.eln.tmp
│ ├── url-cookie-02b28750-43a16a0b.eln
│ ├── url-domsuf-beabcbfe-f27bd1b2.eln
│ ├── url-expand-cf7ffc4e-d906363b.eln
│ ├── url-handlers-8b35c993-e36982de.eln
│ ├── url-history-a9b2f6e8-3212054d.eln
│ ├── url-methods-08bf763a-6102fe8b.eln
│ ├── url-parse-ee297c9b-4da42516.eln
│ ├── url-privacy-7df6b777-dc416da4.eln
│ ├── url-proxy-fc0751f0-599d5d23.eln
│ ├── url-util-28122a93-0af885fe.eln
│ └── url-vars-04b97511-6665993a.eln
├── elpa
│ ├── archives
│ │ ├── gnu
│ │ │ └── archive-contents
│ │ └── nongnu
│ │ └── archive-contents
│ ├── markdown-mode-20230102.9
│ │ ├── markdown-mode-autoloads.el
│ │ ├── markdown-mode-pkg.el
│ │ ├── markdown-mode.el
│ │ └── markdown-mode.elc
│ ├── posframe-20221220.544
│ │ ├── posframe-autoloads.el
│ │ ├── posframe-benchmark.el
│ │ ├── posframe-benchmark.elc
│ │ ├── posframe-pkg.el
│ │ ├── posframe.el
│ │ └── posframe.elc
│ └── yasnippet-20200604.246
│ ├── yasnippet-autoloads.el
│ ├── yasnippet-pkg.el
│ ├── yasnippet.el
│ └── yasnippet.elc
├── init.el
├── lib
│ └── lsp-bridge
│ ├── CODE_OF_CONDUCT.md
│ ├── LICENSE
│ ├── README.md
│ ├── README.zh-CN.md
│ ├── acm
│ │ ├── acm-backend-citre.el
│ │ ├── acm-backend-elisp.el
│ │ ├── acm-backend-lsp.el
│ │ ├── acm-backend-path.el
│ │ ├── acm-backend-search-file-words.el
│ │ ├── acm-backend-search-sdcv-words.el
│ │ ├── acm-backend-tabnine.el
│ │ ├── acm-backend-tailwind.el
│ │ ├── acm-backend-telega.el
│ │ ├── acm-backend-tempel.el
│ │ ├── acm-backend-yas.el
│ │ ├── acm-frame.el
│ │ ├── acm-icon.el
│ │ ├── acm-quick-access.el
│ │ ├── acm.el
│ │ └── icons
│ │ ├── material_account-key.svg
│ │ ├── material_all-inclusive.svg
│ │ ├── material_alpha-c-circle-outline.svg
│ │ ├── material_alpha-m-circle.svg
│ │ ├── material_alpha-t-box-outline.svg
│ │ ├── material_alpha-u-box-outline.svg
│ │ ├── material_apple-keyboard-option.svg
│ │ ├── material_application-variable.svg
│ │ ├── material_arrow-split-horizontal.svg
│ │ ├── material_arrow-split-vertical.svg
│ │ ├── material_at.svg
│ │ ├── material_bell.svg
│ │ ├── material_blinds-open.svg
│ │ ├── material_bookmark-box-multiple-outline.svg
│ │ ├── material_bookmark-box-multiple.svg
│ │ ├── material_cellphone-key.svg
│ │ ├── material_chart-timeline-variant.svg
│ │ ├── material_city-variant-outline.svg
│ │ ├── material_code-array.svg
│ │ ├── material_code-string.svg
│ │ ├── material_contain.svg
│ │ ├── material_creation.svg
│ │ ├── material_cube.svg
│ │ ├── material_currency-sign.svg
│ │ ├── material_database.svg
│ │ ├── material_expand-all-outline.svg
│ │ ├── material_feature-search.svg
│ │ ├── material_file-document-multiple.svg
│ │ ├── material_file-find-outline.svg
│ │ ├── material_file-outline.svg
│ │ ├── material_filter-outline.svg
│ │ ├── material_filter.svg
│ │ ├── material_folder.svg
│ │ ├── material_format-align-center.svg
│ │ ├── material_format-align-right.svg
│ │ ├── material_format-list-bulleted-type.svg
│ │ ├── material_format-text.svg
│ │ ├── material_function-variant.svg
│ │ ├── material_function.svg
│ │ ├── material_google-circles-extended.svg
│ │ ├── material_guitar-pick.svg
│ │ ├── material_label-outline.svg
│ │ ├── material_null.svg
│ │ ├── material_numeric-1.svg
│ │ ├── material_package.svg
│ │ ├── material_palette-swatch.svg
│ │ ├── material_palette.svg
│ │ ├── material_pan.svg
│ │ ├── material_plus-circle-multiple-outline.svg
│ │ ├── material_plus-circle-outline.svg
│ │ ├── material_shape-square-plus.svg
│ │ ├── material_shape-square-rounded-plus.svg
│ │ ├── material_share.svg
│ │ ├── material_sim-outline.svg
│ │ ├── material_star-check.svg
│ │ ├── material_steering.svg
│ │ ├── material_tag.svg
│ │ ├── material_text-recognition.svg
│ │ ├── material_tools.svg
│ │ ├── material_translate.svg
│ │ ├── material_variable.svg
│ │ ├── material_vector-square-plus.svg
│ │ ├── material_view-module.svg
│ │ └── material_wrench.svg
│ ├── core
│ │ ├── __pycache__
│ │ │ ├── fileaction.cpython-310.pyc
│ │ │ ├── lspserver.cpython-310.pyc
│ │ │ ├── mergedeep.cpython-310.pyc
│ │ │ ├── pystardict.cpython-310.pyc
│ │ │ ├── search_file_words.cpython-310.pyc
│ │ │ ├── search_list.cpython-310.pyc
│ │ │ ├── search_sdcv_words.cpython-310.pyc
│ │ │ ├── search_tailwindcss_keywords.cpython-310.pyc
│ │ │ ├── tabnine.cpython-310.pyc
│ │ │ └── utils.cpython-310.pyc
│ │ ├── fileaction.py
│ │ ├── handler
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-310.pyc
│ │ │ │ ├── call_hierarchy.cpython-310.pyc
│ │ │ │ ├── code_action.cpython-310.pyc
│ │ │ │ ├── completion.cpython-310.pyc
│ │ │ │ ├── completion_item.cpython-310.pyc
│ │ │ │ ├── deno_uri_resolver.cpython-310.pyc
│ │ │ │ ├── execute_command.cpython-310.pyc
│ │ │ │ ├── find_define.cpython-310.pyc
│ │ │ │ ├── find_implementation.cpython-310.pyc
│ │ │ │ ├── find_references.cpython-310.pyc
│ │ │ │ ├── formatting.cpython-310.pyc
│ │ │ │ ├── hover.cpython-310.pyc
│ │ │ │ ├── jdt_uri_resolver.cpython-310.pyc
│ │ │ │ ├── prepare_rename.cpython-310.pyc
│ │ │ │ ├── rename.cpython-310.pyc
│ │ │ │ ├── signature_help.cpython-310.pyc
│ │ │ │ └── workspace_symbol.cpython-310.pyc
│ │ │ ├── call_hierarchy.py
│ │ │ ├── code_action.py
│ │ │ ├── completion.py
│ │ │ ├── completion_item.py
│ │ │ ├── deno_uri_resolver.py
│ │ │ ├── execute_command.py
│ │ │ ├── find_define.py
│ │ │ ├── find_implementation.py
│ │ │ ├── find_references.py
│ │ │ ├── formatting.py
│ │ │ ├── hover.py
│ │ │ ├── jdt_uri_resolver.py
│ │ │ ├── prepare_rename.py
│ │ │ ├── rename.py
│ │ │ ├── signature_help.py
│ │ │ └── workspace_symbol.py
│ │ ├── lspserver.py
│ │ ├── mergedeep.py
│ │ ├── pystardict.py
│ │ ├── search_file_words.py
│ │ ├── search_list.py
│ │ ├── search_sdcv_words.py
│ │ ├── search_tailwindcss_keywords.py
│ │ ├── tabnine.py
│ │ ├── tailwind_css_keyword.txt
│ │ └── utils.py
│ ├── framework.png
│ ├── langserver
│ │ ├── ansible-language-server.json
│ │ ├── bash-language-server.json
│ │ ├── ccls.json
│ │ ├── clangd.json
│ │ ├── clojure-lsp.json
│ │ ├── cmake-language-server.json
│ │ ├── dart-analysis-server.json
│ │ ├── deno.json
│ │ ├── digestif.json
│ │ ├── docker-langserver.json
│ │ ├── elixirLS.json
│ │ ├── elixirLS_windows.json
│ │ ├── elm-language-server.json
│ │ ├── emmet-ls-css.json
│ │ ├── emmet-ls.json
│ │ ├── erlang-ls.json
│ │ ├── fortls.json
│ │ ├── gopls.json
│ │ ├── graphql-lsp.json
│ │ ├── groovy-language-server.json
│ │ ├── hls.json
│ │ ├── intelephense.json
│ │ ├── javascript.json
│ │ ├── jdtls.json
│ │ ├── jedi.json
│ │ ├── metals.json
│ │ ├── ocamllsp.json
│ │ ├── omnisharp-dotnet.json
│ │ ├── omnisharp-dotnet_windows.json
│ │ ├── omnisharp-mono.json
│ │ ├── omnisharp-mono_windows.json
│ │ ├── phpactor.json
│ │ ├── pylsp.json
│ │ ├── pyright-background-analysis.json
│ │ ├── pyright.json
│ │ ├── python-ms.json
│ │ ├── rlanguageserver.json
│ │ ├── rnix-lsp.json
│ │ ├── rust-analyzer.json
│ │ ├── serve-d.json
│ │ ├── solargraph.json
│ │ ├── sumneko.json
│ │ ├── swift-sourcekit.json
│ │ ├── texlab.json
│ │ ├── typescript.json
│ │ ├── typescriptreact.json
│ │ ├── volar.json
│ │ ├── volar_darwin.json
│ │ ├── volar_windows.json
│ │ ├── vscode-css-language-server.json
│ │ ├── vscode-eslint-language-server.json
│ │ ├── vscode-html-language-server.json
│ │ ├── vscode-json-language-server.json
│ │ ├── wen.json
│ │ ├── wxml-language-server.json
│ │ ├── yaml-language-server.json
│ │ └── zls.json
│ ├── lsp-bridge-call-hierarchy.el
│ ├── lsp-bridge-code-action.el
│ ├── lsp-bridge-diagnostic.el
│ ├── lsp-bridge-epc.el
│ ├── lsp-bridge-jdtls.el
│ ├── lsp-bridge-lsp-installer.el
│ ├── lsp-bridge-ref.el
│ ├── lsp-bridge.el
│ ├── lsp_bridge.py
│ ├── multiserver
│ │ ├── css_emmet.json
│ │ ├── html_emmet.json
│ │ └── volar_emmet.json
│ ├── resources
│ │ ├── kdic-ec-11w.dict.dz
│ │ ├── kdic-ec-11w.idx
│ │ ├── kdic-ec-11w.ifo
│ │ ├── pinyin.dict.dz
│ │ ├── pinyin.idx
│ │ └── pinyin.ifo
│ ├── screenshot.png
│ └── test
│ ├── __init__.py
│ ├── common.py
│ ├── lsp-bridge-test.el
│ ├── test.py
│ ├── test_completion.py
│ └── test_find_define.py
└── snippets
25 directories, 269 files
定位到问题所在了,(keymap-set acm-mode-map "ESC" 'acm-hide)
会导致以下配置失效。
(require 'yasnippet)
(yas-global-mode 1)
(require 'lsp-bridge)
(setq lsp-bridge-enable-mode-line nil)
(setq lsp-bridge-use-ds-pinyin-in-org-mode t)
;; (setq lsp-bridge-use-wenls-in-org-mode t)
(setq acm-enable-quick-access t)
(setq acm-quick-access-modifier 'meta)
(keymap-unset acm-mode-map "RET")
(keymap-unset acm-mode-map "SPC")
(keymap-unset acm-mode-map "TAB")
(keymap-unset acm-mode-map "<tab>")
(keymap-set acm-mode-map "SPC" 'acm-complete)
(keymap-set acm-mode-map "TAB" 'acm-select-next)
(keymap-set acm-mode-map "<tab>" 'acm-select-next)
(keymap-set acm-mode-map "<backtab>" 'acm-select-prev)
(keymap-set acm-mode-map "C-j" 'acm-insert-common)
(keymap-set acm-mode-map "H-j" 'acm-select-next)
(keymap-set acm-mode-map "H-k" 'acm-select-prev)
(global-lsp-bridge-mode)
Warning
M-3 is undefined
, while other config is just fine.