spacemacs icon indicating copy to clipboard operation
spacemacs copied to clipboard

SPC SPC doesn't work

Open tofuya opened this issue 3 years ago • 34 comments

Description

SPC SPC doesn't work. (M-x work)

The log output to the Message buffer is as follows.

SPC SPC-  which-key: There are no keys to show
SPC SPC SPC is undefined

SPC SPC stopped working at commit b7e1dee13f619646d9d419f518f6ba8d835bef41

Reproduction guide

– Start Emacs – Press SPC SPC

Observed behaviour: Pressing the SPC SPC will result in SPC SPC-, prompting me to continue entering commands.

Expected behaviour: helm-M-x(or perhaps spacemacs/helm-M-x-fuzzy-matching)

System Info :computer:

– OS: darwin – Emacs: 28.0.91 – Spacemacs: 0.999.0 – Spacemacs branch: develop (rev. ee3c558c8) – Graphic display: nil – Distribution: spacemacs – Editing style: vim – Completion: helm – Layers:

(emacs-lisp helm multiple-cursors treemacs)

– System configuration features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP $

tofuya avatar Feb 18 '22 09:02 tofuya

Seems to be broken when not using a window system: emacs -nw file.txt. When using emacs file.txt, it does seem to work.

fantostisch avatar Feb 18 '22 15:02 fantostisch

@tofuya @fantostisch Would it be fixed if you add evil-terminal-cursor-changer to dotspacemacs-excluded-packages in your ~/.spacemacs?

(I assume @fantostisch also uses macOS here.)

lebensterben avatar Feb 18 '22 20:02 lebensterben

Adding evil-terminal-cursor-changer to dotspacemacs-excluded-packages does not seem to fix the issue.

Forgot to mention my setup, tested on Ubuntu 21.10:

System Info :computer:

  • OS: gnu/linux
  • Emacs: 27.1
  • Spacemacs: 0.999.0
  • Spacemacs branch: develop (rev. ee3c558c8)
  • Graphic display: nil
  • Distribution: spacemacs
  • Editing style: vim
  • Completion: helm
  • Layers:
(markdown spell-checking xclipboard)
  • System configuration features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP

fantostisch avatar Feb 18 '22 21:02 fantostisch

@fantostisch

Have you restarted your Emacs after you added it into dotspacemacs-excluded-packages? (Also if you're running a daemon you need to restart it as well)


If you've already restarted Emacs, try this:

Comment out these lines and then restart Emacs https://github.com/syl20bnr/spacemacs/blob/ee3c558c80bbadfa4c692936ab9502765a4867f8/layers/%2Bspacemacs/spacemacs-editing-visual/packages.el#L30 https://github.com/syl20bnr/spacemacs/blob/ee3c558c80bbadfa4c692936ab9502765a4867f8/layers/%2Bspacemacs/spacemacs-editing-visual/packages.el#L37-L38

lebensterben avatar Feb 18 '22 21:02 lebensterben

I am not using a daemon and restarted Emacs. On startup I saw a message deleting evil-terminal-cursor-changer.

I just discovered that it only shows the SPC SPC- which-key: There are no keys to show message the first time pressing SPC SPC after opening Emacs. When pressing SPC SPC again, it works.

Tested with both the evil-terminal-cursor-changer disabled and enabled, commenting out the lines does not seem to fix the issue.

fantostisch avatar Feb 18 '22 21:02 fantostisch

@fantostisch

Thanks for your explanation. I suspect evil-terminal-cursor-changer is the culprit because there's a reported bug about funny behaviours in terminal (on macOS).

Your finding can now rule out this possibility.


Next, try these:

  • First, update your Emacs packages with SPC f e U, restart Emacs and see whether the same issue persists.
  • If the last step doesn't work, please use git bisect to pin down a commit that first introduced this problem.

Also, what's your dotspacemacs-excluded-packages like?

lebensterben avatar Feb 18 '22 21:02 lebensterben

After starting Emacs without disabling the evil-terminal-cursor-changer extension and without commenting code out, the log shows: spacemacs-buffer||propertize-heading: Symbol’s function definition is void: all-the-icons-material when using -nw. When not using -nw this is not shown. Might be related?

The same issue persists after updating the packages. The commit that introduced the problem is b7e1dee13f619646d9d419f518f6ba8d835bef41, the commit before (f2afab0c32c1dfb8e2bfd3d1c4c84c8db5a68c4b) works.

My dotspacemacs-excluded-packages does not exclude any packages:

   dotspacemacs-excluded-packages '(
                          ;; evil-terminal-cursor-changer
                                    )

fantostisch avatar Feb 18 '22 21:02 fantostisch

@fantostisch It's a known bug as for symbol's function undefined.

To clarify, in b7e1dee does SPC SPC works? Or do you mean it's the commit that introduces "symbol's function definition is undefined"?

lebensterben avatar Feb 18 '22 21:02 lebensterben

SPC SPC does not work in https://github.com/syl20bnr/spacemacs/commit/b7e1dee13f619646d9d419f518f6ba8d835bef41, b7e1dee13f619646d9d419f518f6ba8d835bef41 is the commit that introduced the bug. Just tested and the commit also seems to introduce the spacemacs-buffer||propertize-heading: Symbol’s function definition is void: all-the-icons-material message. When using the commit before (https://github.com/syl20bnr/spacemacs/commit/f2afab0c32c1dfb8e2bfd3d1c4c84c8db5a68c4b), it does not show this message.

fantostisch avatar Feb 18 '22 22:02 fantostisch

@fantostisch Thanks for the clarification. Checkout any of the commit where SPC SPC doesn't work, for example latest develop. Then, open Emacs and type :(ielm) and it brings you to a buffer with inferior Emacs lisp mode. Then, evaluate the following expressions one at a time and paste the ouput:

(featurep 'all-the-icons)

(configuration-layer/package-used-p 'all-the-icons)

(fboundp 'all-the-icons-material)

(fboundp 'all-the-icons-octicon)

lebensterben avatar Feb 18 '22 22:02 lebensterben

Run on the latest develop (ee3c558c80bbadfa4c692936ab9502765a4867f8):

ELISP> (featurep 'all-the-icons)
nil
ELISP> (configuration-layer/package-used-p 'all-the-icons)

t
ELISP> (fboundp 'all-the-icons-material)

nil
ELISP> (fboundp 'all-the-icons-octicon)
nil
ELISP>

fantostisch avatar Feb 18 '22 22:02 fantostisch

@fantostisch This is very weird.

  • (configuration-layer/package-used-p 'all-the-icons) returns t means that all-the-icons package is not excluded and is being used, as expected.
  • But (featurep 'all-the-icons) returns nil meaning that it cannot find the package.

In your ~/.emacs.d/elpa/27.1/develop, is there a directory named like all-the-icons-* where * is a timestamp?

lebensterben avatar Feb 18 '22 22:02 lebensterben

Yes, there is a all-the-icons-20220117.108 directory with the following contents:

~/.emacs.d/elpa/27.1/develop/all-the-icons-20220117.108$ ls -lh
total 180K
-rw-rw-r-- 1 nick nick 2,4K feb 10 12:17 all-the-icons-autoloads.el
-rw-r--r-- 1 nick nick  78K feb 10 12:17 all-the-icons.el
-rw-rw-r-- 1 nick nick  70K feb 10 12:17 all-the-icons.elc
-rw-r--r-- 1 nick nick 7,6K feb 10 12:17 all-the-icons-faces.el
-rw-rw-r-- 1 nick nick 6,2K feb 10 12:17 all-the-icons-faces.elc
-rw-r--r-- 1 nick nick  427 feb 10 12:17 all-the-icons-pkg.el
drwxrwxr-x 2 nick nick 4,0K feb 10 12:17 data

fantostisch avatar Feb 18 '22 22:02 fantostisch

@fantostisch I don't have any explanation for that...

What's the result if you type features in ielm buffer?


Also: Can you try to update Emacs to latest version (27.2)?

lebensterben avatar Feb 18 '22 22:02 lebensterben

Just tried 27.2 by using the Emacs snap package and it has the same issue. Using 27.2:

ELISP> features
(smartparens-config smartparens-text smartparens ielm pp highlight-parentheses diminish winner recentf tree-widget editorconfig-core editorconfig-core-handle editorconfig-fnmatch term/xterm xterm async ws-butler winum spacemacs-purpose-popwin window-purpose-x imenu-list hideshow imenu ibuf-ext ibuffer ibuffer-loaddefs evil-collection-dired dired dired-loaddefs etags fileloop generator xref project volatile-highlights undo-tree diff symbol-overlay string-inflection string-edit spacemacs-xclipboard spaceline-config spaceline-segments spaceline powerline powerline-separators powerline-themes saveplace savehist popwin persp-mode multi-line multi-line-find multi-line-enter multi-line-decorator multi-line-respace multi-line-shared shut-up multi-line-cycle multi-line-candidate hl-todo window-purpose window-purpose-fixes window-purpose-prefix-overload window-purpose-switch let-alist window-purpose-layout window-purpose-core window-purpose-configuration window-purpose-utils eyebrowse evil-unimpaired f s dash evil-textobj-line evil-terminal-cursor-changer color evil-easymotion evil-collection-buff-menu evil-collection annalist evil-anzu anzu editorconfig noutline outline drag-stuff column-enforce-mode clean-aindent-mode helm-easymenu hybrid-mode evil-evilified-state which-key use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key use-package-core hydra lv evil evil-integration evil-maps evil-commands reveal flyspell ispell evil-jumps evil-command-window evil-search evil-ex shell pcomplete comint ansi-color evil-types evil-macros evil-repeat evil-states evil-core evil-common windmove calc calc-loaddefs calc-macs thingatpt rect evil-digraphs evil-vars ring bind-map info quelpa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr lisp-mnt help-fns radix-tree hl-line xt-mouse autorevert filenotify cl-extra disp-table spacemacs-dark-theme spacemacs-common format-spec finder-inf ido-vertical-mode ido core-spacemacs core-spacebind core-use-package-ext core-transient-state core-micro-state core-toggle core-keybindings core-fonts-support core-themes-support core-display-init core-jump core-release-management core-custom-settings core-configuration-layer core-progress-bar core-spacemacs-buffer core-funcs spacemacs-ht inline help-mode warnings package browse-url url-handlers url-parse auth-source cl-seq password-cache json map url-vars eieio eieio-core eieio-loaddefs epg epg-config core-command-line core-debug edmacro kmacro derived profiler core-hooks page-break-lines easy-mmode core-env load-env-vars rx core-dotspacemacs advice pcase core-customization validate cus-edit easymenu cus-start cus-load wid-edit seq byte-opt bytecomp byte-compile cconv core-emacs-backports core-compilation core-dumper subr-x spinner cl-macs gv cl-loaddefs cl-lib core-load-paths core-versions core-early-funcs tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

fantostisch avatar Feb 18 '22 23:02 fantostisch

@fantostisch Can you post your .spacemacs?

lebensterben avatar Feb 18 '22 23:02 lebensterben

My .spacemacs: spacemacs.txt

fantostisch avatar Feb 18 '22 23:02 fantostisch

@fantostisch Your .spacemacs looks perfect...

Can you post the value of load-path?

lebensterben avatar Feb 18 '22 23:02 lebensterben

load-path: load-path-nw.txt

fantostisch avatar Feb 18 '22 23:02 fantostisch

@fantostisch This is very strange, in your load-path you can see "/home/nick/.emacs.d/elpa/27.2/develop/all-the-icons-20220117.108"

In ielm, can you try again with:

(featurep 'all-the-icons)

(require 'all-the-icons)

lebensterben avatar Feb 18 '22 23:02 lebensterben

ELISP> (featurep 'all-the-icons)
nil
ELISP> (require 'all-the-icons)
all-the-icons

fantostisch avatar Feb 18 '22 23:02 fantostisch

After executing the require command, the output of the featurep command changes:

ELISP> (featurep 'all-the-icons)
nil
ELISP> (require 'all-the-icons)
all-the-icons
ELISP> (featurep 'all-the-icons)
t

fantostisch avatar Feb 18 '22 23:02 fantostisch

@fantostisch Thanks for the feedback. This time let's turn on debug-on-error for Emacs (in terminal) with

emacs -nw --eval '(setq debug-on-error t)'

If any error occurs, please attach the log.

lebensterben avatar Feb 19 '22 00:02 lebensterben

An error occurred: error.txt

fantostisch avatar Feb 19 '22 00:02 fantostisch

@fantostisch Thank you very much. In you ~/.emacs.d/core/core-spacemacs-buffer.el, try to replace (defun spacemacs-buffer||propertize-heading ..) by the following:

It seems like I didn't submit the correct fix last time.

(defmacro spacemacs-buffer||propertize-heading (icon text shortcut-char)
  `(concat (when dotspacemacs-startup-buffer-show-icons
             (concat ,icon " "))
           (propertize ,text 'face 'font-lock-keyword-face)
           (propertize (concat " (" ,shortcut-char ")")
                       'face 'font-lock-comment-face)))

lebensterben avatar Feb 19 '22 00:02 lebensterben

In you ~/.emacs.d/core/core-spacemacs-buffer.el, try to replace (defun spacemacs-buffer||propertize-heading ..) by the following:

This fixes the issue! Thanks!

fantostisch avatar Feb 19 '22 17:02 fantostisch

@fantostisch Does it also fix SPC SPC?

lebensterben avatar Feb 19 '22 18:02 lebensterben

Yes, SPC SPC works now

fantostisch avatar Feb 19 '22 20:02 fantostisch

@fantostisch Thanks for your bug report and cooperation. I will push the patch to develop.

lebensterben avatar Feb 19 '22 20:02 lebensterben

@tofuya Please update Spacemacs and it should be fixed now.

lebensterben avatar Feb 20 '22 01:02 lebensterben