ergoemacs / ergoemacs-mode

ergoemacs-mode
ergoemacs.github.io/
GNU General Public License v3.0
293 stars 35 forks source link

Having issues mapping Ctrl-D for cider-mode #504

Closed kxygk closed 2 years ago

kxygk commented 3 years ago

Thank you for the fantastic mode. I've been using it on and off for ages and I really appreciate all the effort that was put into it. I really hope I haven't missed something obvious here (and am wasting someone's time). I've reread the docs a dozen times and yet I'm a bit stuck

I'm trying to map Ctrl-D to open up Clojure Docs (both directly in orgmode as well as in clojure-mode)

To keep things simple I'd like to just bind it globally to the commandcider-doc. However no matter what I try, it doesn't seem to work in cider-mode - and it keeps getting clobbered by ergoemacs's ergoemacs-map-undefined

In my init I have something like the following

(use-package ergoemacs-mode
  :config
  (setq ergoemacs-theme nil)
  (setq ergoemacs-keyboard-layout "us"))

(global-set-key (kbd "<f11>") nil)
(global-set-key (kbd "C-d") 'cider-doc)

(add-hook 'org-mode-hook
          (lambda ()
            (local-set-key (kbd "C-e") 'org-ctrl-c-ctrl-c)
            (local-set-key (kbd "<f11>") 'org-edit-special)))
(add-hook 'clojure-mode-hook
          (lambda ()
            (local-set-key (kbd "C-e") 'cider-eval-defun-at-point)
            (local-set-key (kbd "<f11>") 'org-edit-src-exit)))

  (ergoemacs-mode 1)

(as an aside: setting the f11 to nil globally seemed to be necessary, otherwise the mode-specific toggles wouldn't trigger properly)

However I haven't been able to get C-d to work in clojure-mode at all. I'd tried

I always get this comical/ironic message

Ctrl+D is disabled! Use Ctrl+D for cider-doc instead.

If I look up what it's binded to, as expected, I see ergoemacs-map-undefined

And of course to make things more confusing - it works as expected under orgmode

mattfidler commented 3 years ago

I just made a major change to this mode. Likely this is fixed. Most of the keymaps are only installed in the ergoemacs-themes and is easier to debug. Thanks to @wlandry

kxygk commented 3 years ago

yikes.. to updrage i deleted and had use-package get a new version of ergoemacs

Now the whole things hangs on launch. I don't really know what the error means honestly


Warning (ergoemacs): Could not find global map information
Loading /home/geokon/.emacs.d/recentf...
Cleaning up the recentf list...
Cleaning up the recentf list...done (0 removed)
Ergoemacs-mode turned ON (us:standard).
Started ‘ergoemacs-mode’. Total startup time 2.764189 (Load: 1.705264, Initialize:1.058925)
Trailing garbage following expression:  (kill-emacs)
uncompressing ergoemacs-mode-26-3-x86-64-pc-linux-gnu.gz...
uncompressing ergoemacs-mode-26-3-x86-64-pc-linux-gnu.gz...done
compressing ergoemacs-mode-26-3-x86-64-pc-linux-gnu.gz...
compressing ergoemacs-mode-26-3-x86-64-pc-linux-gnu.gz...done

Waiting for process to die...done
Quit

I had to kill it with Ctrl-G .. Hence the Quit at the end.

EDIT: I let it run for like 15 mins and I finally got an error

Error (use-package): ergoemacs-mode/:catch: Lisp nesting exceeds ‘max-lisp-eval-depth’
mattfidler commented 3 years ago

Hm. I am unsure if that is the correct version of ergoemacs mode.

It should only say:

Ergoemacs-mode turned ON (us).
kxygk commented 3 years ago

I'm just fetching from ELPA. Should I clone a copy from Github?

The stack trace I get is


Debugger entered--Lisp error: (error "Lisp nesting exceeds ‘max-lisp-eval-depth’")
  ad-Advice-run-hooks(#<subr run-hooks> buffer-list-update-hook)
  apply(ad-Advice-run-hooks #<subr run-hooks> buffer-list-update-hook)
  run-hooks(buffer-list-update-hook)
  get-buffer-create(" *string-output*")
  shell-command-to-string("\"/usr/bin/emacs\" -L /home/geokon/.emacs.d/elpa/ergoemacs-mode-5.16.10.12/ --batch --load \"ergoemacs-mode\" -Q --eval \"(ergoemacs-map-properties--default-global-gen) (kill-emacs)\"")
  #f(compiled-function () #<bytecode 0x145abad>)()
  ergoemacs-timing--(ergoemacs-create-global #f(compiled-function () #<bytecode 0x145abad>))
 ...
  #f(compiled-function () #<bytecode 0x145abad>)()
  ergoemacs-timing--(ergoemacs-create-global #f(compiled-function () #<bytecode 0x145abad>))
  #f(compiled-function () #<bytecode 0x145abe5>)()
  ergoemacs-timing--(get-original-global-map #f(compiled-function () #<bytecode 0x145abe5>))
  ergoemacs-map-properties--get-original-global-map()
  #f(compiled-function () #<bytecode 0x145abad>)()
  ergoemacs-timing--(ergoemacs-create-global #f(compiled-function () #<bytecode 0x145abad>))
  #f(compiled-function () #<bytecode 0x145abe5>)()
  ergoemacs-timing--(get-original-global-map #f(compiled-function () #<bytecode 0x145abe5>))
  ergoemacs-map-properties--get-original-global-map()
  #f(compiled-function () #<bytecode 0x145abad>)()
  ergoemacs-timing--(ergoemacs-create-global #f(compiled-function () #<bytecode 0x145abad>))
  #f(compiled-function () #<bytecode 0x145abe5>)()
  ergoemacs-timing--(get-original-global-map #f(compiled-function () #<bytecode 0x145abe5>))
  ergoemacs-map-properties--get-original-global-map()
  #f(compiled-function () #<bytecode 0x145abad>)()
  ergoemacs-timing--(ergoemacs-create-global #f(compiled-function () #<bytecode 0x145abad>))
  #f(compiled-function () #<bytecode 0x145abe5>)()
  ergoemacs-timing--(get-original-global-map #f(compiled-function () #<bytecode 0x145abe5>))
  ergoemacs-map-properties--get-original-global-map()
  #<subr run-hooks>(ergoemacs-mode-intialize-hook)
  apply(#<subr run-hooks> ergoemacs-mode-intialize-hook)
  ad-Advice-run-hooks(#<subr run-hooks> ergoemacs-mode-intialize-hook)
  apply(ad-Advice-run-hooks #<subr run-hooks> ergoemacs-mode-intialize-hook)
  run-hooks(ergoemacs-mode-intialize-hook)
  #f(compiled-function () #<bytecode 0x1437c8d>)()
  ergoemacs-timing--(ergoemacs-mode-intialize-hook #f(compiled-function () #<bytecode 0x1437c8d>))
  byte-code("\010\203\013\0\306\307!\210\202\020\0\310\307\311\"\210\011\203\031\0\310\312\313\"\210\310\314\315\"\210\316\317\320 \n\"!\022\321\322\323\324\n\211\211\013\2062\0\f%\015#\210\325\326\327\330#\210\331\332\330\"\210\306\333!\207" [ergoemacs-mode--fast-p ergoemacs-use-aliases ergoemacs--load-time load-file-name buffer-file-name ergoemacs-timing-hash provide ergoemacs-themes ergoemacs-timing-- #f(compiled-function () #<bytecode 0x14365c1>) ergoemacs-load-aliases #f(compiled-function () #<bytecode 0x1436bd5>) ergoemacs-mode-intialize-hook #f(compiled-function () #<bytecode 0x1437c8d>) float-time time-subtract current-time puthash ergoemacs-load-time vector 1 run-with-idle-timer 0.05 nil ergoemacs-mode-after-init-emacs add-hook emacs-startup-hook ergoemacs-mode] 8)
  (ergoemacs-mode 1)
  eval-buffer(#<buffer  *load*> nil "/home/geokon/.emacs.d/init.el" nil t)  ; Reading at buffer position 9447
  load-with-code-conversion("/home/geokon/.emacs.d/init.el" "/home/geokon/.emacs.d/init.el" t t)
  load("/home/geokon/.emacs.d/init" t t)
  #f(compiled-function () #<bytecode 0x1e0f4d>)()
  command-line()
  normal-top-level()
kxygk commented 3 years ago

Sorry, I don't know what was going on..

I cloned ergoemacs into my .emacs, slapped on a

(add-to-list 'load-path "~/.emacs.d/ergoemacs-mode/") 

and then did the usual

(require 'ergoemacs-mode)
;; blah blah

Now things seem to be loading.

EDIT: But things aren't really working now.. For instance Ctrl+S and Ctrl+A seem to work, but Ctrl+C and Ctrl+X waits for more input

ergoemacs-theme-option-off seems to not exist anymore, so I had to disable my previous


(ergoemacs-theme-option-off '(apps apps-apps apps-punctuation apps-swap more-line fixed-bold-italic fn-keys ))

Ctrl+D and Ctrl+B don't work anymore.. I dunno what's going on though

kxygk commented 3 years ago

I've broken things to the point where I can't actually revert them :(

And I can't seem to figure out what version of ergo I had running before. I've spent half the day on this, but I don't know what's wrong. So I'm going to have to disable ergoemacs entirely. I think it's a very cool mode and it can really make Emacs much better, but it's very finicky unfortunately.

mattfidler commented 3 years ago

I'm unsure what is happening for you. This was a major rewrite. The C-c and C-x are currently not working.

Likely the version you are looking for is at 7d3656541a00cc04ba4cefa31c0d127adb5a260a

Since you cloned you can do:

git checkout 7d3656541a00cc04ba4cefa31c0d127adb5a260a

I will let you know when C-c is working again.

mattfidler commented 3 years ago

Cua keys, that is C-c and C-x when there is a selection, is working again.