Remix.run Logo
gopalv a day ago

The "Emacs doesn't have a file-tree" is when I stopped short and wondered what this person's background is in IDEs.

My emacs days are 1999 during my "functional or get out" phase, but my .emacs had close to 4000 lines in it, including xterm mouse support, a clone of midnight commander + sftp to a wehbost and deep integration with ctags/cscope/c++filt. There was even a line by line debugger with custom .gdbinit commands - look at the php project's gdbinit[1] if you want an idea of how to walk your own super special data structures.

You can't put Emacs in an IDE comparison and say anything about features without at least one person saying "well, actually".

I eventually switched to vim but that had to do with needing to ssh into 100k+ machines on support rotation & never having emacs on any of them.

[1] - https://github.com/php/php-src/blob/master/.gdbinit

godelski a day ago | parent | next [-]

He said the same about vim, but did everyone forget about netrw? Here, go into vim and type `:Ex`. You can also have mouse support. (Netrw can also do trees if you don't like the format, go look at `g:netrw_liststyle`)

My friend on eMacs say something similar, but you don't really need as many plugins as people typically use. There's lots of native ways to do things. It's totally fine to prefer NerdTree over the native netrw but it's not like you can't do file exploring. Hell, I use fzf most times (`:GFiles`). But what I don't like is when people confidently say "x can't do y" when it can. I'll give people a break if it requires plugins or complicated commands, but native ones? It just shows ignorance.

While we're on the topic, stop using Esc, use <C-[>. You don't need Esc. And type `set -o vi` into bash/zsh. It's still worth learning your tools. You'll find lots of solutions to problems that only exist because of ignorance. Maybe those solutions are better, but the bigger problem seems to be ignorance. It's fine to be ignorant too! There's a shit ton of docs, no one expects you to read it all. But it's a good place to start

oxidant 19 hours ago | parent [-]

I like capslock bound to esc.

godelski 18 hours ago | parent [-]

There's nothing wrong with that. Everyone has their own vimrc, you do you.

But most people don't know about <C-[>, which works across your terminal, It isn't just a vim thing.

LiamPowell a day ago | parent | prev | next [-]

It also incorrectly says that Emacs has no mouse support. When you first open Emacs the default buffer has clickable links in it, it's impossible to miss the fact that Emacs has mouse support if you ever even open it.

apetresc a day ago | parent | prev | next [-]

Considering that the very first paragraph of their README has:

> toast is for the developer who wants to stay in their terminal without spending hours getting it up to snuff.

I think he knows you can get anything you want in emacs/vim. The pitch is that toast is batteries-included.

godelski a day ago | parent [-]

Mouse support and filetrees are included in both vim and emacs. The batteries are already included and have been for essentially ever

lilbigdoot 21 hours ago | parent [-]

Plenty of easy configs for them too. Lazyvim has been pretty batteries included and easy to modify for me and I'm definitely the type that did not read much of the docs

alecfv26 a day ago | parent | prev | next [-]

I’m surprised you wouldn’t use TRAMP for remote access then?

mplanchard a day ago | parent | prev | next [-]

Yeah, speedbar and dired are built-in. Speedbar by default still opens in a new frame I think, but in emacs 31 there’s a config option to make it open in a side window without any additional tweaking needed.

cyberax a day ago | parent | prev [-]

Sigh.

Long time ago, in mid-2000-s I tried to switch to Emacs or Vim from Visual Studio.

I wanted to have a simple project file tree as a side panel and multiple editor tabs on the right. I spent a week toying with various elisp scripts, Vim plugins, and digging out information from a then-moribund XEmacs mailing list.

And I couldn't do what I wanted in the end. Nothing worked seamlessly or reliably.

Can this be done out-of-the-box now?

iLemming 18 hours ago | parent | next [-]

> Can this be done out-of-the-box now?

Yes, with built-in packages there are at least two different ways - speedbar, or Dired in a side window. And what even "out-of-the-box" means? In Emacs-land packages are not like extensions in other editors and IDEs, they more like recipe books. You can collect literally over a thousand of them without ever explicitly loading them until that specific moment that happens once in a decade and you won't ever notice their presence until then. And there are tons and tons of different packages that do the sidebar directory listing - treemacs, dired-sidebar, dired-subtree, direx, ztree, etc. You seriously thought that in 50 effing years nobody, just nobody thought of making a sidebar directory tree that works in Emacs?

> Nothing worked seamlessly or reliably.

Skill issue. You. You couldn't figure it out. And then decided it can't be done, period. Brilliant.

godelski a day ago | parent | prev | next [-]

  > Can this be done out-of-the-box now?
It always could be. Go into vim and type `let g:netrw_liststyle = 3` then `:Vex`. The window size won't be what you want, but is the core idea? Because if it is, you just set the liststyle in your vimrc and have netrw start on load, with proper pane location and width.

That or most people have used NerdTree for a decade

cyberax 21 hours ago | parent [-]

I see, so nothing has actually changed within the last 20 years.

A project tree is NOT a file list. It's a persistent panel that allows you to navigate within the project. It should also integrate with tools like recursive search (so it doesn't recurse into ignored folders like `node_modules`), build tools, code intelligence, and a debugger.

godelski 19 hours ago | parent [-]

A lot has changed, but a lot of features have been there for a long time too. There's a reason people use neovim too

  > It's a persistent panel that allows you to navigate within the project.
Trivial to do with netrw. Again, NerdTree is a common alternative

  > It should also integrate with tools like recursive search (so it doesn't recurse into ignored folders like `node_modules`)
`:vim /re/ */* +`

Or checkout telescope, FZF, or rg. There's plenty of integrations

  > build tools
`:make`, `:grep`, `:compiler`. I mean you can do any terminal command...

Or plugins, dispatch.vim, overseer.nvim, vim-test

  > code intelligence
Ctags, or nvim has a LSP so I don't use ctags (or cscope) much anymore. Common plugins are: coc.nvim, ALE, vim-lsp, YouCompleteMe

  > debugger
termdebug Is native? Also check nvim-dap (Neovim), vimspector

Most of the plugins listed mostly just make things nicer, not add functionality that doesn't exist. There's a ton of native things I didn't even list.

I'm not saying you have to like it nor that it looks/works the way you like/want/are used to, but you're claiming the functionality doesn't exist and that isn't correct. If it want you argue over style, that's perfectly okay. The reason a lot of us use vim/emacs is because we customize the tools to what works best for us. That's one of their best features! You don't have to use vim, emacs, or any TUI. The tools you should use are the tools best suited to you. Full stop.

But I'll also add that I haven't seen a single thing VS Code or any GUI IDE can do that I can't do in vim while also using a lot fewer compute resources to accomplish it. Personally, I program better and faster in vim because I have years of experience in it and I'm at the point that reaching for the mouse just slows me down. The learning curve isn't that steep to get pretty comfortable in vim, but the depth is enormous and that takes a long time to master. But honestly, the latter is true about most tools. And frankly, I'd rather have a tool where I can keep progressing and do crazy things in than a tool that caps my limits or puts a huge barrier if I want to extend. I moved away from IDEs because I found I could do more in vim quicker. But that's me, not you. Your experience will certainly be different and there's nothing wrong with that. We're just different people and that's perfectly fine.

The only thing really being argued here is your claim that "x can't do y" and as a user of "x", I assure you, I can do "y"

cyberax 18 hours ago | parent [-]

As I said, nothing has changed.

Instead of a coherent IDE, you have a lot of semi-broken pieces that don't work well together.

And that's also why projects like this one are really helpful.

godelski 10 hours ago | parent [-]

K

flexagoon 21 hours ago | parent | prev | next [-]

I don't know about emacs, but its definitely doable in neovim. I don't know if the built in file explorer suits your needs, but now that nvim has a proper built in plugin manager, it's just one line of config to install neo-tree or something like that.

cyberax 20 hours ago | parent [-]

`neo-tree` is indeed close to what I'd love to see in a real text-mode IDE. I'm going to play around with it.

mplanchard a day ago | parent | prev | next [-]

Yes, speedbar, with speedbar-prefer-window set to t

Or use any of the various file tree packages in [M]ELPA

kccqzy a day ago | parent | prev [-]

XEmacs has always been moribund. Use GNU Emacs.