mamapanda / evil-owl Goto Github PK
View Code? Open in Web Editor NEWpreview registers and marks before actually using them
License: GNU General Public License v3.0
preview registers and marks before actually using them
License: GNU General Public License v3.0
Would it be possible to add an option for the register to show until the motion or edit is executed? This seems to be how vim-peekaboo
behaves (plus highlighting the chosen register) and I think it'd go even further to prevent me forgetting what I'm about to paste. I'm willing to try implementing it myself and open a PR unless this sounds unworkable in Emacs/evil.
Hello there,
I've had to disable evil-owl today because I get an error everytime I press =
in evil-normal-state
.
Debugger entered--Lisp error: (void-variable evil-last-=-register-input)
evil-owl--get-register(61)
evil-owl--register-entry-string(61)
mapconcat(evil-owl--register-entry-string (37 35 47 58 61 46) "")
#f(compiled-function (group) #<bytecode -0x11dd20b17c26b274>)(("Read-only" 37 35 47 58 61 46))
mapconcat(#f(compiled-function (group) #<bytecode -0x11dd20b17c26b274>) (("Named" 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122) ("Numbered" 48 49 50 51 52 53 54 55 56 57) ("Special" 34 42 43 45) ("Read-only" 37 35 47 58 61 46)) "\n")
evil-owl--display-string((("Named" 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122) ("Numbered" 48 49 50 51 52 53 54 55 56 57) ("Special" 34 42 43 45) ("Read-only" 37 35 47 58 61 46)) evil-owl--register-entry-string)
evil-owl--register-display-string()
evil-owl--eval-interactive-spec(evil-use-register evil-owl--register-display-string)
byte-code("\300\301\302\"\207" [evil-owl--eval-interactive-spec evil-use-register evil-owl--register-display-string] 3)
command-execute(evil-owl-use-register)
I can't find any mention of evil-last-=-register-input
in evil-mode. Is there an additional package I need to install, or something I need to explicitly require, to get this variable defined?
I've just raised a PR for evil, because I noticed evil-get-register
has lots of handy error messages it can throw, but it catches and ignores all of them:
emacs-evil/evil#1457
Unfortunately this fix breaks evil-owl, presumably because of the way evil-owl generates its list of registers. I assume you will want to ignore these with condition-case
somehow? Lemme know when evil-owl can handle this, so I can merge the PR. Cheers!
I added the suggested config to my init.el
:
(use-package evil-owl
:config
(setq evil-owl-max-string-length 500)
(add-to-list 'display-buffer-alist
'("*evil-owl*"
(display-buffer-in-side-window)
(side . bottom)
(window-height . 0.3)))
(evil-owl-mode))
evil-owl-mode
is activated as expected, but I still don't know how to see what's inside registers. The README says:
Press q, @, ", C-r, m, ', or ` to view the popup, press C-f or C-b to scroll it, and input a register or mark to make the popup disappear.
But none of these works for me. I suppose these keybindings only work with posframe on?
Is there a version of this stable enough that you could sign a tag? Then it'll appear in melpa-stable :-)
(I've encountered no bugs, so I'd vote for tagging 24c5f43 .)
Hi, how are you?
I think this package helps a lot visualizing what you are doing before doing it.
Unfortunately, for me, it breaks pasting from insert with visual-block.
For example, take the block:
abc
123
123
123
Normally, since paste is also broke on evil, to insert abc between 123 I would do: yiw
on abc
, then C-v
on the first 2
, then j + j
to select the lines below, capital I
to enter inser mode, and finally C-R +
to insert from the last register.
This would result in:
abc
1abc23
1abc23
1abc23
However, the following error message occurs when evil-owl
is activated (partial):
[yank-menu kill-ring buffer-read-only gui-backend-selection-exists-p CLIPBOARD featurep ns] 2]) :help "Paste (yank) text
most recently cut/copied" :keys #[0 "@...
And, besides the operation not being executed, it also breaks evil-normal-mode
. :(
When I try a function that's wrapped by owl it fails with the following message:
Symbol's value as variable is void: &rest
I am using Emacs 26.3 with owl 20200113.405.
Golfing it down it seems as though it ought be defined without the &rest
in there? Using evil-define-command
with it seems to break.
I'll test it without and if it works I'll create a PR.
minimal config:
;;; emacs -Q -l ~/.config/emacs/test.el
(package-initialize)
(require 'evil)
(require 'evil-owl)
(evil-mode)
(evil-owl-mode)
(setq evil-owl-display-method 'posframe)
Backtrace:
Debugger entered--Lisp error: (error "Attempt to delete the sole visible or iconified fr...")
posframe-delete-frame("*evil-owl*")
posframe-delete("*evil-owl*")
evil-owl--hide-posframe()
evil-owl--hide-popup()
#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_27>()
evil-owl--eval-interactive-spec(evil-record-macro evil-owl--register-display-string)
byte-code("\300\301\302\"\207" [evil-owl--eval-interactive-spec evil-record-macro evil-owl--register-display-string] 3)
command-execute(evil-owl-record-macro)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.