reddit / emacs

What have you recently *removed* from your Emacs configuration?

b3n · 2022-05-09 14:40
I came across [this old post](https://www.reddit.com/r/emacs/comments/273vey/what_have_you_recently_removed_from_your_emacs/), and thought it would be interesting to ask again. Emacs has changed a lot in the past 7 years, with packages coming in and out of fashion. and core Emacs continually improving and evolving with each release. So what have you recently _removed_ from your Emacs configuration?
b3n · 2022-05-09 14:41
For me I recently removed the rg.el package from my configuration. It's an excellent package, but I wasn't using any of the features it provided. I instead switched to simply using the built in `grep-find` configured like (grep-apply-setting 'grep-find-command '("rg --no-heading --with-filename '' --glob='' " . 34)))
MhvxvLvJrg · 2022-05-09 14:54
Projectile Nothing against it, but trying to use the built-in project.el
ambihelical · 2022-05-09 15:15
Ditto. I do have something against projectile though. Having hacked on it, I know it's not very well designed and that actually prompted me to work on my own approach for a while before trying project.el. Also I removed perspective at the same time. I'm not sure if this is because I've gotten better at buffer management or if project.el works so much better that it's not necessary.
AblatedSprocket · 2022-05-09 15:27
Thanks for this, I'm always looking for packages to cut. I use rg-project a lot, but I suspect something similar to what you have here can be done.
Alan_Shutko · 2022-05-09 15:29
I did a cleanup a few weeks ago. I got rid of a bunch of functions that related to jobs I haven't worked at for 20 years or technologies I haven't used in a long time. I removed my personal copies of a bunch of packages that had versions in ELPA/MELPA. I also removed the C-s binding I had for swiper-isearch because regular isearch is more useful for me and much easier to use in macros.
AblatedSprocket · 2022-05-09 15:35
I dropped flycheck for flymake. Seems to work well for my purposes. Also dropped company, but that one's an asterisk because I replaced it with corfu. I may even drop corfu; I've read about using consult for completion at point and have waanted to try it out.
nv-elisp · 2022-05-09 16:04
What about projectile's design do you find lacking?
aard_fi · 2022-05-09 16:33
Removed any installed packages, and fully disabled anything packages. I never really liked the packaging system, and had a few issues where it actively made things harder for me - now I'm back to fully using everything I care about from git, in various forms.
noman_032018 · 2022-05-09 16:39
Loads of commented-out older projects for completion in a number of languages that just aren't needed anymore because a) Emacs now has completion functions in modes for them, b) I don't use them anymore, c) Eglot & LSP.
patrick_thomson · 2022-05-09 16:45
I switched from `undo-tree` to [`vundo`](https://github.com/casouri/vundo) and am favorably impressed.
ambihelical · 2022-05-09 17:15
It's been awhile, but I remember a few things I found particularly with the indexing/caching feature, which I needed for large projects at the time because otherwise it was too slow finding files. One was the multiple ways of indexing projects each had subtly different behaviors and limitations. Some ignore features worked with one indexing method, but not another, there was little attempt to do one thing well, it was more like this way is slow, so lets try this other way, and not worry too much about this other feature breaking because of it, it's ok because it's faster. And when you dove in to try to fix things you realized how impossible it will be to avoid fixing one thing without breaking another. Just poor engineering in that sense. I don't actually expect much more from open source in general, so I think it is par for course rather than being an outlier. Project.el just seems to be a bit better thought out.
Blytheway · 2022-05-09 17:17
Org roam. When I had to commit to using links the org roam way for org roam v2, I realized I didn't really need nodes and backlinks. The thing I really needed was just the ability to make quick links between notes. I replicated that functionality in an afternoon. Still a fantastic package but just not for my simple use cases.
terxw · 2022-05-09 17:28
Can you share your solutuon, that is exactly what I am trying to achieve, I am currently trying org-super-links.
MmmCurry · 2022-05-09 17:34
I found these changes for 2022: * golden-ratio-mode turned off. I used it for a couple years and enjoyed it for pure code editing, but it takes a lot of customization to eliminate annoying interactions with popups when using shackle/popper/etc. * lsp-mode (+ui) and flycheck turned off in favor of eglot and flymake. Trialing this for rust dev and so far it's lighter weight and way less annoying by default. * selectrum/prescient turned off in favor of vertico. Not sure where I'll end up here as I kind of miss prescient's smart ordering sometimes. * org-tree-slide and org-randomnote removed because they've been unused for years. * hydra: Removed because I'm using transient instead now. Honestly wouldn't recommend the same switch for people already happy with hydra because it's easier to understand for the use cases it supports well. But transient's now built in and pretty damn cool once you get it. Like other posters I'm also thinking about trying the projectile->project.el switch but haven't done it yet.
b3n · 2022-05-09 17:43
Isn't org-mode's default `C-u C-c C-l` binding already a quick way to link from one file to another?
pailanderCO · 2022-05-09 17:44
Magit. It always messed up my pushes, I don't know why.
na85 · 2022-05-09 17:51
I just don't understand what projectile actually *does*. It lists stuff like "grep (search) in project" as a feature, but isn't that the normal use of grep? Are projectile users spreading projects out over multiple directories all over their disks? I have a project root and underneath that is src/ and lib/ and whatever else, so if I want to grep I start at the project root directory and I... grep it. I don't understand how projectile's "grep through a project" is different than "just using grep the regular way" which emacs already does.
vifon · 2022-05-09 17:54
At the very least it ensures to always start the grep at the root of the project. Then we have the gitignore support and other such features.
MereInterest · 2022-05-09 17:55
These were mostly changes that I made after a recent cleanup of my `.emacs` file. It had gone several years without being cleaned up, and had accumulating quite a lot that wasn't needed anymore. * [Rudel](http://elpa.gnu.org/packages/rudel.html). I hadn't used it in nearly a decade, and even then I had only experimented with it for a few months. * A workaround [for a bug](https://emacs.stackexchange.com/questions/58424/is-elpa-broken/58434#58434) that was fixed in 26.3 * Removed `(require 'cl)`, deprecated for `cl-lib` in 27.0. * Removed `(require 'cl-lib)`, hasn't been needed since 24.3 * Removed a custom function to auto-install packages, because `use-package` does everything I need way better than I did it. * Removed a line that cleared out `magic-mode-alist`, because it's been over 5 years since I've been on the machines that had an overly zealous `site-start.el`. * Removed some Windows-specific handling for `emacs --daemon` that had never really worked right in the first place. * Removed a setting for `rst-level-face-base-light`, which had been obsolete since 24.3. If I recall correctly, it was to correct a color choice that looked awful for any dark theme. * Removed some configurations for racer+company mode in Rust, because LSP with `rust-analyzer` was easier to set up.
MmmCurry · 2022-05-09 18:00
I'm also considering a switch like this since I haven't been using backlinks at all in practice.
whompyjaw · 2022-05-09 18:06
I’m still learning emacs config, but isn’t that something you could easily replicate in a few elisp functions? Edit: elisp typo
whompyjaw · 2022-05-09 18:09
Oh so you just download all your packages using git and source those from your init file? Instead of using the emacs package manager?
quboid42 · 2022-05-09 18:17
Hacks for ADM3e terminals. This may not be the sort of answer you were looking for. :)
vifon · 2022-05-09 18:19
Which is precisely what projectile and project.el are. Back in the day there were no functions like `vc-root-dir` in Emacs (if you're not familiar with it, it finds the root of the current project), so projectile stepped up and provided them (`projectile-project-root`). And then added some handy relevant user-facing commands. Of course you could implement a bare bones version of it on your own in half an hour, but this way we don't need to.
cradlemann · 2022-05-09 18:20
company-mode was replace by corfu
by_wicker · 2022-05-09 18:24
It's just a way to run git commands so I'm not sure how it could mess them up.
Icommentedtoday · 2022-05-09 18:24
What do you mean messed up your pushes? Could you elaborate? Maybe we can help you out because I absolutely think using magit is so much easier and quicker as compared to e.g. command line git
ifixcomputers4money · 2022-05-09 18:26
I removed Magic, not because it’s bad or difficult or anything. I removed it because I wasn’t using it in a way that felt more productive than the built in VC stuff. I’m not a developer, so I don’t need things like blame or branching often.
aard_fi · 2022-05-09 18:27
The stuff I want to have available on all machines lives as submodules in .emacs.d. The stuff I only use occasionally I just clone to one of the directories my setup searches on startup - if it finds a repository there it'll load it and apply my configuration, if not it'll just ignore it. Some stuff I also have packaged as RPM packages, and install system wide - though that's mostly a legacy thing, and outside of bits requiring compilation of C bits I don't really add to that anymore. My setup predates package support in emacs quite a bit, and with easy access to history, easy review of changes and easy change of revision used is more useful to me than the package manager. I've used the package manager for some simple stuff (like dash) - where I didn't want to pollute my submodule list for single file modules. I now adjusted what I had for the old downloading from emacs wiki, and just pull those files directly into a subdirectory in my .emacs.d, updating them as needed.
nv-elisp · 2022-05-09 18:29
> Just poor engineering in that sense. I don't actually expect much more from open source in general Can't speak to the design of project.el, but that statement seems like an arbitrary conflation. The fact that a project's source code is open source has little to do with it's content. On the obverse, it being closed source has no impact on its quality either.
agumonkey · 2022-05-09 18:29
yeah that's the idea, nothing is "new" in projectile except the fact that it scopes all this things on a per-project basis which is a great thing
agumonkey · 2022-05-09 18:30
Very interesting thread :) thanks /u/b3n
agumonkey · 2022-05-09 18:32
wow, so cute :) feels like playing SMB
agumonkey · 2022-05-09 18:35
interesting, I never had any issues is there an open bug report for this ?
whompyjaw · 2022-05-09 18:35
Oh wow. I never thought of doing that but I really like that idea. Especially for protecting against one plugin breaking another. It seems it could be easier to “go back” than messing with the commands of a PM. Are there any significant caveats you ran into that makes this more tedious than a PM or any cons? Personally, I just became familiar with sub modules and they seem awesome. So I might give this a try.
whompyjaw · 2022-05-09 18:37
Ahh ok. Thanks for elaborating. I know of projectile, but I’ll have to look into project.el.
pailanderCO · 2022-05-09 18:45
To elaborate: Whenever I pushed a commit to my GiHub repo, I always got the "merge conflict" error, which I didn't get when using the terminal. And when I forced the push, my remote and local repos got out of sync (and then I would have to reset/rebase the local one from scratch). This happened to me several times, so much so that I decided to avoid using Magit. I really don't know what caused the problem.
asymptotically508 · 2022-05-09 18:45
> lsp-mode (+ui) and flycheck turned off in favor of eglot and flymake The lsp-mode stuff feels like a whole different universe, while eglot integrates nicely with everything that comes with Emacs.
Hamilton950B · 2022-05-09 18:46
A couple blocks of code beginning with (if running-epoch and (if (string-equal system-type "Domain/OS") I switched from epoch to gnu emacs around 1992, and haven't run Domain/OS since about 1995, so I guess it's about time.
Hamilton950B · 2022-05-09 18:50
I swapped my ADM3 for a Z-80 around 1980. I didn't even start running emacs until the following year.
Blytheway · 2022-05-09 18:56
Yeah it's pretty much this but just with the added step of already defining the link prefix.
nv-elisp · 2022-05-09 19:03
This sounds more like you're misunderstanding git than magit doing something wrong.
7890yuiop · 2022-05-09 19:03
Most recently, I recently removed ELPA package support for Emacs 23. A few months earlier I removed `sass-mode` and its dependency `haml-mode` in favour of the (now) inbuilt `scss-mode` which turned out to work better for me. I also removed some custom facilities for disabling `whitespace-mode` in certain situations, because I stopped using `whitespace-mode` at all many years ago.
pailanderCO · 2022-05-09 19:11
Perhaps. Though I have no problems at all using Git from the command line.
7890yuiop · 2022-05-09 19:22
Even if you're using a package manager, I'd recommend having your (whole) config in version control. This lets you trivially clone it in a known working state, and easily roll back any changes if you later find that you need to. Lots of people seem to exclude packages from their config repository, which I've always found a mysterious approach.
emacs_expert · 2022-05-09 19:25
I would do this but how do I get `project-find-file` to order by the most recent files?
7890yuiop · 2022-05-09 19:27
Magit is unlikely to be doing anything 'wrong', but there's clearly some kind of problem or confusion here. If you're happy with your current workflows, that's all good. If you kinda miss some of the Magit functionality, this sounds 'fixable' to me, so I'd suggest that you post a question with as much detail as possible about the issue -- chances are that people will help you to debug the issue.
emax-gomax · 2022-05-09 19:42
You can use company and consult+completion at point at the same time. I have it bound to C-: and use it when I'd like to filter completions much more quickly. It's nice, but I wouldn't replace company with it.
emax-gomax · 2022-05-09 19:43
Honestly. I think org roam ui is a better gift from org roam than everything else. Being able to visualise my notes at such a high level is so cool.
emax-gomax · 2022-05-09 19:47
I've looked at the code as well... it's kind of a mess. There's a bunch of features that evolved over time but you can tell there's more that we're likely forgotten about and the subtly deprecated because they were unusable. For example did you know you could bind a function to run compilation. Maybe with rustic mode. There's code in projectile that makes it look like you could, but you can't anymore because if you bind a function now it'll be used to generate a compilation command string. That's just one of the examples I've got. There's also the fact it seems to concern itself with way too much. It supports finding project files, jumping to tests, jumping to related files by suffix, indexing tags, wrappers around grep commands, ibuffer and occur, separate compilation, run and test commands and more. It's honestly a great out of the box experience which is why I still use it but trying to do anything non trivial has been a nightmare for me.
emax-gomax · 2022-05-09 19:51
> so I guess it's about time. You fool, just two days before epoch was finally ported to Linux. Now you'll have just to tolerate the mountains of cool new features GNU emacs has and epoch likely never will. /s Edit: in all seriousness, cool, I'd never heard of epoch before.
Blytheway · 2022-05-09 19:54
Just took a look at the project. That does seem absolutely amazing
hkjels · 2022-05-09 20:17
I used projectile earlier, but switched to project.el. It has all the features I used in projectile, but with less ceremony.
quboid42 · 2022-05-09 20:24
I used them regularly from 1995 to 1997. I think I last used one in 1998. They meant that I learnt to use Emacs without the cursor keys!
nibbble · 2022-05-09 20:32
I keep C-s for swiper and use C-r and then C-s to launch isearch when needed (macros basically). Best of both worlds.
laniusone · 2022-05-09 21:05
Tabs and Nerdtree. Both of these didn't work really well for me, and used them mainly to mimic my previous IDE. Ended up just using tabbed i3 layout for Emacs frames (way snappier 'tabs'), and dired (+ranger plugin) for browsing project files. Way better experience.
whompyjaw · 2022-05-09 21:09
I actually just wrapped my dotfiles yesterday haha. Stow + make is a great combo. But you make a good point, I never thought about VCing the text editor packages haha. Always tutorials that tell you to use *this* command to download all plugins when you spin up your editor, but why not just have it already setup so you don’t even have to deal with downloads. And I swear every time I did that, something went wrong and a package failed to download. Thanks for sharing this. I’m def gonna give it a shot.
redblobgames · 2022-05-09 21:20
I loved epoch!
nandryshak · 2022-05-09 21:27
If you press `$` in the magit status buffer you can see exactly which commands magit is running, which makes it easy to know why something is going wrong. I suspect your remotes were not setup properly.
pailanderCO · 2022-05-09 21:31
I'll try that, thanks.
pailanderCO · 2022-05-09 21:31
Yes, I'll give that a try.
Hamilton950B · 2022-05-09 21:47
I don't remember what exactly, but it had some nice features that were missing in gnu emacs. I was reluctant to switch but the writing was on the wall.
recencyeffect · 2022-05-09 21:50
The lisp curse is real :)
Kwisacks · 2022-05-09 22:13
I still think the results buffer of rg.el is nicer and more convenient.
ALLCAPSNOBRAKES · 2022-05-09 22:19
i got rid of posframes. with EXWM at least they sometimes disappeared and were generally kinda buggy feeling
Blytheway · 2022-05-09 22:20
Very simple solution that just creates a new note, searches through notes using grep and adds a link for an already existing note. I would've used `org-insert-link` but I couldn't figure out how to automatically add the `file:` prefix. This code assumes that you have the variable `org-file-path` defined. ;; https://stackoverflow.com/questions/66574715/how-to-get-org-mode-file-title-and-other-file-level-properties-from-an-arbitra (defun ndk/get-keyword-key-value (kwd) (let ((data (cadr kwd))) (list (plist-get data :key) (plist-get data :value)))) (defun ndk/org-current-buffer-get-title () (nth 1 (assoc "TITLE" (org-element-map (org-element-parse-buffer 'greater-element) '(keyword) #'ndk/get-keyword-key-value)))) (defun ndk/org-file-get-title (file) (with-current-buffer (find-file-noselect file) (ndk/org-current-buffer-get-title))) (defun jparcill/org-roam-lite-new-note () (interactive) (let ((note-name (read-string "Name of note:"))) (find-file (concat org-file-path (format-time-string "%Y%m%d%H%M%S" (current-time)) "-" note-name ".org")) ) ) (defun jparcill/org-roam-lite-search-org () (interactive) (let ((search-text (read-string "Search: "))) (grep (concat "grep --color=auto -r -niH --include=\*.org --null \"" search-text "\" " org-file-path)))) (defun jparcill/org-roam-lite-link-note (file-name) (interactive (list (read-file-name "File Name: " org-file-path))) (progn (message (concat "inserted " file-name)) (insert "[[file:" file-name "][" (ndk/org-file-get-title file-name) "]]")))
sebhoagie · 2022-05-09 22:22
I’ve tried moving from company to corfu a couple times but even in elisp (so no special backend) the candidates it shows are quite different from company’s.
eshelyaron · 2022-05-09 22:23
I removed Vertico recently from my config in favor of the plain built in completions with the new minibuffer-next/previous-completion functions from Emacs 29 which I bound to C-n/p After a couple more tweaks to the default Completions buffer I got quite a satisfying result also in terms of aesthetics. See [the Completions section of my configuration](https://eshelyaron.com/esy.html#completions) for details.
mclearc · 2022-05-09 22:41
Probably the biggest recent difference was replacing persp-mode, eyebrowse, and projectile with the built in tab-bar and project.el. I wrote some code to link them together, and now it is its own package (https://github.com/mclear-tools/tabspaces). I also got rid of posframe. I can have the minibuffer open at the top of the frame using `display-buffer-in-side-window (side . top)` which is good enough for me. I also got rid of ranger for dired and general for bind-key (since I was already using use-package, bind-key basically comes for free). Got rid of flycheck for flymake (https://github.com/mohkale/flymake-collection makes this a lot easier!). I also moved from evil to the less intrusive meow for modal editing (https://github.com/meow-edit/meow).
Fearless_Process · 2022-05-09 23:07
One example is that it's able to find project root directories based on different "signatures" (makefile, cmake files, git repos, cargo.toml, etc). Other packages can then call the projectile functions to query some of this info. This is one of the things that I like more about lsp-mode over eglot! lsp-mode uses projectile instead of project.el, and it is able to figure out my project's root dirs much more reliably than eglot is able to. In the worst case you can just just a file named `.projectile` in the root and projectile will find that. I agree about the grep functions though, I never thought those were super useful but I suppose they could be handy.
Fearless_Process · 2022-05-09 23:29
I also do not like the built in package system. Instead of using package.el, I use the gentoo package manager to handle all of my emacs packages. The gentoo package repo has most of the popular emacs packages and writing your own ebuild for ones that don't exist is very easy. Gentoo has a little DSL designed for creating packages, with something called "eclasses" that you can pull in that will automate common tasks like batch byte compiling source files and regenerating the gentoo site lisp init files. Elisp ebuilds mostly only need to have a link to download source files and some other metadata like the license of the package and whatnot, and everything else is handled for you! [Here is an example ebuild for company mode.](https://github.com/gentoo/gentoo/blob/master/app-emacs/company-mode/company-mode-0.9.13.ebuild)
hmelman · 2022-05-10 00:02
I found savehist-mode added enough smart ordering for vertico that I don’t miss prescient. And orderless is great.
No-Command-791 · 2022-05-10 01:50
>selectrum/prescient turned off in favor of vertico Same, except I switched to `icomplete` \+ `orderless`. Much happier now.
oantolin · 2022-05-10 03:03
Great question! The answers so far are pretty interesting. I *love* removing stuff from my configuration. Here are the last dozen things I've removed: 1. `electric-pair-mode`. I thought it was going to be hell getting along without it and, to my surprise, it was very easy going. I didn't miss it at all after a day. Trying this had been in the back of my mind for about a year since I read this [conversation between u/00-11 and u/clemera](https://www.reddit.com/r/emacs/comments/l7khmk/comment/gl9fcqs/?utm_source=share&utm_medium=web2x&context=3). 2. MCT. This I did not love removing, but I stopped using it because u/protesilaos is discontinuing its development and I mostly just wanted to help test MCT. I went back to Vertico, which I'm extremely happy with. 3. `embark-act-quit` This was a tiny command that ran `embark-act` and quit the minibuffer. It's not needed anymore since you can easily toggle whether you want to quit with `q` right before choosing the action. I much prefer "late-binding UIs". 4. icomplete-vertical. Here I mean I uninstalled my own package of that name because I thought it had been made obsolete by the new built-in package of that name. But not quite: the built-in one doesn't not seem to support `group-function`, and if you toggle from vertical to horizontal during completion the it neglects to resize the minibuffer. So I guess if I actually used icomplete-vertical at all I would reinstall my package... 5. j-mode. This package *redefines* `if-let` and `when-let` slightly incompatibly! As soon as I realized that I kicked it out unceremoniously from my configuration and wrote my own major mode for J. All I really wanted was "send to inferior J interpreter" anyway. 6. align-matches. This was a little wrapper I had over `align-regexp` which was not pulling its weight. I booted it out in favor of using `align-regexp` directly. 7. `fit-window-to-buffer-max-40%`. This is was a function I mostly used for `display-buffer-alist`, but also in some hooks to keep some windows short as their contents changed. I now realize that for the most part, automatic resizing is too jumpy for me. 8. `display-buffer-alist` configuration. I had little of it and it was only very slightly different from the defaults, so I decided to try just living without my `display-buffer-alist` configuration and I actually don't miss it at all. 9. cape. This is a great package that I simply don't need. It has completion functions for a bunch of things I do need to complete, but I have my own workflows for each with slight advantages. I hardly ever used it while I had it installed. 10. OK, maybe this shouldn't really count as a removal, but I removed group information from file listings in dired buffers. That is definitely meant for multi-user machines and is probably pretty useless for most single-user systems. 11. I had a little command that prompted me for a calc command reminding me of the key bindings. It was only slightly different from `calc-execute-extended-command`, so I removed it and am using that built-in instead. 12. For a while I used the eww bookmarks source for `consult-buffer` from the consult wiki. I decided instead to add all my eww boomarks to webjump, and removed that source.
oantolin · 2022-05-10 03:11
I didn't go as far as removing Magit, but I do prefer to do practically anything that can be done with VC that way. I still keep Magit around for when I very occasionally need its fancy features. Even if I only use Magit once every several weeks it's worth having it so I don't have to type `git` commands in a shell, like a caveman.
a-c-d-w · 2022-05-10 03:32
I use consult exclusively for capf. I've tried corfu/company and honestly having one UI for all completion just makes more sense to me.
a-c-d-w · 2022-05-10 03:36
I need to try this out with the new functions.. thanks for the config!
akirakom · 2022-05-10 03:39
- `dired-open`: Use embark instead - `consult-dir` and `consult-project-extra`: I wrote custom functions instead - `all-the-icons`: I didn't need icons
hkjels · 2022-05-10 05:40
What you want is savehist and possibly team that with vertico
HARITHKAUSHIK16 · 2022-05-10 06:36
I dropped EAF (Emacs Application Framework). It was a lot of fun while it lasted, but firefox does most of the things EAF does, but better.
harunokashiwa · 2022-05-10 07:26
deadgrep.el is neat https://github.com/Wilfred/deadgrep
redback-spider · 2022-05-10 09:21
Do you mean corfu? If not link?
cradlemann · 2022-05-10 09:22
Yes, sorry for the typo
That1M8Head · 2022-05-10 09:34
centaur-tabs
redback-spider · 2022-05-10 09:35
It's a bit hard to track it down and >90% of the time I just add stuff, but I could say that on a 2nd machine I did some tests which includes removing things. So that would be things I think about "removing" or "replacing" more than fully commit to that on my main machine yet, I can list them: 1. attempts to "remove" exwm and replace it with i3 / rofi and reimplent some emacs internal things with rofi (find-file, select-window(buffer)) and attempts to have single window per frame setup, so to make i3 behave as much as possible like exwm. 2. replaced kind of I guess IDO with vertico (vertico-posframe)
cradlemann · 2022-05-10 09:59
> I also got rid of posframe. I can have the minibuffer open at the top of the frame using > display-buffer-in-side-window (side . top) > which is good enough for me. Can you share your solution for this?
PawarShubham3007 · 2022-05-10 10:16
Is there a way to use this with evil-mode
gnuvince · 2022-05-10 10:48
- I removed the package ace-window, which I used to swap windows. Instead, I activate windmove's swapping bindings (`M-x windmove-swap-states-default-keybindings`) and use those. - I removed ivy and counsel in favor of vertico and consult - I removed company-mode and just use capf instead - I removed neotree, I never really used it and when I need a directory view, dired is more useful to me. - I ditched lsp-mode in favor of eglot - I removed some of my custom keybindings and use the built-in ones instead. For instance, I used `M-o` for occur—now I just leave it as `M-s o`. I use occur often, but not often enough to save the one key stroke. Also, since I removed counsel, I removed a keybinding for `counsel-git` and now use `project-find-file`. - I removed browse-kill-ring: the new behaviour of `M-y` in Emacs 28 + vertico makes it unnecessary. - I removed pulsar: I wasn't really benefiting from it - Some configurations that I had carried around for a while (e.g., making `next-line-add-new-line` be nil) are no longer necessary because the defaults have changed.
hagerty9009 · 2022-05-10 11:15
This is pretty timely, as I’m looking to remove Doom Emacs from my config soon. I really enjoy it, and it’s definitely great, but I feel it’s pretty heavy when I really just need something for LSP and a few ornaments on top of org-mode.
AblatedSprocket · 2022-05-10 11:58
I'm thinking I'll feel the same way. I always wanted completion popups coming from other IDEs/VS Code, but they can be a little intrusive.
MunsterPlop · 2022-05-10 11:58
If you're using Emacs 28, setting `evil-undo-system` to `'undo-redo` should work.
PawarShubham3007 · 2022-05-10 12:11
So basically install vundo and set `evil-undo-system` to 'undo-redo right?
MunsterPlop · 2022-05-10 12:49
Yup
mattplm · 2022-05-10 13:13
"Recently" I removed ivy/counsel/swiper to use the consult/embark/vertico combo and I enjoy it a lot. Not that I wasn't satisfied with Ivy, in both cases I don't use many of the features provided by the packages. It just feels more discoverable and easier to setup IMO.
ambihelical · 2022-05-10 13:31
I think that’s incorrect. I’ve noticed definite differences in development of the two. OSS tends to have missing parts and rot that no one wants to work on. Commercial sw also has the same but it’s things the company doesn’t want to spend money on. So they tend to be different things. As to relative quality, I dunno, I didn’t intend to imply closed is better.
mclearc · 2022-05-10 13:56
I use vertico and vertico buffer to achieve this, but I bet it would be doable with other completion packages. Here's the relevant setup with use-package and straight: ```emacs-lisp (use-package vertico :straight (:host github :repo "minad/vertico" :includes (vertico-buffer) :files (:defaults "extensions/vertico-buffer.el")) :hook (after-init . vertico-mode)) (use-package vertico-buffer :after vertico :custom (vertico-buffer-hide-prompt t) :config ;; put minibuffer at top -- this is the more natural place to be looking! (setq vertico-buffer-display-action '(display-buffer-in-side-window (window-height . 13) (side . top))) (vertico-buffer-mode 1)) ```
cradlemann · 2022-05-10 14:03
Thank you, I will pick up your setup, as I also use vertico!
b3n · 2022-05-10 14:43
Excellent package! I have bound it to `C-x u`.
b3n · 2022-05-10 14:51
You don't need much to unify capf, something like this should do the trick: (defun completing-read-at-point (start end col &optional pred) "Inspired by https://github.com/katspaugh/ido-at-point" (if (minibufferp) (completion--in-region start end col pred) (let* ((init (buffer-substring-no-properties start end)) (all (completion-all-completions init col pred (length init))) (completion (cond ((atom all) nil) ((and (consp all) (atom (cdr all))) (car all)) (t (completing-read "Completions: " col pred t init))))) (if completion (progn (delete-region start end) (insert completion) t) (message "No completions") nil)))) (setq completion-category-defaults nil) (setq completion-in-region-function #'completing-read-at-point)
nv-elisp · 2022-05-10 14:57
Open source software bares it all, so it's easy to find flaws. Commercial software is often developed with different goals. If there were one general engineering difference I've noticed between the two, it'd be that commercial software is more risk adverse and tends to favor, for better or worse, established patterns. It's hard to make a fair comparison, though, because it's more difficult to examine closed source programs.
paretoOptimalDev · 2022-05-10 15:52
> I have a project root and underneath that is src/ and lib/ and whatever else, so if I want to grep I start at the project root directory and I... grep it. It sometimes breaks my flow to be in lib/utils/some/things.hs if I have to worry about my current working directory when I simply want to search the entire project.
paretoOptimalDev · 2022-05-10 15:59
If you ever get around to this, i'm super curious what was happening for some reason lol.
AblatedSprocket · 2022-05-10 17:47
I don't use org-roam, but this is the only reason that makes me come back to consider it every month or so.
pailanderCO · 2022-05-10 17:53
Sure!
enilkcals · 2022-05-10 20:56
I removed some of my mistakes (I'm sure I've not got rid of them all yet though).
No-Command-791 · 2022-05-10 22:42
I agree that the new `yank-pop` behavior (and, even better, `consult-yank-pop`) mostly deprecates `browse-kill-ring`, but I find that `browse-kill-ring-edit` still comes in handy sometimes.
redguardtoo · 2022-05-11 00:17
I removed all the light color themes to save my macbook's battery power.
dpassen1 · 2022-05-11 00:39
I've found [zoom](https://github.com/cyrus-and/zoom) works better than golden-ratio-mode for me.
ramin-honary-xc · 2022-05-11 00:39
> I keep C-s for swiper and use C-r and then C-s to launch isearch when needed (macros basically). Best of both worlds. I have the exact same setup as this. But I am starting to think the original built-in isearch is more useful to me, I might actually remove swiper, or put it on a lesser-used key.
ramin-honary-xc · 2022-05-11 01:44
- `perspective` - I don't use tabs either, I just learned that I personally don't need to isolate projects into their own "perspectives" or "tabs." It is just additional mental burden that adds very little to my workflow. - `smartparents` - I had basically customized this to the point where it was identical to `paredit`, so I just switched back to the built-in `paredit`. - `dante` - is no longer maintained, and most functionality is managed by LSP now, so lsp-mode or eglot replaces this. - `envrc` - I don't use a CLI to do work so much anymore, and I never really liked `direnv` anyway. It was nice deleting `direnv` from my OS. Directory local variables do the job of `direnv` for me now. - `nix-sandbox` - I couldn't use this because it would evaluate a Nix Shell computation *syncrhonously* which could freeze Emacs for a good 10 minutes or more at times. - `git-annex` - seemed like a good idea at the time, but implementation leaves a lot to be desired. It is much better to manage large pools of data at the OS level, rather than the application level, using Btrfs or ZFS and snapshots.
ideasman_42 · 2022-05-11 05:06
Never used projectile, but never found the need for it. I just open files from the terminal to work on the project I'm interested in.
zuma0 · 2022-05-11 10:46
Is this used instead of undo-fu? Does it only provide the visualation?
sweetyhoneybee · 2022-05-11 12:21
Can you post a picture to show-case the aesthetics?
eshelyaron · 2022-05-11 12:50
Sure, here's an example of what it looks like when I do `C-h f complet C-i`: https://ibb.co/3YKtR2p (Apparently, Reddit doesn't support having images directly in comments)
ideasman_42 · 2022-05-11 13:54
You can use both, `undo-fu` for quick undo/redo, `vundo` for walking around the tree structure (which is handy but you only do very occasionally in my experience).
annisquam · 2022-05-12 16:19
Just removed `emojify` after updating to Emacs 28
Solatle · 2022-05-14 11:20
Why TAB complete not working when cursor switched to the minibuffer? Have to use ENTER (minibuffer-complete-and-exit) to trigger completion list buffer.
a-c-d-w · 2022-05-18 03:31
If you use consult, there's the [consult-completion-in-region](https://github.com/minad/consult#miscellaneous) command, too.
evlogii · 2022-06-06 17:29
Hi. I have a newbie question. What's `capf` and how to use it? Where I can read about it? Google gives me some `company-mode` related stuff, none of which seems relevant.
ocodo · 2022-09-25 06:01
This is a compelling reason to move to 29.x asap.
ocodo · 2022-09-25 06:02
I use C-M-s for swiper, but as a result I rarely use it.
ocodo · 2022-09-25 06:05
Check out https://with-emacs.com/posts/tutorials/customize-completion-at-point/
ramin-honary-xc · 2022-09-25 18:18
`C-M-s` is bound to the `isearch-forward-regexp` function, which I use all the time, I couldn't re-bind it to `swiper` or anything else.
ocodo · 2022-09-28 09:23
I realized later that I posted a typo there. I use `Esc` `C-M-s` for Swiper.
inglourious_basterd · 2022-10-14 01:19
* org-roam: never used it * lsp-mode: I can't have it take 4s to open a ts file