C-x 和 M-x 命令提示信息都没有显示,是少装啥了吗?怎么查?

我在 gentoo 上新装的 emacs, 版本27.1. M-x 本来应该出现的命令输入提示不显示了,但输入具体命令比如 pdb 还是能工作的。 C-x 的命令提示也不显示了, 想通过 C-x 0 关闭当前窗口也不行,怎么查?下面是我从 messages buffer 里面复制的一小段内容:

C-x is undefined C-x is undefined Mark set [2 times] delete-window: Attempt to delete minibuffer or sole ordinary window Setting up indent for shell type bash

更新: C-x b, 切换 buffer, C-x k 关掉buffer 是可以工作的,但 C-x 上面本该出现的按键提示选项没有弹出。

大概是你之前在用配置过的emacs吧…

没有,新装的 gentoo 系统,新装的 emacs, 没改配置; 唯一不正常的步骤是, 我一开始为了调试 gentoo 的包管理 ebuild.sh, 在里面加了两句:

source /usr/share/bashdb/bashdb-trace
_Dbg_debugger 

但安装 emacs 的时候忘了删掉这两句了,导致第一遍 emacs 安装失败. 意识到这个问题后,我把这两句删了,然后 unmerge 了 emacs 包,然后 emerge --depclean, 然后重新 emerge emacs, 安装过程没注意到报错.

emacs 打开后 pdb 调试也能用, 只是 C-x, M-x 提示内容都没有了,本来 M-x 后,如果命令开头几个字符,不是有个列表可以帮助你在候选命令中选取的吗?

M-x + 候选项ivy or fido or selectrum提供的功能,原生的completing-read只有在tab的时候才会提供候选项.

C-x的键位提示是which-key提供的,而且你关闭不掉窗口的原因不是报错就告诉你了吗

 Attempt to delete minibuffer or sole ordinary window

反正你之前肯定是用别人配置过的emacs就是了…

1 个赞

哦,我前面误解你的意思了,我之前用的系统的确是改过 .emacs 文件, 目的是为了用 lsp-mode 看 c/c++ 项目代码. 当时是第一次用 .emacs, 也就用了几天而已, 在 csdn 上记录了一下配置过程, 要不是有记录,我自己都想不起来干过啥. 这里不让贴.

现在隔了一个多月没碰 emacs. 我想学在 emacs 里调试 python 和 bash, 这次装的是新环境, 没找到 相关 lsp-mode 的指南, 甚至原来 csdn 里记录的官方链接都打不开了.

没想到原来 M-x , C-x 后直接弹出候选命令提示是配置后的结果, 而不是原生的.