You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I use the recommended
(defvar outline-minor-mode-prefix "\M-#")
I discover that outline-minor-mode-prefix is "£" (British pound sterling symbol) which string-bytes says is a 1-byte string! This was a surprise to me and is also interfering with my using outshine commands. I'm using Emacs 26.2 and I am not familiar with whatever exotic feature I've stumbled upon! If I double the backslash I then get a 4-byte string starting with a literal backslash - is this what is desired for Outshine?
The text was updated successfully, but these errors were encountered:
This is interesting. As you may know, I'm not the author of Outshine, just the current maintainer. I had never noticed the backslash in that code.
In my own config, I have the same code, which is in the :config section of a (use-package outshine form. After starting Emacs, I evaluated this code with the results in comments (on Emacs 26.1):
outline-minor-mode-prefix ;;=> "�@" (GitHub renders this differently; in Emacs, it looks like "^C@")
(defvaroutline-minor-mode-prefix"\M-#") ;;=> outline-minor-mode-prefix
outline-minor-mode-prefix ;;=> "\243"
(defvarwhat"\M-#")
what ;;=> "\243"
(defvarwhat*"M-#")
what* ;;=> "M-#"
I see that in outline.el, outline-minor-mode-prefix is also defined, like this:
(defcustomoutline-minor-mode-prefix"\C-c@""Prefix key to use for Outline commands in Outline minor mode.The value of this variable is checked as part of loading Outline mode.After that, changing the prefix key requires manipulating keymaps.":type'string:group'outlines)
So the initial value of it in my config was that default value.
Of course, that variable probably shouldn't be redefined in this package. Long-term, that's something we should fix.
Anyway, about your issue: I don't know why you're seeing it as "£". Looking at the Elisp manual, section 2.3.8.3, it says:
Properly speaking, strings cannot hold meta characters; but when a
string is to be used as a key sequence, there is a special convention
that provides a way to represent meta versions of ASCII characters in a
string. If you use the ‘\M-’ syntax to indicate a meta character in a
string constant, this sets the 2**7 bit of the character in the string.
If the string is used in ‘define-key’ or ‘lookup-key’, this numeric code
is translated into the equivalent meta character. *Note Character
Type::.
If I understand correctly, it could also be written with kbd without using a backslash like:
(defvaroutline-minor-mode-prefix (kbd"M-#"))
I don't know of anyone else reporting a problem with this. How is it interfering with your usage? Can you reproduce it with emacs -q? Maybe there's something else in your config causing the problem.
When I use the recommended
(defvar outline-minor-mode-prefix "\M-#")
I discover that outline-minor-mode-prefix is "£" (British pound sterling symbol) which string-bytes says is a 1-byte string! This was a surprise to me and is also interfering with my using outshine commands. I'm using Emacs 26.2 and I am not familiar with whatever exotic feature I've stumbled upon! If I double the backslash I then get a 4-byte string starting with a literal backslash - is this what is desired for Outshine?
The text was updated successfully, but these errors were encountered: