If you have an M3/M4 and are stuck on XNU like me, and you want a something between the notes app and a whole Electron IDE, it turns out that Kate also supporte macOS
(Actually, a lot of KDE programs do, I was elated to find out I could use Dolphin as file manager when I was limited by Finder)
I think Kate strikes this really nice middleground. It starts up immediately as just a text editor, but you can push it as far as you want to
I had to install several dependencies through homebrew, ignore some default dependencies that don't make sense on mac (wayland, pipewire, etc), and then it worked.
The build command I used, for reference: kde-builder dolphin --ignore-projects wayland plasma-wayland-protocols wayland-protocols kglobalaccel kpipewire kwayland selenium-webdriver-at-spi baloo packagekit-qt baloo-widgets
Note also there's some mac weirdness with the Dock where some kioworker process might show up as a separate icon. I packaged it in dolphin.app MacOS bundle, gave kioworker a Info.plist with LSUIElement=true, and that got rid of the Dock glitch.
So, I wouldn't say it's entirely painless to install. But if you're sufficiently annoyed by Finder, building Dolphin can be worth the effort.
That is a lot of work just to use Dolphin. I daily drive KDE on my workstation and while it is not a terrible file explorer, I probably wouldn't go to those lengths to use it over Finder. Props for getting it done though, I didn't even realize it was possible. Makes sense though considering a lot of KDE apps are cross platform, like kdenlive.
In fairness, I wouldn't say it's dolphin I'm attached to in particular, I think I'm just not in the target audience for Finder.
The tradeoff is that it makes simple things simple, and everything else complicated.
I'm uploading a config file on a website. It's in ~/.config, and any reasonable file explorer won't show hidden files by default. In Finder there's also no button or setting to show hidden files. They really can't, it would make the UI complicated.
You can't navigate to a hidden folder by typing its name (let's not get too creative!). The file dialog box lets you type file names, as Jobs intended, anything else is an error.
This won't be news to anyone, as most people will have run into it before. Most people probably remember that the hidden shortcut is Command + Shift + Period. But everything in Finder is like this, and I'm just reminded at every turn that I am the person Finder was specifically not built for.
> You can't navigate to a hidden folder by typing its name (let's not get too creative!).
You can, actually. ⌘-SHIFT-G in Finder lets you navigate to any folder by typing in the path - even hidden paths. No mortal user would ever be expected to know or discover that, but it's there.
Finder is annoying for power users. Command shift g is a lifesaver.
I think my favorite file navigator was konqueror.
Another Mac annoyance is that the launch tool (command period) seems to forget apps. Or worse, shows the app as you type the name and hides it if you continue typing the next letter in the name. Not sure what focus group approved this...
Just curious: how does drag & drop works with Dolphin in Mac? I quit KDE because I got mad with the files drop menu. Do you also get it when installing Dolphin?
Kate's a pretty good editor. I've made an attempt to replace vscode/vscodium with it once before.
The article is right about vscode turning into proprietary mush. I use vscodium and have run into issues with plugins that require cpptools, while cpptools complains whenever you, or an extension you're using, accesses it in an editor other than vscode.
It's been awhile but I remember there were things I was used to, some really nice things, that I didn't want to give up.
I love vscode's markdown editing features. (pasting a link over text to create a hyperlink or dragging and dropping image files to embed images etc.) I think some of the keyboard shortcuts I was used to were different (duplicating lines, selecting all occurrences of a selected text). Behavior of word/token traversing(Ctrl + Left|Right Arrow) was different. There were some things kate couldn't do at all that I don't remember.
This is pretty much the exact same way I use Sublime (except the git diff stuff is done in Sublime Merge, which is a separate application)
I've tried switching to Kate a few times since I prefer open source tools, but it feels like a major step down UX-wise. My primary workstations have been Linux with KDE Plasma for many years, but I am not a huge fan of the KDE aesthetics (which seems to aim for maximizing clutter).
I'm generally not a picky person, but my text editor is by far my most-used tool, so it's an exception.
I like that you can extend Sublime with Python. I know that it will never be Emacs, but Emacs is too hard for me, while Sublime feels much more accessible.
One feature that is impossible to live without for me is Undo Tree. Unfortunately, the only editors that support it are Vim/Neovim and Emacs. I would love to switch to one of these modern editors, but not a single one of them supports this feature.
You don't get a visible tree representation, but JetBrains at least saves every change to your files regardless of how they were edited and whether any changes were reverted. It produces a flat list though, but you do get diffs and it works across all edited files, not just the current one (it's basically a built-in mini-VCS).
I'm writing an editor. Could you explain to me the use case? I looked it up and I don't exactly understand the reason besides it might be fun to look at
I really did not like that other editors would lose text if you pressed undo and type. The way my undo's work is if you type "a b c" and hit undo twice (so it's just "a") then type "d", then undo twice, it'll restore to "a b c"
Many times, I write a bunch of code before realising that a lot of it (but not all of it) is incorrect. At this point, being able to switch between two different points of history and selectively copy-paste the stuff that was correct is a godsend.
This is especially useful if you undid some operations, typed a little and then realised that you forgot to copy some important stuff that was strewn around in the old version.
That's one reason why I implemented it so it wouldn't lose information.
Hmm. I plan to implement a diff. The way I have it, you could copy the current source, hit undo to a version you want to compare again than use the clipboard as the version to diff with (vscode calls this "Compare Active File with Clipboard".) If you mess up you can still hit undo to go through all the previous edits you made since it's not lossy. Would this be as good for your usecase?
A tree is essentially a nice GUI on top of what you already have. It's allows me to visually click (or navigate) to a specific point of history, instead of remembering to hit Undo 15 times.
AFAIU, it also allows you to redo, even if you accidentally added a letter after undoing. That accidental edit then adds a branch to the tree instead of replacing all the redo entries.
Just a thought, do you want it as a tree? It seems like it'd make more sense if there was a bar or key you can press to go back and forward to the changes you want. I didn't really understand why having it as a tree was helpful.
I'm not going to say I wont implement it, I'm just saying I'm not understanding why you want it that specific way. Is the change you want always many minutes apart and why you want it as a tree? To find the one that happened many minutes before another? I know some people like how vscode has a timeline that says how many minutes/hours ago a change was, so they can pick it out
I type "A B C D".
Then I undo thrice to get "A".
Then I type to get "A E".
And now I realise that what I actually want is "A E B D".
My edits have created a branch is history. And I need to switch to the old branch and copy stuff twice (first "B" then "D"). That is why a tree is important.
I don’t think it will dethrone Neovim for me, but this makes me wonder whether Kate could become my second editor and allow me to largely drop VS Code, especially with the DAP support. The session support also looks interesting.
I have been using neovim extensively for past several years. I also use vscode occasionally. Last year I tried Zed and was very impressed with its speed, responsiveness and featureset. Now it is available for Linux has well, but I have not tried linux version yet.
I have tried zed, and promptly uninstalled once I saw it was automatically downloading and running nodejs. I want an editor that is lightweight, not one that starts running extra crap I neither need nor want in the background. That was on top of the big focus on LLM integration (itself already a significant negative for me), but which I was willing to overlook to try out the rest.
I don't think Zed is very good in its current state. Too much extra cruft out of the box which you need to disable.
Using a runtime doesn't automatically mean it's bloat. I mean, do you uninstall Python from your system immediately after installing a distro?
I would much rather an editor provide as many runtimes as possible for plugins, so that developers from all walks of life can contribute. This is largely the success story of Neovim, which lets you interface with it in 7 different languages. Most editors that are constrained to only one language for plugins have a completely barren ecosystem.
Are you sure that was Zed? I see that it's 98.3% coded in Rust. But if you're right and it still depends on node.js, I'll have to scratch that off my list.
It was definitely Zed. I forget what it was that used node.js, and I was able to disable that with some effort. But it annoyed me because I shouldn't have to, you know? In my opinion the default out of the box install should be sleek and not use many resources, and only add more stuff if I ask for it.
We use node.js to run a number of language servers and formatters (which are often written in node due to the VSCode ancestry...).
There've been a lot of requests to disable language servers by default; but I think that's not the right default for most users – things should work out of the box.
That said, better control over this is definitely something we will add.
You're right, I just checked the Arch package and it has a non-optional dependency on the nodejs package[1], which means you're forced to install it even if you don't use it. That sucks. :(
I actively avoid any desktop app that uses JS, yes. I find it to be a silly design choice to use a web language (which the vast majority of people, even its creator, agree is not very good) outside of the context of a web environment. And in my experience such apps are serious memory hogs (like VS Code which takes something like 1 GB of memory to display the same files that take Sublime Text 300 MB).
Fasterthanlime recommended it a while back on Mastodon so that did pique my interest. The focus on AI kind of put me off Zed, though. I don’t know whether that’s fair—I see one of their blog posts touts “Out of Your Face AI”—but that was my reaction.
I use Kate only causally for some small temporary text snippets. I use Neovim with DAP fine using nvim-dap + nvim-dap-ui. I also recently started using LSP in neovim, and it's actually pretty powerful.
I should honestly give DAP a try in Neovim. I think DAP being newer, seemingly getting less attention than other elaborate technologies to integrate like LSP or Treesitter, and having a more complex UI made me suspect it might not be reliable. Adding a DAP plugin to a secondary editor also feels less risky. But it sounds like my concerns may have been addressed, if not overblown all along.
If you worry about it interfering with other stuff, you can lazy load nvim-dap + nvim-dap-ui on demand (using lazy.nvim for example), but it's not really interfering with what I use in my experience.
Plus I use sessions for key mappings, i.e. temporary sets of mappings used for debugging for example, which can be reset to what they were after debugging is finished. This way you can assign a bunch of common combos for stuff like step in / step out without it messing up other existing mappings which you can restore after you are done.
Well, I use KDE for a while now, but one thing I've always tried to avoid was Kate ;-)
My primary editor is vim (cli), and my secondary editor is kwrite. Nowadays, I think kwrite is part of the Kate package, just simpler, as I don't like the whole session feature when you just want to edit a single file.
I‘m contemplating for a while to find a replacement for VSCode. I switched to it because Atom became too slow and it had great builtin support for most stuff. But I actually was never 100% happy. I usually split my work between bigger projects and smaller file edits. And VSCode was good for the second flow. But over the years and the popularity of LSPs it kinda became dump as well. I mean the fact that if one wants to edit a python or ruby file and simply wants code formatting and a semi smart intelli sense one needs to install an lsp plus plugin etc etc. Which used to work out of the box without bigger configuration. I work on different types of projects and need a fast and quick editor from time to time. VSCode used to be that for me. But now it’s bloated as a full IDE in some cases. Will look into Kate just to see what it has to offer.
TIL about Kate editor, but after 30 years of just using vi in a terminal (Unix, Mac, even Windows in cmd.exe) I switched to Zed editor (https://zed.dev). I had tried other editors in the past, but quickly fell back to vi/vim after a few hours or days, for various reasons. Been using Zed for a couple of months now and no plans to go back. It also uses LSPs, but whenever I connect to some (Linux) dev host from Zed on my Mac, it autoinstalls clangd to a .local directory and so far I haven’t had to manually install any extra software. Just took a while to figure out the best Zed config for me. It’s very configurable, customizable, but the UI itself is snappy & clean (written in Rust, for those who care about it).
I also really like Zed. But what prevents me from switching to Zed, is my workflow. I tend not to run desktop GUI applications on my main development machine (headless and sometimes remote). nvim is excellent in such circumstances.
Also nvim is available on all platforms. I know Zed is also recently available on Linux, but I really doubt it will be as good as Zed on Mac.
One of the biggest problems i have with running basic text editors like vim/nvim is the investment time to spin up a fully loaded workable development env; esp since i've never done it before. basic vim with some modifications in .vimrc is all i have and i know some of my colleagues are also this way!
nowadays though i really want to use LLMs to write code for me instead of switching contexts on different platforms. can i ask what you use for LLM stuff on nvim? how do you like it compared to running bare bones vim and switching platforms?
It works with vanilla vim (and MacVim) these days too. "Vim 9.0.0185 or newer" is mentioned in the Getting Started section.
I was about to install it a couple of years ago, but then started thinking about the privacy threat model.
I realized that having a "copilot" in my everyday editor (not just for public open source coding!) is never gonna fly. I may end up accidentally uploading any file I open to a 3rd party for tab completion and "AI stuff". Even if I can configure it to hopefully ignore some directories, too risky for me. With a separate editor just for coding (Zed in my case), the risk of accidentally opening and uploading a wrong file would be much lower for me, as I'll keep using vim without any AI for everything other than OSS coding.
Edit: I'm sure there's an option only manually load the copilot plugin when you explicitly want it, but it still makes me too uneasy.
> I remember having two CMake extensions where both had something I needed, but they both also overlap in some basic features, so it got very confusing.
The easy strictly equivalent solution is to just one extension. Or does Kate have a single included plugin that covers everything those two extensions cover?
Wow, that's an app name I haven't heard in quite some time! Glad to hear it is still alive and kicking.
I see it has a proper multicursor support, so that's nice. There are a few plugins in vscod(e/ium) I regularly use and would miss a lot - like converting between camel/kebab/snake/sentence case, generating sequence numbers/digits, and especially calculations. I'd be surprised if these minor things are supported... Still, long time ago it was already a very capable IDE, so I'm curious where it is now. I'll give it a spin...
there is one feature that I truly miss from notepad++ and couldn't find it in kate.
the feature is the option to bookmark all matching lines in the find dialog, then from the bookmarks submenu you can delete bookmarked lines or delete unbookmarked lines.
super useful, yet couldn't find it in any other editor.
You have this in vim. It’s called “the quickfix list.”
Granted, it’s not as obvious to use as NP++ I’m sure. And it’s actually a generalized feature that works for more than just searches. But it does automatically get populated whenever you :grep in vim.
I used Kate as my main editor several years back, before switching to Sam halfway through college, then to VS Code when I wanted debugging stuff. I'll have to give it another try, I always liked it. Its multi-cursor support still strikes me as being better than VS Code's.
The page doesn't say it, how well it handles very large files? Also, how does it handle editing files with various encodings? Asking this while having Notepad++ in mind.
I use Kate all the time and IME it doesn't. In fact it struggles even with relatively small files. In fact try this:
seq -f"foo %100.100f" 1 1000 > /tmp/test1000 && kate /tmp/test1000
...and watch Kate struggle with a ~100KB file. It seems to be related to the text layout or something along these lines (i.e. it isn't because of whatever data structure it uses for text, modern PCs should be able to handle the naivest of naive text editor structures even when editing a few MBs without sweat) because the slowness is triggered whenever text is about to be displayed (e.g. when scrolling) or lines are added/removed (modifying a single line is fine, but if you move say to the middle of the file, press Enter and keep it down you'll see that it struggles to add new lines).
I'm only using for editing text files and source code so it rarely bothers me personally but it can be annoying sometimes.
What do you consider as struggle? Here this works fast and flawless with Kate, VS Code, vim... Though, I did not use /tmp, but $HOME. But I doubt this would make a difference, unless your KDE is broken and Kate struggles because of kio on opening the file.
Choppy scrolling, taking up to a second to add a line in the middle of the text, etc. As i wrote, the issue was with scrolling and adding/removing lines - so most likely text layout stuff. The file I/O was fine.
Could it be then, that the layout or styling of JSON is performant, while the one for random text is not? But then again what's there actually to style or layout in random text.
Kate seems like yet another editor trying to be everything to everyone while mastering nothing. The author complains about VSCode's extensions clashing, but then proudly lists a dozen Kate plugins they use. That's not simplicity; it's the same complexity with different branding. And let's be honest - if your workflow requires JavaScript snippets to generate blog headers, you're not using a "simple" text editor anymore.
I've been using Kate for quick edits but never explored its deeper features. The LSP integration and session handling look particularly useful. Good to see a thoughtful workflow built around a lightweight editor that doesn't compromise on functionality.
Surprised to see so much love for Kate here. I've always felt it has too much UI clutter for to make for a good Notepad.exe alternative, but too few features to be a good VSCode alternative. It seems most default KDE apps suffer from issues like this, to the point where I ended up using for VSCode for everything on my Linux machine (before eventually switching to MacOS and just using the Notes app for everything that isn't code).
If you have an M3/M4 and are stuck on XNU like me, and you want a something between the notes app and a whole Electron IDE, it turns out that Kate also supporte macOS
(Actually, a lot of KDE programs do, I was elated to find out I could use Dolphin as file manager when I was limited by Finder)
I think Kate strikes this really nice middleground. It starts up immediately as just a text editor, but you can push it as far as you want to
It's in homebrew.
How did you get dolphin to run on a Mac? If you could point me to a resource that would help me out, I'd appreciate it.
This is the documentation for building a KDE app from source: https://develop.kde.org/docs/getting-started/building/kde-bu...
I had to install several dependencies through homebrew, ignore some default dependencies that don't make sense on mac (wayland, pipewire, etc), and then it worked.
The build command I used, for reference: kde-builder dolphin --ignore-projects wayland plasma-wayland-protocols wayland-protocols kglobalaccel kpipewire kwayland selenium-webdriver-at-spi baloo packagekit-qt baloo-widgets
Note also there's some mac weirdness with the Dock where some kioworker process might show up as a separate icon. I packaged it in dolphin.app MacOS bundle, gave kioworker a Info.plist with LSUIElement=true, and that got rid of the Dock glitch.
So, I wouldn't say it's entirely painless to install. But if you're sufficiently annoyed by Finder, building Dolphin can be worth the effort.
That is a lot of work just to use Dolphin. I daily drive KDE on my workstation and while it is not a terrible file explorer, I probably wouldn't go to those lengths to use it over Finder. Props for getting it done though, I didn't even realize it was possible. Makes sense though considering a lot of KDE apps are cross platform, like kdenlive.
In fairness, I wouldn't say it's dolphin I'm attached to in particular, I think I'm just not in the target audience for Finder.
The tradeoff is that it makes simple things simple, and everything else complicated.
I'm uploading a config file on a website. It's in ~/.config, and any reasonable file explorer won't show hidden files by default. In Finder there's also no button or setting to show hidden files. They really can't, it would make the UI complicated.
You can't navigate to a hidden folder by typing its name (let's not get too creative!). The file dialog box lets you type file names, as Jobs intended, anything else is an error.
This won't be news to anyone, as most people will have run into it before. Most people probably remember that the hidden shortcut is Command + Shift + Period. But everything in Finder is like this, and I'm just reminded at every turn that I am the person Finder was specifically not built for.
So, it's just not for me.
> You can't navigate to a hidden folder by typing its name (let's not get too creative!).
You can, actually. ⌘-SHIFT-G in Finder lets you navigate to any folder by typing in the path - even hidden paths. No mortal user would ever be expected to know or discover that, but it's there.
Finder is annoying for power users. Command shift g is a lifesaver.
I think my favorite file navigator was konqueror.
Another Mac annoyance is that the launch tool (command period) seems to forget apps. Or worse, shows the app as you type the name and hides it if you continue typing the next letter in the name. Not sure what focus group approved this...
Just curious: how does drag & drop works with Dolphin in Mac? I quit KDE because I got mad with the files drop menu. Do you also get it when installing Dolphin?
Thank you. I'll give it a go.
There was also coteditor, which is based on swift ui.
Thank you for this!
Kate's a pretty good editor. I've made an attempt to replace vscode/vscodium with it once before.
The article is right about vscode turning into proprietary mush. I use vscodium and have run into issues with plugins that require cpptools, while cpptools complains whenever you, or an extension you're using, accesses it in an editor other than vscode.
how was your experience with kate as a full vscode replacement? anything major you missed or had to work around?
It's been awhile but I remember there were things I was used to, some really nice things, that I didn't want to give up.
I love vscode's markdown editing features. (pasting a link over text to create a hyperlink or dragging and dropping image files to embed images etc.) I think some of the keyboard shortcuts I was used to were different (duplicating lines, selecting all occurrences of a selected text). Behavior of word/token traversing(Ctrl + Left|Right Arrow) was different. There were some things kate couldn't do at all that I don't remember.
This is pretty much the exact same way I use Sublime (except the git diff stuff is done in Sublime Merge, which is a separate application)
I've tried switching to Kate a few times since I prefer open source tools, but it feels like a major step down UX-wise. My primary workstations have been Linux with KDE Plasma for many years, but I am not a huge fan of the KDE aesthetics (which seems to aim for maximizing clutter).
I'm generally not a picky person, but my text editor is by far my most-used tool, so it's an exception.
I like that you can extend Sublime with Python. I know that it will never be Emacs, but Emacs is too hard for me, while Sublime feels much more accessible.
One feature that is impossible to live without for me is Undo Tree. Unfortunately, the only editors that support it are Vim/Neovim and Emacs. I would love to switch to one of these modern editors, but not a single one of them supports this feature.
You don't get a visible tree representation, but JetBrains at least saves every change to your files regardless of how they were edited and whether any changes were reverted. It produces a flat list though, but you do get diffs and it works across all edited files, not just the current one (it's basically a built-in mini-VCS).
https://www.jetbrains.com/help/idea/local-history.html
EDIT: Actually, there is one more: https://fred-dev.tech/ But it's still deep in development, I'm keep an eye on how it turns out.
I'm writing an editor. Could you explain to me the use case? I looked it up and I don't exactly understand the reason besides it might be fun to look at
I really did not like that other editors would lose text if you pressed undo and type. The way my undo's work is if you type "a b c" and hit undo twice (so it's just "a") then type "d", then undo twice, it'll restore to "a b c"
Many times, I write a bunch of code before realising that a lot of it (but not all of it) is incorrect. At this point, being able to switch between two different points of history and selectively copy-paste the stuff that was correct is a godsend.
This is especially useful if you undid some operations, typed a little and then realised that you forgot to copy some important stuff that was strewn around in the old version.
That's one reason why I implemented it so it wouldn't lose information.
Hmm. I plan to implement a diff. The way I have it, you could copy the current source, hit undo to a version you want to compare again than use the clipboard as the version to diff with (vscode calls this "Compare Active File with Clipboard".) If you mess up you can still hit undo to go through all the previous edits you made since it's not lossy. Would this be as good for your usecase?
A tree is essentially a nice GUI on top of what you already have. It's allows me to visually click (or navigate) to a specific point of history, instead of remembering to hit Undo 15 times.
AFAIU, it also allows you to redo, even if you accidentally added a letter after undoing. That accidental edit then adds a branch to the tree instead of replacing all the redo entries.
Just a thought, do you want it as a tree? It seems like it'd make more sense if there was a bar or key you can press to go back and forward to the changes you want. I didn't really understand why having it as a tree was helpful.
I'm not going to say I wont implement it, I'm just saying I'm not understanding why you want it that specific way. Is the change you want always many minutes apart and why you want it as a tree? To find the one that happened many minutes before another? I know some people like how vscode has a timeline that says how many minutes/hours ago a change was, so they can pick it out
I type "A B C D". Then I undo thrice to get "A". Then I type to get "A E". And now I realise that what I actually want is "A E B D". My edits have created a branch is history. And I need to switch to the old branch and copy stuff twice (first "B" then "D"). That is why a tree is important.
If I understand correctly, this is the same as the default behaviour for Emacs (on top of which Undo Tree is implemented).
Big thread a year ago https://news.ycombinator.com/item?id=40032869
Thanks! Macroexpanded:
Kate Text Editor and OrgMode - https://news.ycombinator.com/item?id=40899978 - July 2024 (1 comment)
Kate editor on all platforms - https://news.ycombinator.com/item?id=40032869 - April 2024 (153 comments)
Kate Editor Features - https://news.ycombinator.com/item?id=37231529 - Aug 2023 (18 comments)
Integrated Terminal on Windows in KDE Kate - https://news.ycombinator.com/item?id=34824467 - Feb 2023 (1 comment)
Kate - https://news.ycombinator.com/item?id=34697173 - Feb 2023 (23 comments)
Using Kate's Git Features - https://news.ycombinator.com/item?id=34624765 - Feb 2023 (1 comment)
Kate – New Features – August 2022 - https://news.ycombinator.com/item?id=32585221 - Aug 2022 (1 comment)
Kate 22.08 - https://news.ycombinator.com/item?id=32219281 - July 2022 (6 comments)
Kate is a fantastic text editor - https://news.ycombinator.com/item?id=29623909 - Dec 2021 (1 comment)
KDE Advanced Text Editor: A Feature-Packed Text Editor - https://news.ycombinator.com/item?id=26972858 - April 2021 (1 comment)
Kate Editor: Search In Files and Multi-Threading - https://news.ycombinator.com/item?id=25969409 - Jan 2021 (1 comment)
The Kate Text Editor in 2020 - https://news.ycombinator.com/item?id=25592677 - Dec 2020 (5 comments)
The Kate text editor is 20 years old - https://news.ycombinator.com/item?id=25424735 - Dec 2020 (81 comments)
Kate is soon 20 years old - https://news.ycombinator.com/item?id=25030096 - Nov 2020 (12 comments)
Kate – A Qt Text Editor for Linux, MacOS and Windows - https://news.ycombinator.com/item?id=16558407 - March 2018 (2 comments)
Kate Turning 10 Years Old - https://news.ycombinator.com/item?id=2876471 - Aug 2011 (20 comments)
I don’t think it will dethrone Neovim for me, but this makes me wonder whether Kate could become my second editor and allow me to largely drop VS Code, especially with the DAP support. The session support also looks interesting.
I have been using neovim extensively for past several years. I also use vscode occasionally. Last year I tried Zed and was very impressed with its speed, responsiveness and featureset. Now it is available for Linux has well, but I have not tried linux version yet.
Have you tried zed ? I have been really impressed by it.
I have tried zed, and promptly uninstalled once I saw it was automatically downloading and running nodejs. I want an editor that is lightweight, not one that starts running extra crap I neither need nor want in the background. That was on top of the big focus on LLM integration (itself already a significant negative for me), but which I was willing to overlook to try out the rest.
I don't think Zed is very good in its current state. Too much extra cruft out of the box which you need to disable.
Using a runtime doesn't automatically mean it's bloat. I mean, do you uninstall Python from your system immediately after installing a distro?
I would much rather an editor provide as many runtimes as possible for plugins, so that developers from all walks of life can contribute. This is largely the success story of Neovim, which lets you interface with it in 7 different languages. Most editors that are constrained to only one language for plugins have a completely barren ecosystem.
The main issue is that Zed doesn't package them (or rely on having them installed on the system), but instead downloads binaries from the web.
Oh, that sounds pretty bad. I wonder if there's a reason...
Are you sure that was Zed? I see that it's 98.3% coded in Rust. But if you're right and it still depends on node.js, I'll have to scratch that off my list.
It was definitely Zed. I forget what it was that used node.js, and I was able to disable that with some effort. But it annoyed me because I shouldn't have to, you know? In my opinion the default out of the box install should be sleek and not use many resources, and only add more stuff if I ask for it.
Zed maintainer here.
We use node.js to run a number of language servers and formatters (which are often written in node due to the VSCode ancestry...).
There've been a lot of requests to disable language servers by default; but I think that's not the right default for most users – things should work out of the box.
That said, better control over this is definitely something we will add.
Is it true Zed downloads node.js as a binary from the web? Why wouldn't you use the system provided node or package it with Zed if it's necessary?
We currently download node if the system version isn't recent enough (we used to always download it, but I fixed that...).
You're right, I just checked the Arch package and it has a non-optional dependency on the nodejs package[1], which means you're forced to install it even if you don't use it. That sucks. :(
[1] https://archlinux.org/packages/extra/x86_64/zed/
It's probably for some extensions. So things like LSP and formatters
Do you not use anything at all that has a V8-based JavaScript runtime? Or is it the node-specific things you dislike like their bizarre Stream API?
I actively avoid any desktop app that uses JS, yes. I find it to be a silly design choice to use a web language (which the vast majority of people, even its creator, agree is not very good) outside of the context of a web environment. And in my experience such apps are serious memory hogs (like VS Code which takes something like 1 GB of memory to display the same files that take Sublime Text 300 MB).
Zed on my Mac is taking 180MB of RAM right now. That's far less proportionally than Emacs use to be teased about.
Fasterthanlime recommended it a while back on Mastodon so that did pique my interest. The focus on AI kind of put me off Zed, though. I don’t know whether that’s fair—I see one of their blog posts touts “Out of Your Face AI”—but that was my reaction.
I use Kate only causally for some small temporary text snippets. I use Neovim with DAP fine using nvim-dap + nvim-dap-ui. I also recently started using LSP in neovim, and it's actually pretty powerful.
I should honestly give DAP a try in Neovim. I think DAP being newer, seemingly getting less attention than other elaborate technologies to integrate like LSP or Treesitter, and having a more complex UI made me suspect it might not be reliable. Adding a DAP plugin to a secondary editor also feels less risky. But it sounds like my concerns may have been addressed, if not overblown all along.
If you worry about it interfering with other stuff, you can lazy load nvim-dap + nvim-dap-ui on demand (using lazy.nvim for example), but it's not really interfering with what I use in my experience.
Plus I use sessions for key mappings, i.e. temporary sets of mappings used for debugging for example, which can be reset to what they were after debugging is finished. This way you can assign a bunch of common combos for stuff like step in / step out without it messing up other existing mappings which you can restore after you are done.
Well, I use KDE for a while now, but one thing I've always tried to avoid was Kate ;-)
My primary editor is vim (cli), and my secondary editor is kwrite. Nowadays, I think kwrite is part of the Kate package, just simpler, as I don't like the whole session feature when you just want to edit a single file.
Kwrite is basically kate without any plugins. Both applications are hosted in the same repo and developed at the same time.
I‘m contemplating for a while to find a replacement for VSCode. I switched to it because Atom became too slow and it had great builtin support for most stuff. But I actually was never 100% happy. I usually split my work between bigger projects and smaller file edits. And VSCode was good for the second flow. But over the years and the popularity of LSPs it kinda became dump as well. I mean the fact that if one wants to edit a python or ruby file and simply wants code formatting and a semi smart intelli sense one needs to install an lsp plus plugin etc etc. Which used to work out of the box without bigger configuration. I work on different types of projects and need a fast and quick editor from time to time. VSCode used to be that for me. But now it’s bloated as a full IDE in some cases. Will look into Kate just to see what it has to offer.
TIL about Kate editor, but after 30 years of just using vi in a terminal (Unix, Mac, even Windows in cmd.exe) I switched to Zed editor (https://zed.dev). I had tried other editors in the past, but quickly fell back to vi/vim after a few hours or days, for various reasons. Been using Zed for a couple of months now and no plans to go back. It also uses LSPs, but whenever I connect to some (Linux) dev host from Zed on my Mac, it autoinstalls clangd to a .local directory and so far I haven’t had to manually install any extra software. Just took a while to figure out the best Zed config for me. It’s very configurable, customizable, but the UI itself is snappy & clean (written in Rust, for those who care about it).
I also really like Zed. But what prevents me from switching to Zed, is my workflow. I tend not to run desktop GUI applications on my main development machine (headless and sometimes remote). nvim is excellent in such circumstances. Also nvim is available on all platforms. I know Zed is also recently available on Linux, but I really doubt it will be as good as Zed on Mac.
One of the biggest problems i have with running basic text editors like vim/nvim is the investment time to spin up a fully loaded workable development env; esp since i've never done it before. basic vim with some modifications in .vimrc is all i have and i know some of my colleagues are also this way!
nowadays though i really want to use LLMs to write code for me instead of switching contexts on different platforms. can i ask what you use for LLM stuff on nvim? how do you like it compared to running bare bones vim and switching platforms?
Github copilot has an official [1] neovim extension. There are also third-party plugins for Copilot, Chat, Next edit etc.
[1] https://github.com/github/copilot.vim
It works with vanilla vim (and MacVim) these days too. "Vim 9.0.0185 or newer" is mentioned in the Getting Started section.
I was about to install it a couple of years ago, but then started thinking about the privacy threat model.
I realized that having a "copilot" in my everyday editor (not just for public open source coding!) is never gonna fly. I may end up accidentally uploading any file I open to a 3rd party for tab completion and "AI stuff". Even if I can configure it to hopefully ignore some directories, too risky for me. With a separate editor just for coding (Zed in my case), the risk of accidentally opening and uploading a wrong file would be much lower for me, as I'll keep using vim without any AI for everything other than OSS coding.
Edit: I'm sure there's an option only manually load the copilot plugin when you explicitly want it, but it still makes me too uneasy.
How hard would it be to have an editor just ignore files that aren't in source control (at least staged)?
Haven't used Kate, but I strongly recommend Sublime Text. It's lightweight and the plugin support means you can add more features if you need them.
What I can't get over with Sublime is how it's $99 for an editor license, while IntelliJ is €169. It doesn't feel value for money.
I used sublime before and was happy enough. But the license thing never sit well with me.
> I remember having two CMake extensions where both had something I needed, but they both also overlap in some basic features, so it got very confusing.
The easy strictly equivalent solution is to just one extension. Or does Kate have a single included plugin that covers everything those two extensions cover?
Wow, that's an app name I haven't heard in quite some time! Glad to hear it is still alive and kicking.
I see it has a proper multicursor support, so that's nice. There are a few plugins in vscod(e/ium) I regularly use and would miss a lot - like converting between camel/kebab/snake/sentence case, generating sequence numbers/digits, and especially calculations. I'd be surprised if these minor things are supported... Still, long time ago it was already a very capable IDE, so I'm curious where it is now. I'll give it a spin...
Kate editor is a hidden gem.
there is one feature that I truly miss from notepad++ and couldn't find it in kate.
the feature is the option to bookmark all matching lines in the find dialog, then from the bookmarks submenu you can delete bookmarked lines or delete unbookmarked lines.
super useful, yet couldn't find it in any other editor.
You have this in vim. It’s called “the quickfix list.”
Granted, it’s not as obvious to use as NP++ I’m sure. And it’s actually a generalized feature that works for more than just searches. But it does automatically get populated whenever you :grep in vim.
I used Kate as my main editor several years back, before switching to Sam halfway through college, then to VS Code when I wanted debugging stuff. I'll have to give it another try, I always liked it. Its multi-cursor support still strikes me as being better than VS Code's.
The page doesn't say it, how well it handles very large files? Also, how does it handle editing files with various encodings? Asking this while having Notepad++ in mind.
I use Kate all the time and IME it doesn't. In fact it struggles even with relatively small files. In fact try this:
...and watch Kate struggle with a ~100KB file. It seems to be related to the text layout or something along these lines (i.e. it isn't because of whatever data structure it uses for text, modern PCs should be able to handle the naivest of naive text editor structures even when editing a few MBs without sweat) because the slowness is triggered whenever text is about to be displayed (e.g. when scrolling) or lines are added/removed (modifying a single line is fine, but if you move say to the middle of the file, press Enter and keep it down you'll see that it struggles to add new lines).I'm only using for editing text files and source code so it rarely bothers me personally but it can be annoying sometimes.
> ...and watch Kate struggle with a ~100KB file
What do you consider as struggle? Here this works fast and flawless with Kate, VS Code, vim... Though, I did not use /tmp, but $HOME. But I doubt this would make a difference, unless your KDE is broken and Kate struggles because of kio on opening the file.
> What do you consider as struggle?
Choppy scrolling, taking up to a second to add a line in the middle of the text, etc. As i wrote, the issue was with scrolling and adding/removing lines - so most likely text layout stuff. The file I/O was fine.
Just as another data point: I've used Kate for ~90MB JSON files and had no issues at all
Could it be then, that the layout or styling of JSON is performant, while the one for random text is not? But then again what's there actually to style or layout in random text.
Kate seems like yet another editor trying to be everything to everyone while mastering nothing. The author complains about VSCode's extensions clashing, but then proudly lists a dozen Kate plugins they use. That's not simplicity; it's the same complexity with different branding. And let's be honest - if your workflow requires JavaScript snippets to generate blog headers, you're not using a "simple" text editor anymore.
> The author complains about VSCode's extensions clashing, but then proudly lists a dozen Kate plugins they use.
That makes sense; when I was reading this I inferred that VSCode's extensions were clashing, making him loath to use it, but Kate's were not.
> That's not simplicity […] you're not using a "simple" text editor anymore
Kate has literally "advanced" in its name. KWrite exists for those who need simplicity.
I've been using Kate for quick edits but never explored its deeper features. The LSP integration and session handling look particularly useful. Good to see a thoughtful workflow built around a lightweight editor that doesn't compromise on functionality.
Surprised to see so much love for Kate here. I've always felt it has too much UI clutter for to make for a good Notepad.exe alternative, but too few features to be a good VSCode alternative. It seems most default KDE apps suffer from issues like this, to the point where I ended up using for VSCode for everything on my Linux machine (before eventually switching to MacOS and just using the Notes app for everything that isn't code).