Fork me on GitHub

I haven't been using emacs for very long, so maybe this is something I'll just "get used to." But by far the biggest obstacle to me has been the lack of a static visual project tree in the margin of the editor (typical of sublime & most IDEs)


I found a popup-based view (neotree?) but that's not quite what I had in mind. Is there an equivalent that opens in a buffer window?


@kzeidler another option is speedbar or sr-speedbar.


@doglooksgood do either of those have an option to embed the filesystem view as a static "widget" in emacs, or is that simply not how emacs works?


this sr-speedbar will not affected by C-x 1, C-x 0 and some window commands like these


It will always stay there until you close it.


That sounds promising!


@doglooksgood As for workflows, I'm curious – this obviously isn't a "pure emacs" feature, and I'm sure other developers like to quickly survey the filesystem of the project (which might be quite wide/deep). What do emacs users normally use to find their way around these forests?


Just C-x C-f?


projectile is a good plugin, It provides you a lot of commands with project level. If you want to switch to an opened buffer, you can use C-x b. If you want to switch to a file in project, you can use C-c p f (projectile) If you want to search in project, you can use C-c p s s (projectile + ag) If you want to browser your file system, you can use C-x d (built-in feature, dired)


Ooh so that's what projectile is. I noticed it came bundled in my distro of spacemacs, but I wasn't sure what it was for


Many bells and whistles in spacemacs of uses to me that are as-yet-unclear 🙂


If you just want to learn emacs for writing clojure code, maybe you can DIY your configuration piece by piece. just some necessary plugins, won't cost too much time.


I've been wondering precisely this. Do you think it's best to start with a minimal distro and extend it as necessary, or a fat, full-featured distro and pare it down as required?


I don't know if I've found the happy medium between the "pure emacs" experience (which is virtually unusable on mac due to the mapping of meta key to control) and one that has some sensible extensions to make the dev experience more productive


err.. to command


I prefer the minimal distro, just some necessary plugins, and nearly zero custom keybinding.


but some people prefer full-featured distro, because with a heavy customize, emacs can look like a modern editor. just like spacemacs.


I won't lie – the aesthetics of emacs, right out of the box, are very jarring. I've seen enough screenshots of customized workflows that I know it can look quite nice, but it seems to be no simple matter


Sometimes I'll look up some lovingly crafted dotfiles, paste them into my config, and reboot with the new fancy UI loaded. But inevitably the dotfile is customized in other ways that are quite personal and unexpected and I end up deleting it 🙂


to beautify your emacs UI, what you need is just theme + powerline/smart-modeline/spaceline. there's no need to copy others' dotfile.


(to clarify – by "UI" I mean also the view mode, like the various panes that people have configured as part of their emacs setup, the side-by-side REPL, etc.)


I think view mode is flexible and free, the emacser won't want a fixed view mode. just split the window whenever you need. for example, most of time, I only have one window. when I need REPL, press C-c C-z. when job is done, just close that window.


Interesting. I'll keep that advice in mind. I do suspect some of my hangups with emacs are related to features I'm just used to having in IntelliJ, but don't truly "need"


Specifically w/r/t the view components. I think the feature set of emacs is actually quite a bit more robust


And I would think/hope, less bug-ridden as well


to have some feeling how emacs should be used, some video on youtube may help. I enjoy the way the author using emacs in this video: 🙂


@kzeidler A little question, my english is poor, what is w/r/t stands for? w/ is with i think?


@doglooksgood w/ is with! "w/r/t" = with respect to, it's a bit academic, I picked up the convention in school and never quite dropped it 🙂


this tutorial is great, thanks for linking it. I'm simultaneously trying to build my first sockets-based app, so this is perfect


sounds great:slightly_smiling_face: