reddit / emacs
Developer with switch fobia
Passeride · 2022-06-16 19:51
Hey
I'm a developer who preferably lives in emacs town, but find that other tools/ide become necessary at times, mostly due to intellisense , syntax help or debugging
Wondering about my fellow developers, how stubborn are you about leaving the safety of emacs town or do you switch around?
FrozenOnPluto · 2022-06-16 20:06
Use whatever works ... though generally, thats Emacs ;)
Its good to use whatever everyone else on the team is using, but I live 99% in Emacs, and pull up another tool once in awhile when you need a specialist or to compare notes with a team mate, import configuration from a team mate, etc.
TheFrenchPoulp · 2022-06-16 20:10
I'll change job before I stop using Emacs
I have yet to face a situation where I absolutely need to do X or Y outside of Emacs though and I realize not everyone is as lucky
editar · 2022-06-16 20:23
Personally I'm switching around wildly. It's usually an Emacs frame running permanently for any number of things. Emacs is my default go-to for everything. Depending on what I'm doing I'm also using a full-blown IDE. IDEs mostly for either large projects in languages that really like IDEs or debugging.
From time to time I also pop into a short-lived vim for quick edits in the terminal. I usually also have VS Code installed although I never really got into it so I rarely spin it up. And, yes, I'm even hypocritical enough that if I open a text file for a quick look from the file manager I just open it with whatever opens it first.
One thing that is pretty important for me is that I configure vim keybindings in every editor/IDE I use somewhat regularly. There are usually pretty decent plugins for every editor. This way I have some basic familiarity everywhere.
It's a mess but it's a mess that I quite like.
GujjuGang7 · 2022-06-16 21:04
Typically lsp-mode + dap-mode + tree-sitter should cover the essential modern development features.
I'm more annoyed by the terminal emulation, though vterm seems very promising. Eventually I'd like to use emacs for everything like email, notes, development, general editing, file management and terminal emulation.
I find that when you group your tasks into emacs, it makes using the daemon mode even more gratifying
Currently I do switch to dolphin for file management, Konsole for terminal emulation and kmail for email
scherbi · 2022-06-16 22:01
Emacs for everything. Emacs for ever.
deaddyfreddy · 2022-06-16 22:33
I found out that in most cases I don't need terminal emulation at all.
timmymayes · 2022-06-16 22:58
I haven't gotten my first dev job and I already have worry in the back of my mind that I'll be forced away from using it as a Junior.
keepitsalty · 2022-06-17 03:41
I gave up trying to use DAP-Mode and Python with different conda and pyenv environments. Whenever I need to debug, I open VSCode, it was a breeze to set it up and it just works.
p4r24k · 2022-06-17 07:02
could you guide me a bit with this? I would like to get language documentation, autocompletion, and other modern features too
xrabbit · 2022-06-17 08:16
Did you try pycharm ?
alessandrobertulli · 2022-06-17 17:21
You never had to code Java in Emacs, I suppose. Or if you had, please tell how how the ---- did you managed to have a smooth experience 😅
GujjuGang7 · 2022-06-18 00:11
Honestly, I'm new to emacs and just installed the following: dap-mode, lsp-mode, tree-sitter, tree-sitter-langs.
Then, I installed pyright from my distro's package manager and lsp-mode automatically picks it up when invoked on a buffer with a major-mode of python.
If you want realtime diagnostics, there's lsp-ui basically makes emacs look just like vscode.
As for tree sitter, if the langs package has the language, then invoking tree-sitter-hl-mode should work, you'll get nicer, semantic highlighting, and it's incremental so it won't nag you while typing.
GujjuGang7 · 2022-06-18 03:07
But what if you're trying to replace your terminal emulator with emacs?
Starlight100 · 2022-06-18 03:20
I have successfully used Emacs for Java. Using ctags to jump to definitions. Ripgrep (with rg) to find references. And **counsel-git** to open files by name. Although I do tab over to Netbeans for debugging.
To approximate auto completion, I jump to the the class definition in a new window so I can see the members. This is similar to having auto-completion-popups, although more clunky. C-M-v and C-M-V to scroll the popup window. M-/ assists with completing the members.
ctags/grep has it's flaws (regex based). But I can absolutely fly over code bases, in a language agnostic way. I can define new ctags regexes for any new lanugages that pop up. It's not perfect but nice to have the old school tools in your back pocket.
deaddyfreddy · 2022-06-18 08:54
I don't know, I don't try, Emacs, being pretty old and imperfect, is still light years ahead of terminal emulation.
alessandrobertulli · 2022-06-18 14:12
I see. It is a way, but it is still behind other complete IDEs like IntelliJ. For example, how do you launch your program (even if you are not debugging it)? You go to NetBeans? How do you compile your project?
LSP tries to answer, but the Java server (jdtls) is still quite buggy
Starlight100 · 2022-06-19 03:07
> How do you compile your project?
M-x compile of course. You can use M-x compile to do whatever you want. Maybe set the value of **compile-command** in .dir-locals.el for the whole project. You can run a maven command, a make file, bash script, or anything.
alessandrobertulli · 2022-06-19 07:03
Thanks! Yes, I do the same with projectile. And what about running/debugging?
Starlight100 · 2022-06-20 02:36
For running and debugging I use netbeans. But DEBUG logs are an alternative to a stepping debugger. Observing the state is what you're after, multiple ways to achieve it.
For running you can also M-x compile, or define your own run function. Maybe something like
(defun my-run ()
(interactive)
(shell-command "java progname"))
Although a make file might be convenient to handle several targets. clean, build, run, build-and-run, etc. Even if you use something else like maven, you could still wrap some things in a make file.