i get that from org-ql.
¡Qué bien encontrarnos por acá!
As you say, they are basically just window configurations, so I do use them ocassionally. If, in addition to remembering an Emacs window configuration I also want to remember whether the frame is maximized or not, I will use frames instead of tabs. I used to put window configurations into registers, before tabs existed, but tabs are better because when you put a window configuration into a register it even remembers the location of point in every buffer. This means that when you restore the window configuration from the register, points get restored to where they were when you stored the configuration, not to the last time you were using it. In this sense tabs are like window configuration registers that automatically update every time you switch away from them.
Tabs only have "useless UI elements" if you want them to! This is Emacs, after all. To use tabs without displaying any UI element set tab-bar-show to nil.
Look at the first letters of cycle, use, new and think.
One small thing I liked in the new version is the grep-use-headings user option, if you set it to t, then grep buffer lists the search results with headings, one per file, instead of repeating the filename every single time.
I use it in all buffers whose major mode is derived from text-mode.
By default undo does work in the scratch buffer so it is something in your configuration that is keeping this from working. As a quick way to check, try running emacs -q
, which skips loading your configuration, and see if you have undo in the scratch buffer there; if so, it's definitely something you have in you configuration.
You can bisect your configuration to figure out how you are deactivating undo. You can do this manually or with the help of the bug-hunter package.
Acme doesn't stand for some generic editor! It's the famous acme text editor by Rob Pike. It's an interesting editor, very different from Emacs or Vim, and yes, very mousey. In this video Russ Cox gives a great overview: https://youtu.be/dP1xVpMPn8M
I looked at the macro expansion of the form you wrote and it looks like gibberish, so I don't think the :hook
keyword allows expressions to be used as hooks, you need to define a function and use the function name:
(use-package pascal ; presumably
:init
(defun remove-pascal-completions ()
(remove-hook 'completion-at-point-functions
'pascal-completions-at-point t))
:hook (pascal-mode . remove-pascal-completions))
Also, the weird single quote character you used probably doesn't work in Emacs (but maybe you have normal single quotes in your file and it's just lemmy's markdown messing things up).
Blatant advertising for one of my packages: Embark has convenient key bindings for all of the commands discussed in this article. If point is on active region and you call embark-act, the s prefix has all of the sort commands there, reverse-region is on r, and delete-duplicate-lines is on d. I tend to forget all the sort commands, so I often call embark-act on a region, press s, and then C-h to get a list of them.
org-ql is an end-user package, you don't need to be a programmer to use it. It has commands to search among your org files and most options can be customized through Emacs's customize interface. I highly recommend it for searching through org files, I find it much easier to use and also faster than the Org built-in search commands. Check out the project's README file, which includes a bunch of screenshots and animated GIFs showing org-ql in action: https://github.com/alphapapa/org-ql