| Age | Commit message (Collapse) | Author |
|
To prevent Emacs from modifying a user's init file behind their back,
the developers have decided that:
- by default, Emacs will call package-initialize before loading the
user's init file (thereby ensuring that out-of-the-box, when Emacs
starts, it activates packages installed in a previous session);
- the user can disable packages (among other things) using a new,
"early-init" file that will be read before package management
kicks in.
This has been committed to Emacs's master branch, so versions up to 26
still need to call package-initialize.
While in there, tuck package-archives in the Custom file. Hopefully
in a few years I can remove all this package cruft from my init file.
|
|
hscroll-step! Where have you been all my life?
|
|
Also move them to .emacs.d. If some other program needs them, I guess
I'll make an ~/.icons folder or something.
Also break the 80-column rule 😨
|
|
Found with C-x 8 RET EDIT TAB. From the Unicode Standard[1]:
> Ancient Greek scribes generally wrote in continuous uppercase
> letters without separating letters into words. On occasion, the
> scribe added punctuation to indicate the end of a sentence or a
> change of speaker or to separate words.
Since With-Editor acts "as the $EDITOR of an external process", I like
the "change of speaker" idea.
For posterity, a cat-and-mouse game I just completed:
- notice the " Server" string in the minor mode list
- look for "Server" in M-x describe-mode: nothing
- find out about minor-mode-alist:
> (server-buffer-clients " Server")
> server-buffer-clients is a variable defined in ‘server.el’.
- visit ‘server.el’ link
- notice that I end up in /usr/local/share/emacs/25.1/lisp/
- assume that I am running Emacs master
- assume Emacs is dumb and gives priority to /usr/local/ over ~
- visit ~/Downloads/sources/emacs/lisp/server.el manually
- spend hours looking for " Server"
- find Changelog entries referencing Bug#20201
- see that this has been removed years ago
- check Emacs version
- well whadya know this actually is 25.1
- oh yeah this is my package-upgrade instance which runs 25.1 to make
sure packages are byte-compiled by the oldest Emacs on my system
- 🤦
So on the one hand, I spent the better part of this morning reading
trivia on incredibly obscure Greek symbols, and debugging Emacs
mode-line shenanigans. On the other hand, now I know that Astérix and
Obélix are named after Aristarchian symbols.
[1]: http://unicode.org/versions/Unicode10.0.0/UnicodeStandard-10.0.pdf
§ 6.2 General Punctuation - Archaic Punctuation and Editorial Marks
p282 Ancient Greek Editorial Marks
See also:
http://unicode.org/L2/L2003/03324-tlg-editorialbrief.pdf
https://en.wikipedia.org/wiki/Obelism
https://en.wikipedia.org/wiki/Aristarchian_symbols
|
|
Adding a setup step feels marginally cleaner than having this dumb
match-all .gitignore.
🤷
|
|
visual-line vs word-wrap:
AFAICT, visual-line is word-wrap plus some customizable options:
- fringe indicators;
- specialized editing commands.
So there is no reason to bother with word-wrap.
Appending through dir-locals:
I wanted to have lists in dir-locals *appended* to the variables,
rather than overwritten, eg:
;; in .emacs:
(setq my/foo '(1 2 3))
;; in .dir-locals.el:
((c-mode . ((my/foo . (4 5 6)))))
;; M-: my/foo in a C buffer:
(1 2 3 4 5 6)
I don't think there is built-in support for this. I guess the
simplest way to emulate it would be to
1. put (4 5 6) in some other variable my/bar;
2. write a hook that appends my/bar to my/foo.
|
|
And simplify .gitignore. I originally added !/.* to make sure
committed dotfiles would still appear in git status, but that's not
necessary:
> Files already tracked by Git are not affected
> ― gitignore(5)
The only downside is that to start tracking new dotfiles, git add will
need --force.
|
|
Still a lot of "untracked" files showing up in git status, but that's
a start.
|
|
C-M-S-h (ie control alt shift H) still works in graphical frames,
which covers 99% of my usage.
|
|
|
|
|
|
On Debian Jessie at least, this is necessary.
|
|
BECAUSE CONSISTENCY DAMMIT.
|
|
I mean I can't live with it on C-<backspace> or M-<backspace>.
|
|
|
|
|
|
Because I'm a Unicode hipster.
Also move the "dumb" check below function definitions, so that maybe
someday I can try to play with those functions in shell-mode.
|
|
|
|
Otherwise Emacs picks it up when started from a terminal, defeating my
attempt to shield M-x shell from my weird-ass prompt.
|
|
|
|
I've seen the prohibited sign elsewhere before (on Github IIRC),
I find it neat.
Using the box drawing rather than the long dash ensures the line looks
continuous even in TTYs.
|
|
Simplifies the code somewhat; less arguments to pass around.
|
|
- no newline: simply append a visible /
- error code: move to first line and make rule red
|
|
User/host/working-directory/Git status go on the first line; the
"prompt" line only contains the prompt symbol and the previous
command's error code.
Also fill the rest of the line when a command does not end with
a newline.
|
|
- remove speculative parentheses
- sort table by code
|
|
To reproduce the issue:
$ echo -e '\E[?7l'
(cf. console_codes(4))
|
|
TRAMP fails to connect to remote hosts that set this prompt.
|
|
bash(1) already mentions _profile, _login, _logout and _history.
.bashrc adds .bash_aliases (although .bashrc itself is an exception).
|
|
Also remove "white" since it's the default color.
|
|
|
|
- stop leaking variables
- remove usnused array entry
|
|
|
|
|
|
- every function should give explicit names to its arguments, so they
might as well start with that;
- this function's goal is to build PS1, so BUILDING_PS1=t should appear
reasonably early to have some symmetry with unset BUILDING_PS1;
- PS1 is the main output of this function, so its initialization should
appear relatively early as well.
… I'm trying to justify shuffling some assignments around in a commit
message that no one will ever read. WHAT AM I DOING WITH MY LIFE.
|
|
|
|
Maybe a better option would be to display some bright red markers and
display the full rule on a new line.
🤷
|
|
|
|
Document where those are coming from.
|
|
"\E" means "the escape character", and "\a" means "bell".
References:
bash(1)
console_codes(4)
|
|
|
|
This will show the hostname when logged in over SSH.
|
|
|
|
|
|
|
|
|
|
Someday this is going to bite me in the ass. Right now though, I can't
come up with a reason not to do this.
Inspiration: test(1)
-n STRING
the length of STRING is nonzero
STRING equivalent to -n STRING
|
|
TODO: measure whether this actually changes anything.
|
|
|
|
|