这很奇怪,list-packages
缓冲区显示“可用”作为实际安装的某些软件包的状态。那个列不应该为他们显示“已安装”吗?当我单击一个时,会打开一个新缓冲区以通知我该软件包已安装,但不提供卸载选项。相比之下,我没有安装的其他软件包显示为“可用”,旁边有“安装”选项。
如何卸载已安装的软件包?我目前正在寻找的那个是平滑滚动的。
答案 0 :(得分:42)
我喜欢使用穷人的解决方案:只需删除~/.emacs.d/elpa/
(或package-directory-list
中指定的目录)中不需要的包的目录。
编辑:此解决方案适用于出现问题的情况(可能是错误,可能是手动修改包数据的结果)。请使用@lunaryon答案;对99.9%的案例来说,这是正确的做法。
答案 1 :(得分:31)
包菜单显示包的所有已知版本。
因此,您可能会看到已安装的软件包也列为可用 例如,如果有相同软件包的更新版本可用,或者如果有 可以从不同的档案中获得相同的包裹。
要删除此类软件包,只需在列表中向下滚动,或使用C-s
PACKAGE-NAME
搜索软件包的出现位置。一旦找到了
安装版本的软件包,按D
标记要删除的软件包,
然后x
执行操作并实际删除包。
答案 2 :(得分:24)
对于Emacs 25.1及更高版本,命令
M-x package-delete
将自动填充的提示提升到您已安装的软件包的名称中。
答案 3 :(得分:22)
我已经通过
卸载了django-snippets软件包M-x package-list-packages
C-s django-snippets
键入d
标记要删除的包。
通过键入x
执行。
与删除~/.emacs.d/elpa/
中的相关目录完全相同。
注意,对于最近的emacs,命令是list-packages
(而不是packages-list-packages
)
答案 4 :(得分:14)
我偶然发现:带上包裹清单,找到要删除的包裹,然后按“D”。完成后,按“X”键将删除包裹。它的工作方式与安装新软件包的方式完全相同,只是将'I'替换为'D'(我认为'D'代表'删除')。