Rendered at 08:00:02 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
rmunn 24 hours ago [-]
The two things about Emacs I would love if I used it (tried twice, bounced HARD off the keyboard controls both times. I hate modifer+key control schemes — give me modal editing any day — and I don't even have RSI!) are magit and org-mode. I've never tried magit so I don't know if lazygit is a decent substitute. But for org-mode in Neovim, there's https://github.com/nvim-neorg/neorg. I'm sure it's only a partial, half-broken implementation of the real org-mode, but it covers the parts that I need most, structured note taking.
If you're a diehard modal-editing aficionado like me and think that Emacs is a great IDE but it's a shame about its editor (and its keyboard scheme), maybe give neorg a try. Might well make you shift away from notes.txt files.
And yes, I know I could just use `evil` in Emacs. Maybe someday I'll overcome my decades of learned resistance to running Emacs, but every time I see the Emacs control scheme, I wince and I'm reminded why I don't use it. Having some key combos be "hold down the Control key while you press two keys" (like `C-x C-s` to save a file) while other key combos are "hold down the Control key while you press one key, then release it before pressing the second key" (like `C-x s` to save all files) is just not going to fit into my brain. Maybe that's intuitive for some people, but it just doesn't work for me. And so I bounce off Emacs before ever giving it a real chance.
flaunf221 22 hours ago [-]
Keyboard control schemes annoy me a lot, because most of them can be described as "draft of a potentially good idea that became holy book and engineering was forgotten".
For example - let's put "go all the way to the right" on the left button. And "go all the way to the left on the combo of modifier with right button". I'm talking about 0 and $ (Shift+4) for vi. It's not consistent, it's not ergonomic or easy to input when properly touch typing. It's almost an accidental control scheme because it was based on no longer existing keyboard keycap labels. And in this case where you can't even exit vi without first reading a manual, half an hour reduction in learning time that you get from remembering that `i` is Insert will not compensate for hundreds or thousands hours using later when you will be pressing button not by looking at keyboard but by muscle memory.
rmunn 21 hours ago [-]
Huh, I never noticed that 0 is on the right side of the keyboard, even though obviously I type it every day so I knew that at some level. Because I think of the vi keybindings by their meaning, not their location. `y` is yank, `d` is delete (and copy to the clipboard, so basically cut, but the mnemonic is delete), and `0` is go to column 0. And `$` means end of string in regex, so that's what it means in vi. (And `^` is the vi shortcut for "go to first non-whitespace column", which is close enough to the regex meaning that I find it easy to remember as well).
Yeah, if keyboard positioning matters to your brain then you're going to be really annoyed by 0, a key far to the right, meaning go to the left. But the only vi keystrokes that are assigned by keyboard position rather than meaning are the h/j/k/l navigation keys. Everything else has a meaning-based mnemonic, and until I read your post I hadn't ever thought about their position. I want to press 0, my touch-typing class from my teenage years has drilled that key's location into my hindbrain, so my fingers reach up and press it without thinking about its location at all. The only thing that went through my concious mind was "I want to go to column 0" and then boom, I had typed it.
flaunf221 20 hours ago [-]
> Everything else has a meaning-based mnemonic, and until I read your post I hadn't ever thought about their position
My point is that position is the primary thing that's important for an editor when used for a long time. Your hands and fingers move in physical space, not over alphabet. They get tired and maybe get repetitive strain injuries over real movement.
Mnemomics way of setting up keyboard layout (or rather typewriter) would be to put everything in alphabet order. But we quickly realized that it's not a good way. `d` is where it is because according to (imperfect) research it's a common letter and so in QWERTY layout this letter should be on your home row.
Putting A-something on `a` because the word starts with `a` is not a long term design. Considerations should be based on usage. How often is this used? Put it closer to home row. Is it designed to be often used with another command? If often, those two probably shouldn't be on single finger. And so on.
There is argument for easier start - except that I said already - modal editors are unusable without reading docs first, so that argument doesn't really hold.
msdz 21 hours ago [-]
Have you heard of/tried using Helix [0]?
It’s a modal editor, so the basic vi/vim motions are of course there almost by necessity, but then it does a drastic shift to actions that were indeed engineered and thought-through intentionally, instead of being made up long ago and then accepted as gospel (love the analogy, by the way).
It’s now my favorite editor by far (not just because of how you use it to shuffle text around, but that is a big part of it), and has solved many of the gripes I had had with trying not to learn the basics, but getting really “at home” with standard vi/vim/neovim controls.
Your example would be <g-h> and <g-l> instead of 0 and $, which I find highly intuitive: Reuse the known left/right motion for a character, and prepend it with a “goto” to signify the whole line.
I've heard about it. I didn't try to look very deep it.
They claim they started from scratch and they still made hjkl.
jkl; would get you movement over home row without moving hand/fingers at all.
ijkl would get you movement without involving pinky and some people like that.
If you have (and I do) column-staggered ergonomic keyboard - meaning columns are shifted according for length of your fingers - hjkl makes you move fingers to columns that are slightly off.
I don't see a single objective benefit for choosing hjkl on its own. Yet it's still there and I don't take "they did in vi" as valid for new editor. They could make alternative scheme for vi-comers, but as main idea again?
What you mentioned - g-h and g-l - are definitely more consistent than what vi did.
13 hours ago [-]
precompute 21 hours ago [-]
This is fixable if you introduce another abstraction layer: a small split kb :)
0/$ doesn't matter when they're both one layer down.
tmtvl 23 hours ago [-]
For modal editing there's also meow, god mode, and devil. Personally I quite dislike modal editing because of how you have to work very, very slowly and smash every key to make sure you don't accidentally do something like delete half the file, save, and quit; but I do have escape bound to god-local-mode for those rare times I need a long chain of chords. M-x some-command is usually good enough for me when I can't be bothered to memorise the chord, though.
precompute 23 hours ago [-]
You should try using evil again. I use it full-time and 90% of my non-web-browsing work is in Emacs (the other 9% is in the terminal). It's very stable and IMO more full-featured than plain vim. In time you'll pick up some native emacs shortcuts to simplify your life but you'll still have modal editing everywhere. Best of both worlds.
rmunn 23 hours ago [-]
Emacs is definitely more full-featured than plain vim. But for me, I wouldn't be switching to it from plain vim, I'd be switching to it from a LazyVim setup. Which I've barely had to configure: it's an IDE straight out of the box. And to get that IDE setup back in Emacs, I'd have to learn which Emacs plugins do what, reconfigure several plugins' default keystrokes to match what LazyVim did because those are in my muscle memory now... it's a big effort. I won't rule out doing it someday, but for now it costs too much in lost productivity while I'm trying to get work done. Maybe sometime when I'm on vacation, and the temporarily-lost productivity doesn't cost as much.
But NeoVim has made writing plugins so much easier, even things like editing Lisp are getting not too bad. https://github.com/Olical/conjure has been a pretty decent substitute for SLIME, there's a paredit implementation that works well, and so on. So the need to switch is lower and lower, and the cost of switching stays high-ish, and so I haven't done it yet. Someday, as I said, I'll give it a shot.
P.S. I would be remiss in recommending LazyVim if I didn't at least once mention the really, really good https://lazyvim-ambitious-devs.phillips.codes/ book, which you can read online entirely for free. It's an excellent resource to learn LazyVim and what it adds to a vanilla NeoVim installation.
tecoholic 22 hours ago [-]
Let me share 2 words - Doom Emacs, Spacemacs.
precompute 21 hours ago [-]
You're right. Using vanilla emacs as an IDE means configuring evil, eglot and window management. You can use doom/spacemacs but they hinder future customizability because you'll be fighting against your config and doom's upstream changes.
Conjure looks great but IMO it's not a 1:1 substitute for tight coupling between editor functionality and internal tooling. If neovim gets 80% of the way to a productive coding setup then emacs helps hone that last 20%.
23 hours ago [-]
precompute 22 hours ago [-]
I wrote the following in response to a comment that was deleted before I could post my reply.
> Do you have any examples of these Emacs shortcuts that simplify your life?
> I tried using Emacs with Evil but I was just using it as a somewhat laggier Vim.
Learning how to use prefix arguments and writing interactive functions have been very useful. Whenever I want functionality that's just a little different than what Emacs provides, I can always write a function and bind it.
Emacs also comes with regional undo/redo and has great undo tree visualization plugins.
Another feature I've come to appreciate recently is the built-in per-frame and per-window tabs. I moved from using separate frames to using tabs. Tabs inside tabs lets you visit many files at once while keeping visual clutter to a minimum. (In Emacs parlance, a "frame" is the window your WM handles, and a "window" is a visible child of that frame)
Also, outline-minor-mode is really nice for annotating files with headings. You can define custom regexp and sidestep collaboration restrictions and quirky formatting.
The calc is super-useful.
file-local variables are useful. directory-local variables are incredible, they set up custom environments for all folders at the same level / below them. Imagine doing a (let) but over a directory structure.
Vim has default C-p completion. Emacs has hippy-expand, which IMO is better. Some glue around hippie-expand can also make it work with a drop-down completion interface like corfu.
Some examples:
In tab-bar-mode the tab nav functions don't wrap around. So I wrote a small wrapper around the tab nav functions. It's about 10 lines of elisp and handles forward, backward and tab creation. For neovim this would've been much more difficult. In emacs it involves basic functions: interactive, let and cond.
I have a small package that opens new scratch buffers and inherits the major-mode of the buffer it was invoked from. Very useful to write temporary code. One shortcut and it always works.
I have a function that opens all dired selected files in a new tab/frame. Great for organization. Basically you open dired, mark files and run the commands, and they're open in a new tab, and all marks are unmarked. So you can very quickly structure a project for work.
Another function that moves forward/backward to the next logical file. Saves me a trip to find-file / dired.
I have a monorepo that I code in and it has different folders for different languages / folders. Because it's a monorepo, file completion shows ALL files in the monorepo. And running a LSP server also starts at the monorepo root, which is not ideal. With directory-local variables, I can set a custom file (like .gitignore) to denote a repo root. So emacs (and LSP servers via Eglot) will consider the presence of that file the repo root and make it work like an independent repo.
((nil . ((project-vc-extra-root-markers . (".gitignore")))))
(I've been using Emacs longer than I used vim, so my experience is skewed. I also used it as a laggy vim (Doom Emacs) for the first few years, and then moved to a custom config, which helped me really understand what was happening under the hood)
Perhaps there is a vim plugin for each one of these; but I certainly wouldn't be able to do ALL of these by myself in vim! Also because many of these are built-in emacs functions, they're guaranteed to be supported for a very long time.
Grombobulous 3 days ago [-]
I’ve had an odd amount of difficulty finding a “perfect” notes app.
For me, mobile and desktop apps plus easy family sharing of individual notes are important.
Apple Notes is really the best I’ve got.
The other solutions I’ve found mother cost too much or have some odd dealbreaker features, or they’re over-complicated, or they’re ugly.
Zoho Notebook is on the ugly side but it’s cheap and has apps on all platforms.
Craft is pretty good but if you hit the need for the paid tier it’s a bit pricey.
I think it’s possible that vibecoding an Apple Notes clone is actually the best solution for me.
A lot of people like Obsidian but I think it’s a bit crazy, and I think it’s unacceptable how difficult it is to self-host the sync functionality, especially since again the paid tier is too expensive.
xtajv 3 days ago [-]
my deepest darkest secret is that i secretly really like macOS Stickies.app to jot things down with just enough WYSIWYG markup to capture an idea (before I immediately shuffle the idea somewhere else, e.g. emacs).
the application itself is relatively hideous, and I kinda see that as a feature (because the app is not particularly fit-for-use for just about anything else besides a quick "tmp" buffer with RTF).
2b3a51 23 hours ago [-]
Just wondering if MacOS people have looked at Eastgate Systems' Tinderbox application? I was a happy user back just after the Millennium.
(For me on Linux it is a directory full of text files with markdown and sometimes a groff pic diagram or even a metapost diagram (just starting with that one))
asdff 1 days ago [-]
The breakthrough on this for me is just using plaintext files. Talk about liberation. You can get as simple or as complicated as you want with those and also sync them anywhere, to basically anything, now and in the indefinite future.
Icarusfoundyou 21 hours ago [-]
I use Obsidian with links set to "path from current file" and disabled wikilinks. I then sync the files to a git repo (selfhosted forgejo) and with these settings, the links keep working even when looked at through forgejo's web-interface.
alt227 23 hours ago [-]
+1 for plaintext files. Nothing else gives me the flexibility and reliability.
jll29 23 hours ago [-]
plain text:
- longevity
- portability
- ease of processing
- cannot "break"
- viewable and editable with anything
Any other way is only acceptable if it can export to plain text.
1024bits 24 hours ago [-]
I'm working on Totem [0], feel free to give it a try! I try to post about it in the "What are you working on" thread monthly but haven't mustered the courage to do a "launch" yet.
It's cross-platform, Rust core with native UIs (Rust UI for Desktop, I'm using Iced [1]). I built it due to similar problems, and because I got tired of waiting on nvUltra [2].
Totem is meant to be more of a team/collaboration app in truth, but it turns out that realtime sync is also immensely helpful when working by yourself on multiple devices.
Everything is stored in SQLite and Markdown as well, but in a bit of an obscure location in a thin wrapper format (I might build in an escape hatch later on). The reason to do it this way is largely because allowing people to externally edit Markdown in a live sync context is tricky and I didn't want to make it super easy to screw yourself over.
P.S.: With consideration to the time that I am posting this...the iOS/iPadOS offering is currently restricted to a few countries. If you're not in those countries and are interested, let me know and I can add you to Testflight, or you can use the web version.
torh 1 days ago [-]
I just started using Obsidian with Word-Smith plugin [1]. And when I say "just started", I literally mean a few days ago, so I can't really give a verdict yet. Sync is handled by Dropbox.
I've settled on markdown with optional linking semantics. I've bounced around between the various popular apps, but having plain text files at the end of the day is important to me. I was quite happy with logseq and abandoned them as soon as they decided to invest in a database first model. Fortunately all of my notes were mostly just markdown and migration is relatively easy. In the era of LLMs I'm not really using a dedicated notes front end. I've got a notes system which includes the ability to add things to Family Apple Notes and Apple Reminders under various categories. My "LLM Assistants" can read my Apple Notes and Reminders so that's the way I stay in sync on most devices I own.
Moomoomoo309 3 days ago [-]
I use obsidian and use a third party plugin for sync and sync it to my NextCloud server.
23 hours ago [-]
illuminated 23 hours ago [-]
I have a pending task to tryout the COG [1]. The description makes it one of the best thought-through processes for me to write things down while not being a major time consuming event. Whenever I've tried in the past to take more notes, I'd had to plan a time to do it and it was very difficult to find time. Another problem I occasionally have is that if I write something down, my brain kind of let go of the most of the memory of it, so the more I write and organize, I feel more stupid.
Same happened with me, but with vim (I know emacs org mode is epic, but too much for me), I moved a quite large markdown file (I have even disk catalogues from .. ancient years) to a lot of platforms : SQLite, treeline, treeview, cherryTree plus more I don't remember now.. back to vim (with some Plugins like tablemode and folds)
after all, it's a text file anyway that can be opened with any darn platform out there..
crnkofe 23 hours ago [-]
I tried some of these note taking apps but eventually just ended up with a self-hosted wiki + Git/Forgejo/markdown. Once I had enough material, diy projects, scripts, random media just thinking about moving them around, backing them up, sorting them resulted in a heavy mental strain. Having a simple, familiar system to work with just brings a lot of value.
quibono 21 hours ago [-]
I’m using both Obsidian and Emacs and yet my biggest issue is actually… knowing what to note down and when. I don’t know if others have a system for this. I also don’t want to end up with some over-the-top note-everything system - then again surely there is some middle ground here.
beAbU 20 hours ago [-]
I find the overlap in the venn diagram of people who actually benefit from taking notes, and people who create/use note taking systems (obsidian, zettelkasten, bullet journal, remarkable etc) are vanishingly small.
Most "public" note taking looks more like performative art to me.
Just my opinion tho
frumiousirc 20 hours ago [-]
Org-roam helps this problem for me in two levels. Sometime around the turn of the millennium, I started with org by writing files in a directory where I made a "topic" sub directory for each "thing" I wanted to note. This is rather high level and made creating each new "topic" feel too formalized, like I was writing a paper or a blog. That raised some mental bar to staring a new note and so I didn't write as much as I wanted to. org-roam-node-find helps by making it easy to emit disconnected bits. C-c n f and time some bits and either accept an existing match for update or start a new file is a much lighter-weight version of my "topic" directories. Then, even lighter is org-roam-dailies (C-c n d d) which does not even require me to be coherent enough to think of a "title". For this approach to be useful needs good recall methods and frankly that part is a bit weak in my setup. I use deadgrep or org-roam-node-find but would like to add some search that is a little more comprehensive and low-friction.
quibono 20 hours ago [-]
Thanks, this is useful. I think something like org-roam-dailies would suit me!
trvz 21 hours ago [-]
Finding the right balance is crucial in everything we as humans do. If you lack in it, you should work on developing that skill in general.
brudgers 2 days ago [-]
It uses an SQLite database, which doesn't bother me. Databases are great at this stuff.
A Database is great.
Two databases are a migration.
Org-mode plus a file system is a database.
All databases are not relational; relational databases are the tool you want when you want algebraic operations; you might not need algebraic operations for your operations but relational databases are a hammer.
opan 3 days ago [-]
I went from notes.txt in vim to notes.org in emacs for a while (didn't use much org stuff beyond bullet points), back to vim with the same notes.org file but I basically treat it like notes.txt again. Synced with SyncThing, so I could edit it on my phone but in practice I don't think I ever do.
precompute 23 hours ago [-]
> Then, I simply grow tired of staring at the same thing every day.
Use different mixed-pitch fonts for different directories. Use a different header/modeline.
Emacs is a necessity for me. I can't function without it. Moving functionality off emacs to the web browser or another clunky UI application is a straight downgrade.
ghusto 21 hours ago [-]
> It syncs flawlessly (for free)
Sync is a paid feature, not sure why he said this?
sdcfgy 1 days ago [-]
I use Microsoft Word.
I now await my fate.
xz18r 22 hours ago [-]
I've used Emacs and org-mode for about half a decade now and I find it inescapable. I hate that I love it, and love that I hate it. Things like Neorg (which looks unmaintained) gave me hope to find another plaintext ecosystem that handles tasks and notes very well, but I haven't found the perfect solution.
danielmai 2 days ago [-]
[flagged]
ReDress 21 hours ago [-]
I'm going to project here. Please don't negvouch. I know I am projecting here.
I'd like to note that it seems your life at a computer mostly revolves around Emacs and emacs only.
This doesn't sound sane to me. And you should probably try to diversity when it comes to your engagement with your computer.
The whole computer is supposed to provide you with an ecosystem but Emacs just by itself will not provide you with a whole ecosystem in which you can trive in.
My apologies for this "insane" comment.
beAbU 21 hours ago [-]
> Emacs just by itself will not provide you with a whole ecosystem
Blasphemy!
turtlethink 3 days ago [-]
It is 2026... You can't complain about other people's software anymore. Spend about 30 minutes vibe coding your perfect app and you'll never go back. I've basically done that, remade every utility on my phone, on my computer, hyper customized everything that bothered me about all those other software. All local and connected to my private server for sync and backup. And I barely know how to code... I even included in every one of my apps a button that sends me to a session in my custom made ai agent app to change/update/debug any complaints I have about my own apps, on the spot. "Hey codex, that button doesn't do exactly what I wanted quite as fast as I wanted please make it better and faster" wait 5 minutes - done. It's the future... Take advantage of it
xtajv 3 days ago [-]
[humor]
The rub of using emacs is that you really can't complain about anybody else's software, because it's 100% your fault :grin:.
creata 1 days ago [-]
Blog about it, or ask Codex to blog about it.
PunchyHamster 23 hours ago [-]
Ignorance seems to correlate 1:1 with hype for LLMs
antonvs 9 hours ago [-]
30 minutes? Pfft. If you can’t replace your OS and all your apps with custom vibecoded ones in 5 minutes, you’re a total noob.
If you're a diehard modal-editing aficionado like me and think that Emacs is a great IDE but it's a shame about its editor (and its keyboard scheme), maybe give neorg a try. Might well make you shift away from notes.txt files.
And yes, I know I could just use `evil` in Emacs. Maybe someday I'll overcome my decades of learned resistance to running Emacs, but every time I see the Emacs control scheme, I wince and I'm reminded why I don't use it. Having some key combos be "hold down the Control key while you press two keys" (like `C-x C-s` to save a file) while other key combos are "hold down the Control key while you press one key, then release it before pressing the second key" (like `C-x s` to save all files) is just not going to fit into my brain. Maybe that's intuitive for some people, but it just doesn't work for me. And so I bounce off Emacs before ever giving it a real chance.
For example - let's put "go all the way to the right" on the left button. And "go all the way to the left on the combo of modifier with right button". I'm talking about 0 and $ (Shift+4) for vi. It's not consistent, it's not ergonomic or easy to input when properly touch typing. It's almost an accidental control scheme because it was based on no longer existing keyboard keycap labels. And in this case where you can't even exit vi without first reading a manual, half an hour reduction in learning time that you get from remembering that `i` is Insert will not compensate for hundreds or thousands hours using later when you will be pressing button not by looking at keyboard but by muscle memory.
Yeah, if keyboard positioning matters to your brain then you're going to be really annoyed by 0, a key far to the right, meaning go to the left. But the only vi keystrokes that are assigned by keyboard position rather than meaning are the h/j/k/l navigation keys. Everything else has a meaning-based mnemonic, and until I read your post I hadn't ever thought about their position. I want to press 0, my touch-typing class from my teenage years has drilled that key's location into my hindbrain, so my fingers reach up and press it without thinking about its location at all. The only thing that went through my concious mind was "I want to go to column 0" and then boom, I had typed it.
My point is that position is the primary thing that's important for an editor when used for a long time. Your hands and fingers move in physical space, not over alphabet. They get tired and maybe get repetitive strain injuries over real movement.
Mnemomics way of setting up keyboard layout (or rather typewriter) would be to put everything in alphabet order. But we quickly realized that it's not a good way. `d` is where it is because according to (imperfect) research it's a common letter and so in QWERTY layout this letter should be on your home row.
Putting A-something on `a` because the word starts with `a` is not a long term design. Considerations should be based on usage. How often is this used? Put it closer to home row. Is it designed to be often used with another command? If often, those two probably shouldn't be on single finger. And so on.
There is argument for easier start - except that I said already - modal editors are unusable without reading docs first, so that argument doesn't really hold.
It’s a modal editor, so the basic vi/vim motions are of course there almost by necessity, but then it does a drastic shift to actions that were indeed engineered and thought-through intentionally, instead of being made up long ago and then accepted as gospel (love the analogy, by the way).
It’s now my favorite editor by far (not just because of how you use it to shuffle text around, but that is a big part of it), and has solved many of the gripes I had had with trying not to learn the basics, but getting really “at home” with standard vi/vim/neovim controls.
Your example would be <g-h> and <g-l> instead of 0 and $, which I find highly intuitive: Reuse the known left/right motion for a character, and prepend it with a “goto” to signify the whole line.
[0] https://helix-editor.com, also see default keymap: https://docs.helix-editor.com/keymap.html
jkl; would get you movement over home row without moving hand/fingers at all. ijkl would get you movement without involving pinky and some people like that.
If you have (and I do) column-staggered ergonomic keyboard - meaning columns are shifted according for length of your fingers - hjkl makes you move fingers to columns that are slightly off.
I don't see a single objective benefit for choosing hjkl on its own. Yet it's still there and I don't take "they did in vi" as valid for new editor. They could make alternative scheme for vi-comers, but as main idea again?
What you mentioned - g-h and g-l - are definitely more consistent than what vi did.
0/$ doesn't matter when they're both one layer down.
But NeoVim has made writing plugins so much easier, even things like editing Lisp are getting not too bad. https://github.com/Olical/conjure has been a pretty decent substitute for SLIME, there's a paredit implementation that works well, and so on. So the need to switch is lower and lower, and the cost of switching stays high-ish, and so I haven't done it yet. Someday, as I said, I'll give it a shot.
P.S. I would be remiss in recommending LazyVim if I didn't at least once mention the really, really good https://lazyvim-ambitious-devs.phillips.codes/ book, which you can read online entirely for free. It's an excellent resource to learn LazyVim and what it adds to a vanilla NeoVim installation.
Conjure looks great but IMO it's not a 1:1 substitute for tight coupling between editor functionality and internal tooling. If neovim gets 80% of the way to a productive coding setup then emacs helps hone that last 20%.
> Do you have any examples of these Emacs shortcuts that simplify your life?
> I tried using Emacs with Evil but I was just using it as a somewhat laggier Vim.
Learning how to use prefix arguments and writing interactive functions have been very useful. Whenever I want functionality that's just a little different than what Emacs provides, I can always write a function and bind it.
Emacs also comes with regional undo/redo and has great undo tree visualization plugins.
Another feature I've come to appreciate recently is the built-in per-frame and per-window tabs. I moved from using separate frames to using tabs. Tabs inside tabs lets you visit many files at once while keeping visual clutter to a minimum. (In Emacs parlance, a "frame" is the window your WM handles, and a "window" is a visible child of that frame)
Also, outline-minor-mode is really nice for annotating files with headings. You can define custom regexp and sidestep collaboration restrictions and quirky formatting.
The calc is super-useful.
file-local variables are useful. directory-local variables are incredible, they set up custom environments for all folders at the same level / below them. Imagine doing a (let) but over a directory structure.
Vim has default C-p completion. Emacs has hippy-expand, which IMO is better. Some glue around hippie-expand can also make it work with a drop-down completion interface like corfu.
Some examples:
In tab-bar-mode the tab nav functions don't wrap around. So I wrote a small wrapper around the tab nav functions. It's about 10 lines of elisp and handles forward, backward and tab creation. For neovim this would've been much more difficult. In emacs it involves basic functions: interactive, let and cond.
I have a small package that opens new scratch buffers and inherits the major-mode of the buffer it was invoked from. Very useful to write temporary code. One shortcut and it always works.
I have a function that opens all dired selected files in a new tab/frame. Great for organization. Basically you open dired, mark files and run the commands, and they're open in a new tab, and all marks are unmarked. So you can very quickly structure a project for work.
Another function that moves forward/backward to the next logical file. Saves me a trip to find-file / dired.
I have a monorepo that I code in and it has different folders for different languages / folders. Because it's a monorepo, file completion shows ALL files in the monorepo. And running a LSP server also starts at the monorepo root, which is not ideal. With directory-local variables, I can set a custom file (like .gitignore) to denote a repo root. So emacs (and LSP servers via Eglot) will consider the presence of that file the repo root and make it work like an independent repo. ((nil . ((project-vc-extra-root-markers . (".gitignore")))))
(I've been using Emacs longer than I used vim, so my experience is skewed. I also used it as a laggy vim (Doom Emacs) for the first few years, and then moved to a custom config, which helped me really understand what was happening under the hood)
Perhaps there is a vim plugin for each one of these; but I certainly wouldn't be able to do ALL of these by myself in vim! Also because many of these are built-in emacs functions, they're guaranteed to be supported for a very long time.
For me, mobile and desktop apps plus easy family sharing of individual notes are important.
Apple Notes is really the best I’ve got.
The other solutions I’ve found mother cost too much or have some odd dealbreaker features, or they’re over-complicated, or they’re ugly.
Zoho Notebook is on the ugly side but it’s cheap and has apps on all platforms.
Craft is pretty good but if you hit the need for the paid tier it’s a bit pricey.
I think it’s possible that vibecoding an Apple Notes clone is actually the best solution for me.
A lot of people like Obsidian but I think it’s a bit crazy, and I think it’s unacceptable how difficult it is to self-host the sync functionality, especially since again the paid tier is too expensive.
the application itself is relatively hideous, and I kinda see that as a feature (because the app is not particularly fit-for-use for just about anything else besides a quick "tmp" buffer with RTF).
(For me on Linux it is a directory full of text files with markdown and sometimes a groff pic diagram or even a metapost diagram (just starting with that one))
- longevity
- portability
- ease of processing
- cannot "break"
- viewable and editable with anything
Any other way is only acceptable if it can export to plain text.
It's cross-platform, Rust core with native UIs (Rust UI for Desktop, I'm using Iced [1]). I built it due to similar problems, and because I got tired of waiting on nvUltra [2].
Totem is meant to be more of a team/collaboration app in truth, but it turns out that realtime sync is also immensely helpful when working by yourself on multiple devices.
Everything is stored in SQLite and Markdown as well, but in a bit of an obscure location in a thin wrapper format (I might build in an escape hatch later on). The reason to do it this way is largely because allowing people to externally edit Markdown in a live sync context is tricky and I didn't want to make it super easy to screw yourself over.
[0] https://thinktotem.com
[1] https://iced.rs/
[2] https://nvultra.com/
P.S.: With consideration to the time that I am posting this...the iOS/iPadOS offering is currently restricted to a few countries. If you're not in those countries and are interested, let me know and I can add you to Testflight, or you can use the web version.
[1] https://www.youtube.com/watch?v=HLq91cDWx0s
[1] https://github.com/huytieu/COG-second-brain
Most "public" note taking looks more like performative art to me.
Just my opinion tho
A Database is great.
Two databases are a migration.
Org-mode plus a file system is a database.
All databases are not relational; relational databases are the tool you want when you want algebraic operations; you might not need algebraic operations for your operations but relational databases are a hammer.
Use different mixed-pitch fonts for different directories. Use a different header/modeline.
Emacs is a necessity for me. I can't function without it. Moving functionality off emacs to the web browser or another clunky UI application is a straight downgrade.
Sync is a paid feature, not sure why he said this?
I now await my fate.
I'd like to note that it seems your life at a computer mostly revolves around Emacs and emacs only.
This doesn't sound sane to me. And you should probably try to diversity when it comes to your engagement with your computer.
The whole computer is supposed to provide you with an ecosystem but Emacs just by itself will not provide you with a whole ecosystem in which you can trive in.
My apologies for this "insane" comment.
Blasphemy!
The rub of using emacs is that you really can't complain about anybody else's software, because it's 100% your fault :grin:.