I've been using Zed primarily for months but I just switched back to VSCode for 2 reasons, one of which is kinda my fault and the other it's unclear where the fault is.
1. I deleted a few hours of work because I was late night coding and I decided to rename a file before check-in and delete the old version. Well I renamed it and Right-Click -> Deleted the new version by accident.
It turns out Zed has both "Delete" and "Trash" right next to each other in its right-click menu. Delete skips the trash and Zed does not implement Ctrl+Z yet, so unless you have a backup that file is gone. Because I renamed it and had not yet checked in it wasn't in version control yet.
2. For some reason a particular crate in my Rust workspace wasn't having errors and warnings show up in the editor. I messed with configuration a bunch and couldn't figure it out, so I tried VSCode and it just worked without any additional configuration.
> Delete skips the trash and Zed does not implement Ctrl+Z yet,
I'm not going to claim Zed has a good UI in this space, but saying it doesn't implement Ctrl + Z for a feature which is literally "skip the undo-ability of this option" is a bit misleading.
While I understand your point, and think you are correct - if the 'Trash' button is not behind a confirmation box, and it's not undoable, then that is a pretty terrible design choice.
I've just grabbed Zed, and both Trash and Delete are behind confirmation boxes. Trash sends to my Trash (recycle bin on windows), and delete properly deletes. There's no built in undo for trash, but I can restore from the trash/recycle bin normally.
yeah I just tried the windows build and they are indeed behind a confirmation box (for both trash and delete). That's not the impression I got this morning from reading OP's comment
OP here. I have muscle memory from many years of using VSCode before Zed.
"Delete" is the last option in the right click menu for both and when you select it both show a very similar dialogue box asking you to confirm.
VSCode's 'Delete' by default moves the file to the trash and can be undone with Ctrl + Z. Zed's 'Delete' skips the trash and can't be undone with Ctrl + Z.
I should have mentioned the confirmation box but after years of use I've begun clicking through that box so quick I didn't realize the behavior was different in Zed.
yeah, the confirmation box makes the issue slightly less egregious, but having trash and delete next to each other in the context menu is imo still an issue.
As I just elaborated on in another comment VSCode and Zed both have "Delete" in the right-click menu as the last entry. VSCode only has 'Delete' and while it has a confirm screen it goes to the trash with the ability to Ctrl+Z.
After years of deleting files in VSCode I have a muscle memory for that behavior and I just skip through the dialogue. I didn't realize Zed's 'Delete' worked differently until I lost work, so I was just reflexively skipping through its confirm screen as well.
On the subject of surprising behaviour. I did something last week. I don't know what it was, but maybe some kind of fat-finger error.
It randomly deleted 3-line chunks all across my codebase. No rhyme or reason. I was just about to commit a big change, so it was annoying.
It might have been a global search and replace, but there was no clue in the history. And I can't think what kind of regex it could have been.
Or maybe a bug in IPC with the language server?
Anyone got any clues about what I did?
(I love Zed, on Mac and Linux. Even went as far as buying a new graphics card as my 5-year-old one didn't have Vulcan support, which is pretty much mandatory for Zed)
That's almost certainly it. I'd probably searched for common fragment. And 'select all' does indeed select across all of the search result buffers. Thanks!
About no. 1, I think any sane application will show a warning "Do you want to delete abc.c" before permanently removing the file. I cannot verify it now, but pretty sure VSCode has it.
So --
* if there is no such dialog, it's on zed
* If there is such a dialog and you clicked yes, it's on you
It does have such a dialogue but VSCode's identically named "Delete" option has a nearly identical warning dialogue that moves the file to the trash instead.
Zed's dialogue just says "Delete file.txt?" so if you're used to VSCode it's very easy to skip through that dialogue reflexively.
Zed is pretty awesome on macOS and Linux, but I tried the Windows version tonight and things that work great on the other OSes aren't working on Windows. I've noticed:
- Issues with various keybinds not working as expected, e.g. Ctrl+S to save works on my Linux machines but not Windows if Vim Mode is enabled
- Issues with LSPs/diagnostics not working on Windows the same way they work on macOS/Linux
- The terminal holds a lot of assumptions about how the system works that don't hold true on Windows, e.g. "the user has one shell they use for all things" or "setting environment variables in the OS is easy"
I love Zed on my work issued macbook and use it full time, but the Windows version still needs some work.
It isn't as easy as on Linux, but you press Windows, type env, click edit Variables then select User vs. System, the you press add. That's not too complicated.
… And then you completely close all instances of the app that you need to see the changed environment variable, including any integrated terminal processes within that app. And then you relaunch all instances of that app and recover whatever workflow you were currently in the middle of.
That sets them globally, right? I need different variables and values in different contexts. e.g. in VSC I can set variables per-directory in settings.json files.
1. I deleted a few hours of work because I was late night coding and I decided to rename a file before check-in and delete the old version. Well I renamed it and Right-Click -> Deleted the new version by accident.
It turns out Zed has both "Delete" and "Trash" right next to each other in its right-click menu. Delete skips the trash and Zed does not implement Ctrl+Z yet, so unless you have a backup that file is gone. Because I renamed it and had not yet checked in it wasn't in version control yet.
2. For some reason a particular crate in my Rust workspace wasn't having errors and warnings show up in the editor. I messed with configuration a bunch and couldn't figure it out, so I tried VSCode and it just worked without any additional configuration.