7 ms·
I recently moved from EMACS (after using it for ~10 years & ~6 languages) to VSCode. There are loads of things that I miss but overall it's been a fairly smooth
by wwalser 10y ago
I recently moved from EMACS (after using it for ~10 years & ~6 languages) to VSCode. There are loads of things that I miss but overall it's been a fairly smooth transition.
I'm moving because I spend most of my time writing javascript and felt that no combination of emacs modes allowed me to keep up with a proper IDE. Emacs is a tool to learn once and use for a lifetime (and I will continue to use it for other editing tasks) but I found that I was increasingly having to learn outside tools in order to gain the benefit that IDEs could hand me for "free" (free like a puppy, retraining your fingers takes months).
Things I love:
- Intellisense is immediately superior to anything I've used in EMACS.
- Debugging from my editor. This was available in emacs for C, PHP & Java using GDB or similar but it never made it's way to javascript as far as I can tell.
- Goto definition.
- Good typescript and Flow integration
Things I miss:
- IDO Mode (FML I hate Finder for moving through directories)
- Creating files with just the keyboard (probably possible but I haven't figured it out yet).
- Kill ring
- Moving around the code with just a keyboard (ctrl-v and the sort).
- Non-intellisense completion. When your caret is at the end of a word, Command-\ in EMACS completes to another word from the same buffer that has the same prefix and continue to swap through words on subsequent presses. Very useful in a dynamic language.
- ggregoire 10y agoI love VSCode and Flow but to be honest, the Flow integration could be better (and I'm sure it will be, it's just a matter of time). There is a bunch of annoying bugs waiting to be fixed, e.g. the one about the imported types [1]. In the other hand, I don't blame the maintainers. The Flow team is a really small team and the VSCode extension is obviously not the priority. :) If you guys see this message, thanks for the amazing work on Flow! [1]: https://github.com/flowtype/flow-for-vscode/issues/23 https://github.com/flowtype/flow-for-vscode/issues/23
- wwalser 10y agoI tried Flow but ended up using Typescript for my current project. If I were to go hard on Flow I'd probably be using Atom with Nuclide instead of VSCode. I actually like Flow slightly better but the community created type libs for TypeScript convinced me to go that direction.
- ggregoire 10y agoI gave another try to Atom recently because of Flow and Nuclide, but I definitely prefer VSCode. By the way, the Flow extension for VSCode is a port of Nuclide, so it's almost the same end result I guess.
- saghm 10y agoDo you use any extension to use emacs keybindings? I've tried out VS Code a couple of times and wasn't able to find an extension for emacs keybindings that had everything I use in it. When I tried out Atom, one of the packages for this worked fairly well (although I have other issues that prevent me from using Atom as my full-time editor)
- lowmagnet 10y agoThey just introduced keymap modes, including emacs.
- wwalser 10y agoI didn't know this! I just created a few keyboard shortcuts that I commonly use manually. Not perfect but it's gotten me over the hump. I may check out the emacs bindings on a slow day.
- saghm 10y agoOh, not sure how I missed this! I'll have to try it out EDIT: On trying it out, it seems to have reasonable support for most of the editing functionality, but the shortcuts for handling split buffers (C-x 0, C-x 1, C-x o, etc.) is completely non-existent. I'm unsure right now whether I'd be able to define them on mine own or whether I'd be willing to stick with it if I couldn't.
- Tyriar 10y agoIf it's missing functionality you need you could request by filing an issue to https://github.com/hiro-sun/vscode-emacs https://github.com/hiro-sun/vscode-emacs
- saghm 10y agoIt turns out the changes were pretty trivial (partially due to vscode apparently not allowing vertical split), so I just put them in my keybindings.json. For anyone interested: https://gist.github.com/saghm/6f97aea92029fec62067e658c6f02f58 https://gist.github.com/saghm/6f97aea92029fec62067e658c6f02f...
- lobster_johnson 10y agoCreating files: Command palette -> New file. There's also a new plugin called Advanced New File. For completion: Ctrl-space will force a completion at your current location.
- wwalser 10y agoThe command palette seems like the sort of thing that'll have more power than I'm currently giving it credit for. How do you create a file outside of the directory that you're currently editing?
- lobster_johnson 10y agoThe Advanced New File [1] plugin lets you type a relative file name. [1] https://github.com/dkundel/vscode-new-file https://github.com/dkundel/vscode-new-file
- suprfnk 10y agoIf you create a new file, when pressing save, you get a save dialog. In there you can navigate to the folder where you want to save the file.
- wwalser 10y agoI'm aware. If you follow the thread, we're talking specifically about creating a new file using the command pallet. Also, I mentioned above that, while I'm aware of the ability to create a file using finder, I'd rather not.
- rayiner 10y ago> - Intellisense is immediately superior to anything I've used in EMACS. For JS maybe. Irony with irony-clang is the best C++ autocomplete I've found. VSCode's C++ Intellisense is crap.
- wwalser 10y agoI have unfortunately not done much C or C++ development since uni. I know that SLIME always seemed far and away the best lisp editing experience.
- omaranto 10y agoIt's funny about SLIME: it's arguably even better than using Emacs for Emacs Lisp!
- zarkov99 10y agoDo you have any experience with rtags? Is irony really better at auto complete?
- krasi0 10y agoHow does it compare to resharper C++ in case you have tried both?
- jordache 10y agoEmacs doesn't do go to definition? Eeek
- 0942v8653 10y agoVim doesn't either. You have to use third party plugins.
- bitwize 10y agoInstalling tern-mode from MELPA makes M-. for JS work in Emacs.
- wwalser 10y agoDidn't know this, will try!
- wwalser 10y agoIt does for languages where you can find a mode that supports it. I never found one for Javascript. Honestly though, while I like the feature, I never notice that it's not there when I'm using Emacs. I can get around in a JS code base. The only environment that I've been in where it was critical was large Java projects. I would have been lost without being able to goto def though maven dependencies. Having to read XML to figure out where stuff is would have driven me insane.
- mhd 10y agoVisual Studio Code itself doesn't either.
- hibbelig 10y agoFor the IDO part: If you open a folder in VS Code, then you can use Ctrl+P or Ctrl+T (I keep forgetting which), and that allows you to type part of the file name, and then it will find it. The best is, it searches the entire subtree of the folder you opened.
- wwalser 10y agoI use this often in vscode. It's good for finding files but ido-mode is everywhere.
- krylon 10y agoAs a long-time emacs user, I have recently taken a look at VSCode, and while I am not ditching emacs anytime soon, the experience was a lot more pleasant than I would have expected. I plan to use it for some toy project over the holidays, see how that works out. > Moving around the code with just a keyboard (ctrl-v and the sort). That is something I have missed in pretty much every IDE I have ever used, except OpenWatcom's, which allows to use vi-keybindings. (Okay, so Eclipse supports Emacs-ish keybindings, too, but it felt really weird using those.) I think, there is a plugin/package for VSCode that implements emacs-style keybindings, but I could not get it to work properly. :-(