I've used Atom for the last several years and had been mostly happy with it. Over Christmas I switched to VS Code though and I don't think I'll be looking back. Code is faster and has a noticeably less lag. One of the reasons I moved was seeing new packages coming out on Code and leaving Atom in the dust.
For a month of Flutter I used Android Studio and found it a bloated and complex. I've since switched Flutter development to Code as well.
The Atom->VS Code keymappings really made VS Code stick for me. Usually when I get used to keymappings it's hard to get productive quickly with a new editor.
I'm a Senior DevOps Architect and publish most of my projects as open source. I have a wife, a son and a real life in Hamm, Germany. In my part-time I enjoy making games, music and acting. (He/him)
I used to tweak and configure commands and settings but it was too much work so now I try to learn the defaults (unless it's something I really don't like).
My case was that some weeks ago I started loving to code on my 4gb & 1.44Ghz laptop with no reason, I was used to use Visual Studio Code and Atom, but both of them are very laggy on my laptop so I started searching for a new editor and... I found Sublime Text!
It's the fastest code editor on the web!! No lags at scrolling or writing!
I felt in love since the first second I tried it!
I don't think JetBrains products are suitable for 4G RAM machines, it feels laggy even on my i5 8250U 8G RAM 512G SSD laptop.
When I need to do some web development on my 4G RAM Surface Laptop, I use Brackets which is quite feature-rich out-of-the-box for web development and has a far smaller memory footprint than VSC and Atom (not to mention those JetBrains offerings), although the responsiveness is only on par with VSC.
If I need to do some more general code editing quickly with the low-spec Surface Laptop (which is rare), I use the Caret Chrome App. Although Google officially stopped supporting the Chrome Apps on platforms other than Chrome OS, they can still be installed and used cross-platform with their direct download links in the Chrome Web Store. As I need to use Chrome to browse the web anyway, using Caret means it takes next to nil extra resource.
Hi @Mkenzo thanks for the heads up. I actually laughed when I saw the notifications and that there's a deleted comment. Don't beat yourself up just yet, although I will advise you to work on your dev ethic, or something like that, im not sure. The more you interact in dev communities, the more you'll understand.
I started learning Vim in october because apparently I had nothing better to do. It started out like a nice hobby, every few days I would open up a file, tried to move things around, delete stuff, learn a new command or something and it was nice until I said "Guess it's time to make my own vimrc". Oh boy. It turns out that it was way more entertaining than I was expecting.
The plugin hunting didn't last very long. I found a post about Vim that had a phrase that stuck with me "let sublime be sublime, let Vim be Vim", that was enough to convince me to not try and make Vim behave like Sublime text. But there was still one thing I wanted and that was a good fuzzy finder, and my friend google had the answer for that, fzf. FZF it's best thing ever, it's the only plugin that I would consider essential (even though Vim has a search feature already).
The real time sink was the keymap. It was so dificult to "get it right". I spent an afternoon (on a week day) browsing in github repositories looking for vimrc configs. I'm really happy with the "final result".
The next stage of the journey was trying to find a way of using Vim outside of a terminal. I tried a few Neovim frontends and other editors emulation. In the Neovim GUI department I gotta say that I really liked Onivim and nvim-gtk.
What I liked about Onivim was the integration with language servers, it enables features like goto definition and autocomplete like in VSCode. It consumes like half of the resources that VSCode requires it is still an electron app that takes quite a bit of RAM.
Nvim-gtk is my favorite way of using Neovim, is basically like a terminal except that it provides a few widgets that I appreciate like a file explorer, "real tabs" with a closing button, a plugin manager menu and other stuff. It's written in Rust so is cross-platform, and fast. The only thing that is a bit annoying is the fact that I can't make the cursor stop blinking.
And so now that I have a Vim setup that makes me happy I've decided to go back to Sublime text and see if can get some of that modal editing that I liked about Vim. So far I have tried the NeoVintageous plugin (If anyone wants to learn vim but don't want to use it yet that plugin is a good place to start). I have to say that is a good vim mode, but I stopped using it because it was missing some features and a few others do not behave like I would expect, is like that off by one error that you just can't fix.
Since modal editing is still posible within Sublime text I'm making my own keymap settings (I keep them here) in the form of a package so I can disable everything when I don't need it. The keymap is inspired by Vim but instead of trying to be exactly like Vim I remap Sublime's built-in commands to get a more consistent behavior. I don't get the composable commands that Vim has but I still get a little bit of the modal editing that I wanted.
You can use any editor for dart, using sublime text as code editor and a terminal/command line as you launch the app. But you don't get the debugger inside of the sublime text, therefore only vscode and intellij idea are the only options available.
I dont think vscode is lighter than intellij idea as it would increase the ram usage overtime. From 700mb~6GB when idle(no emulator).
I must say that I've never experienced the memory creep whilst coding go, python, vue and polymer.
Perhaps there is an issue with the dart/flutter plugins?
Once I'm more familiar with dart and flutter, I might go to sublime.
They're both heavy RAM usage. it's not about the electron, it's the OpenJDK Library that keeps the RAM growing. the DartVM is only 150~200mb while the flutter plugins is just 30mb~ less.
I am a JetBrains guy, but I use vscode and sublime for lightweight text editing.
I am currently playing with clojure and have decided to give vscode a chance as my main editor (mostly due to IDEA clojure plugin being pretty crappy IMO). I am not too thrilled. That editor feels just as slugish as JetBrains IDE-s, but doesn't offer nearly as much functionality.
Cursive is the one I didn't like. Maybe I missed something, but I found it almost impossible to actually type my code due to its super-strict and kind of broken pair matching engine.
Honestly, I don't understand the hype about switching IDEs. I've been on PHPStorm since I started web development professionally and used sublime for small scale projects before.
I tried VSCode occasionally, but found myself always switching back. All those features that Atom and VSCode list as hot new features have been in PHPStorm for years. I also tend to miss the double shift feature in other IDEs. Since Jetbrains provides free licences for open source projects, I can't find a reason to switch.
I still use sublime as a simple, fast text editor on the side, though.
IDE always focuses one Particular Framework/ Platform (For eg. You cannot work on Ruby on rails project in PhpStorm)
IDE contains most features already build in for that platform.
IDE always contains a single project file that lists the project code files and related actions
In a Code Editor,
Code editor doesn't focus on any specific Platform or framework. Code Editor can work across all frameworks (For Eg. VSCode can be used with Assembly programs that runs in Arm and also HTML Code that runs in a browser)
Code editor is bare bone and contains minimal features like syntax highlighting out of the box. Most Features are provided via plugin. Users, depending on the technology they work, should install necessary plugins
Code editor doesn't have a central project file as such (This feature is available via an extension anyway)
I've recently started using Intellij IDEA for Scala development, and it's quite nice. The RAM usage is really high but it has a lot of handly plugins for Scala making it a must have for me.
It's recent in terms of how long I've been coding... but my project last year was to switch from Sublime to VS Code. I guess that means I've officially been using VS Code for a year now. I couldn't be happier with it. I basically carried over the keyboard shortcuts from Sublime so I didn't have to learn anything new. It's prettier (IMPORTANT THINGS), the Git integration is 💯, and it has everything I need to successfully do my work!
Last year I worked with:
Atom -> VSCode -> Atom -> vim
No reason for me to switch back to Atom at one point other than my weird resistance to downloading VSCode on my Mac. VSCode is my favorite text editor and I love the built-in terminal. Atom is slow. vim has the potential to make me a little faster, which isn't correlated to being a better programmer, I just enjoy the speed and proficiency. I have some plugins, like a fuzzy finder and a cute terminal, but I still don't know what I truly need of vim quite yet. vim is already neat so I can't imagine dozens of plugins being necessary. Definitely creeping on plugins posted here.
Nice topic, Ben!
EDIT: Guess I should also mention that my switch to vim is going well so far 🔥
Education enthusiast. Ex Groupon Merchant Engineering, Engineering and Growth at Verbling (YC'11) and cram school founder in Taiwan.
Currently building Alchemist Camp.
I love the integrated terminal, too. Are you using wim via the vscode plugin or have you jettisoned vscode completely?
I use the plugin and have vim mode enabled a lot, but I often disable it for certain kinds of tasks. It's gotten to the point where vscode is the only terminal I use and it's where I do all my markdown editing, etc...
I use vim via the vscode plugin when I'm on my desktop, which is Windows. To be honest, I don't really get the same experience with vim in vscode like I do on my Mac with just vim. But I haven't messed around with the plugin much. Still prefer iterm2/ohmyzsh, but vscode is, like you said, better for certain tasks.
Actually I use different editors based on the requirement.
— IntelliJ IDEA or Android Studio on my daily job. They are feature-rich editors that eats a lot of RAM, but it's all worth it.
— VS Code, for lightweight editing, like web projects, Flutter, editing large debug logs, or just browsing around huge Android project files without opening in the heavyweight IntelliJ/Android Studio.
— Nano, if I am over a terminal connection. This is my preference over the Vi(m) editor.
Extra: Sometimes I use VS Code only to use the REST Client plugin because of the flexibility that the plugin provides.
Sorry for a slight off topic , but nano is forever. I have tried so many editors ( vscode,visual studio, sublime, atom, vim ), but nano is the killer. Dead efficient. Still not clear why people love ide? ((((;
is it a real question? fulltext/regexp search through source directory and dependencies, integrated version control (highlighted edited lines, browsing history for each line/change), one-click go-to definitions, syntax highlighting, etc.
Well. It was not a question, just a statement. Don't want to start flame here, (: But for those things you've mentioned git cli / grep / perl / diff / tomtit works perfectly for me . I would say with even better level of effectiveness in comparison with IDE-like tools
then there's not much to add. neither I want to argue about others' workflow.. but it seems to me that you're missing the point: "integrated" environment. your workflow is a based on UNIX philosophy, but not every programmer works on unix-based OS. not everybody needs to know well bash, perl, sed, etc. and lastly, there are reasons why mouse & GUI were invented: visualisation of information. it just depends on what sort of work you do.
I am doing quite well with every task requires me to write code, because it's just a text. Linux tools work perfectly with text/source code. I don't need IDE to make text search and replacement. An "integration" toolkit is almost pre-installed on every Linux box, if it is not, it's just a few commands of package manager to add desired tools.
I switched from VSCode to VIM, and I'm glad I went this way.
I had some familiarity with the "language" of VIM, but it was on the very basic level. All of it started after I installed a VIM plugin for VSCode. Of course, in the beginning, it was hard, but after about a week, I became as efficient as with the "vanilla" VSCode.
After another week, my speed of editing has noticeably increased. I liked it, and I felt like it was the time to build my own .vimrc.
It took me about a week to set up the config that kind of matched my needs.
After two weeks, I realized that I've installed too many plugins, and I wasn't utilizing VIM's built-in features enough. The decision was made, I'm going to rebuild my config from scratch. I tried to adopt a problem-solving mindset, every time I bumped into some rough edge, I tried to solve this problem with a vanilla VIM features, only after that, I was reaching for a plugin.
These work for me the best:
fzf (multi-use fuzzy finder for file/tag/phrase search)
vim-ranger (a terminal file explorer/manager, I use it outside vim also)
goyo.vim (distraction-free writing mode, I use it mostly for prose)
vim-commentary (you don't need to know comment convention for all the filetypes)
vim-surround (change/add/delete common surroundings - quotes/tags/parenthesis)
ALE (Asynchronuous Linting Engine, I use it to run ESLint)
YouCompleteMe (a great autocompletion engine)
emmet-vim (write HTML/CSS like a wizard)
vim-import-js (auto-import a JS variable)
ctags (it scans your project and extracts the tags - significant variable names)
and a few JS/TS specific plugins.
My productivity and speed of editing have increased. It's worth mentioning that tweaking the .vimrc was a ton of fun for me. Almost every day is a source of new tricks. In addition to VIM, I use tmux as a terminal multiplexer, so all of my development takes place in one terminal window.
Sublime Text is a great editor, and, to be honest, I've never seen a GUI code editor opening so fast as Sublime Text. The only thing I missed in Sublime Text was a better language support, including linting, code completion and etc. That is why I switched to Visual Studio Code.
From Visual Studio Code to TextMate
VS Code is great. The UI, the editing features, the extensions and its frequent updates. By the way, it is, IMHO, the best code editor for JavaScript and its children (TypeScript, Dart, etc).
As a Ruby developer, there is a lot of things I miss in VS Code. After all these code editor switches I've learned this is not a editor problem, but a language one. Ruby is kinda hard to auto complete, because of its characteristics, compared to Java or C#, for instance.
I had a great experience with TextMate. It has a lot of macros and other kinds of tooling that really helps developers. Also, it's very famous among Ruby devs. The only problem with it is that it is not updated very often. There are some really old tools & scripts from Rails 3-4 that just don't work anymore.
From TextMate to Vim
I really liked the idea of macros and automation inside the code editor, and Vim offered me that. The learning curve took me ~3-4 weeks, but that worth it.
Vim is great, but it has to be fine-tuned to work in its best. So, I went back to VS Code.
From Vim to VS Code
My final review is that VS Code is really great. One of the things that I really like in it is the VS Code Live Share extension, perfect for pair programming (I've used Atom similar feature and it was really bad back then).
This really resonated with me as I have a similar story. Notepad++ and Nano in the early days at school until I found Sublime Text. Sublime is great, like really great. It's so fast. To this day I still use Sublime for quick editing here and there if I don't want to have a whole extra VSC instance running for a directory full of bash scripts or something.
Then I came across vim. I didn't have the patience to sit down and grind out that learning curve as you were so brave to do, but I still use it. Honestly it's the easiest way to quickly edit a file, whether it's a simple SSH config, another bash script, or for some quick notes. Not having to leave your terminal in some operations is a nice QOL boost. But wow it can be daunting.
Now VSCode. I can't possible explain how nice this is, and maybe it's because of the wonderful web dev support Microsoft has been adding over the year. I was on Atom for a very brief period until the startup time became well over a minute and that editor would chug opening and working with large files. Maybe that's gotten better, but I have no want to move back. VSCode is fantastic.
I swapped from RubyMine to VSCode in the last few months. I'm not entirely thrilled with the change, as RubyMine had more powerful code inspection, was better at jumping to method definitions, etc. However, there were other things I wanted to do with the money that I would have spent on the IDE.
I do have a fallback license for RubyMine 2017.2.5 that I would be more than happy to keep using, but we use WSL at work, support for which only made it into RubyMine in version 2017.3.
So close, yet so far.
If anyone uses VSCode for Ruby on Rails and has any hot tips about getting the code inspection to run smoothly, I'd love to chat!
Top comments (95)
I've used Atom for the last several years and had been mostly happy with it. Over Christmas I switched to VS Code though and I don't think I'll be looking back. Code is faster and has a noticeably less lag. One of the reasons I moved was seeing new packages coming out on Code and leaving Atom in the dust.
For a month of Flutter I used Android Studio and found it a bloated and complex. I've since switched Flutter development to Code as well.
The Atom->VS Code keymappings really made VS Code stick for me. Usually when I get used to keymappings it's hard to get productive quickly with a new editor.
I can totally relate. I'm usually a IntelliJ-fanboy, but the keymappings-template for vscode really let me feel like home in it.
I used to tweak and configure commands and settings but it was too much work so now I try to learn the defaults (unless it's something I really don't like).
People don't realise how bloated Android Studio is until you use a lighter editor like VS Code 😄
Atom's speed (not it's extensibility, which I loved) put me off it and almost off of trying VS Code.
I'm glad I did though, over the last couple of years I gradually moved from Sublime Text to VS Code and I'm very happy now! Atom is but forgotten.
Honestly, the hardest part about getting moving in flutter development is getting the AVM going tbh... It's 2019 ffs!
Hello Ben,
My case was that some weeks ago I started loving to code on my 4gb & 1.44Ghz laptop with no reason, I was used to use Visual Studio Code and Atom, but both of them are very laggy on my laptop so I started searching for a new editor and... I found Sublime Text!
It's the fastest code editor on the web!! No lags at scrolling or writing!
I felt in love since the first second I tried it!
Well Ram and Processor speed is not the issue , try upgrading to a ssd , it makes all the difference.
It already has an SSD, but it's a tablet/laptop so it's not as fast as an SSD for PC.
Did you buy the license? If not how are popups. I'm also stuck on a 4GB machine
I used Sublime Text for a long time. For a while with the popups and then after purchasing a license.
They are fairly unobtrusive honestly, and it's a great editor.
I think by the time I can afford a license, I would have purchased a stronger machine 🤔 I'm still technically a student
If you are a student, JetBrains provides license for the whole suite for students.
jetbrains.com/student/
I don't think JetBrains products are suitable for 4G RAM machines, it feels laggy even on my i5 8250U 8G RAM 512G SSD laptop.
When I need to do some web development on my 4G RAM Surface Laptop, I use Brackets which is quite feature-rich out-of-the-box for web development and has a far smaller memory footprint than VSC and Atom (not to mention those JetBrains offerings), although the responsiveness is only on par with VSC.
If I need to do some more general code editing quickly with the low-spec Surface Laptop (which is rare), I use the Caret Chrome App. Although Google officially stopped supporting the Chrome Apps on platforms other than Chrome OS, they can still be installed and used cross-platform with their direct download links in the Chrome Web Store. As I need to use Chrome to browse the web anyway, using Caret means it takes next to nil extra resource.
Hi Mkenzo, I wouldn't share cheat/crack codes on a public website populated by developers who probably earn money from apps like that one.
;-)
As @rhymes mentioned, please don't share license codes for a product meant to be paid for.
I am so sorry. I am new at this platform. I don't have enough experience. Won't happen another time.🙏
Don't worry, welcome to devto!
Hi @Mkenzo thanks for the heads up. I actually laughed when I saw the notifications and that there's a deleted comment. Don't beat yourself up just yet, although I will advise you to work on your dev ethic, or something like that, im not sure. The more you interact in dev communities, the more you'll understand.
Okay Ben, but I'm gonna tell you the whole story.
I started learning Vim in october because apparently I had nothing better to do. It started out like a nice hobby, every few days I would open up a file, tried to move things around, delete stuff, learn a new command or something and it was nice until I said "Guess it's time to make my own vimrc". Oh boy. It turns out that it was way more entertaining than I was expecting.
The plugin hunting didn't last very long. I found a post about Vim that had a phrase that stuck with me "let sublime be sublime, let Vim be Vim", that was enough to convince me to not try and make Vim behave like Sublime text. But there was still one thing I wanted and that was a good fuzzy finder, and my friend google had the answer for that, fzf. FZF it's best thing ever, it's the only plugin that I would consider essential (even though Vim has a search feature already).
The real time sink was the keymap. It was so dificult to "get it right". I spent an afternoon (on a week day) browsing in github repositories looking for vimrc configs. I'm really happy with the "final result".
The next stage of the journey was trying to find a way of using Vim outside of a terminal. I tried a few Neovim frontends and other editors emulation. In the Neovim GUI department I gotta say that I really liked Onivim and nvim-gtk.
What I liked about Onivim was the integration with language servers, it enables features like goto definition and autocomplete like in VSCode. It consumes like half of the resources that VSCode requires it is still an electron app that takes quite a bit of RAM.
Nvim-gtk is my favorite way of using Neovim, is basically like a terminal except that it provides a few widgets that I appreciate like a file explorer, "real tabs" with a closing button, a plugin manager menu and other stuff. It's written in Rust so is cross-platform, and fast. The only thing that is a bit annoying is the fact that I can't make the cursor stop blinking.
And so now that I have a Vim setup that makes me happy I've decided to go back to Sublime text and see if can get some of that modal editing that I liked about Vim. So far I have tried the NeoVintageous plugin (If anyone wants to learn vim but don't want to use it yet that plugin is a good place to start). I have to say that is a good vim mode, but I stopped using it because it was missing some features and a few others do not behave like I would expect, is like that off by one error that you just can't fix.
Since modal editing is still posible within Sublime text I'm making my own keymap settings (I keep them here) in the form of a package so I can disable everything when I don't need it. The keymap is inspired by Vim but instead of trying to be exactly like Vim I remap Sublime's built-in commands to get a more consistent behavior. I don't get the composable commands that Vim has but I still get a little bit of the modal editing that I wanted.
Since I've got 12GB of RAM. I'll be sticking to Vscode/IntelliJ IDEA. I'm a dartisan/flutterian guy so I've got Vscode as my code editor for now.
But I would prefer sublime text for low RAM usage and non-electron apps. Haven't tried emacs or vim.
Yes, the flutter with emulators is rather heavy. I heard they are working on a more native emulator, which will be much faster and lower mems.
My (current) 8 year old machine with 6GB is just not enough for flutter.
That said, vscode is much lighter on resources than IntelliJ though.
You can use any editor for dart, using sublime text as code editor and a terminal/command line as you launch the app. But you don't get the debugger inside of the sublime text, therefore only vscode and intellij idea are the only options available.
I dont think vscode is lighter than intellij idea as it would increase the ram usage overtime. From 700mb~6GB when idle(no emulator).
Oh really, I might just give IntelliJ another go.
I must say that I've never experienced the memory creep whilst coding go, python, vue and polymer.
Perhaps there is an issue with the dart/flutter plugins?
Once I'm more familiar with dart and flutter, I might go to sublime.
They're both heavy RAM usage. it's not about the electron, it's the OpenJDK Library that keeps the RAM growing. the DartVM is only 150~200mb while the flutter plugins is just 30mb~ less.
I am a JetBrains guy, but I use vscode and sublime for lightweight text editing.
I am currently playing with clojure and have decided to give vscode a chance as my main editor (mostly due to IDEA clojure plugin being pretty crappy IMO). I am not too thrilled. That editor feels just as slugish as JetBrains IDE-s, but doesn't offer nearly as much functionality.
Have you tried Cursive with IntelliJ? cursive-ide.com
Emacs + Doom + Cider is also a very powerful environment - albeit a fairly steep learning curve.
Cursive is the one I didn't like. Maybe I missed something, but I found it almost impossible to actually type my code due to its super-strict and kind of broken pair matching engine.
I've used VSCode for ~2 years or so, but before that I jumped around from:
IDLE -> emacs -> Sublime -> Atom -> Sublime
I love VSCode though, so much faster than other Electron-based editors and so full featured!
Honestly, I don't understand the hype about switching IDEs. I've been on PHPStorm since I started web development professionally and used sublime for small scale projects before.
I tried VSCode occasionally, but found myself always switching back. All those features that Atom and VSCode list as hot new features have been in PHPStorm for years. I also tend to miss the double shift feature in other IDEs. Since Jetbrains provides free licences for open source projects, I can't find a reason to switch.
I still use sublime as a simple, fast text editor on the side, though.
PHPStorm is a full fledged IDE whereas VSCode is just an editor. You can't compare a full fledged IDE with code editor.
Agreed Vignesh D. Where is the line between an IDE and a text editor for you? I struggled with this question during a conversation recently.
In an IDE,
In a Code Editor,
I've recently started using Intellij IDEA for Scala development, and it's quite nice. The RAM usage is really high but it has a lot of handly plugins for Scala making it a must have for me.
I still use VS Code for almost everything else :D
It's recent in terms of how long I've been coding... but my project last year was to switch from Sublime to VS Code. I guess that means I've officially been using VS Code for a year now. I couldn't be happier with it. I basically carried over the keyboard shortcuts from Sublime so I didn't have to learn anything new. It's prettier (IMPORTANT THINGS), the Git integration is 💯, and it has everything I need to successfully do my work!
Last year I worked with:
Atom -> VSCode -> Atom -> vim
No reason for me to switch back to Atom at one point other than my weird resistance to downloading VSCode on my Mac. VSCode is my favorite text editor and I love the built-in terminal. Atom is slow. vim has the potential to make me a little faster, which isn't correlated to being a better programmer, I just enjoy the speed and proficiency. I have some plugins, like a fuzzy finder and a cute terminal, but I still don't know what I truly need of vim quite yet. vim is already neat so I can't imagine dozens of plugins being necessary. Definitely creeping on plugins posted here.
Nice topic, Ben!
EDIT: Guess I should also mention that my switch to vim is going well so far 🔥
I love the integrated terminal, too. Are you using wim via the vscode plugin or have you jettisoned vscode completely?
I use the plugin and have vim mode enabled a lot, but I often disable it for certain kinds of tasks. It's gotten to the point where vscode is the only terminal I use and it's where I do all my markdown editing, etc...
I use vim via the vscode plugin when I'm on my desktop, which is Windows. To be honest, I don't really get the same experience with vim in vscode like I do on my Mac with just vim. But I haven't messed around with the plugin much. Still prefer iterm2/ohmyzsh, but vscode is, like you said, better for certain tasks.
Actually I use different editors based on the requirement.
— IntelliJ IDEA or Android Studio on my daily job. They are feature-rich editors that eats a lot of RAM, but it's all worth it.
— VS Code, for lightweight editing, like web projects, Flutter, editing large debug logs, or just browsing around huge Android project files without opening in the heavyweight IntelliJ/Android Studio.
— Nano, if I am over a terminal connection. This is my preference over the Vi(m) editor.
Extra: Sometimes I use VS Code only to use the REST Client plugin because of the flexibility that the plugin provides.
Sorry for a slight off topic , but nano is forever. I have tried so many editors ( vscode,visual studio, sublime, atom, vim ), but nano is the killer. Dead efficient. Still not clear why people love ide? ((((;
is it a real question? fulltext/regexp search through source directory and dependencies, integrated version control (highlighted edited lines, browsing history for each line/change), one-click go-to definitions, syntax highlighting, etc.
Well. It was not a question, just a statement. Don't want to start flame here, (: But for those things you've mentioned
git cli / grep / perl / diff / tomtit
works perfectly for me . I would say with even better level of effectiveness in comparison with IDE-like toolsthen there's not much to add. neither I want to argue about others' workflow.. but it seems to me that you're missing the point: "integrated" environment. your workflow is a based on UNIX philosophy, but not every programmer works on unix-based OS. not everybody needs to know well bash, perl, sed, etc. and lastly, there are reasons why mouse & GUI were invented: visualisation of information. it just depends on what sort of work you do.
I am doing quite well with every task requires me to write code, because it's just a text. Linux tools work perfectly with text/source code. I don't need IDE to make text search and replacement. An "integration" toolkit is almost pre-installed on every Linux box, if it is not, it's just a few commands of package manager to add desired tools.
I switched from VSCode to VIM, and I'm glad I went this way.
I had some familiarity with the "language" of VIM, but it was on the very basic level. All of it started after I installed a VIM plugin for VSCode. Of course, in the beginning, it was hard, but after about a week, I became as efficient as with the "vanilla" VSCode.
After another week, my speed of editing has noticeably increased. I liked it, and I felt like it was the time to build my own .vimrc.
It took me about a week to set up the config that kind of matched my needs.
After two weeks, I realized that I've installed too many plugins, and I wasn't utilizing VIM's built-in features enough. The decision was made, I'm going to rebuild my config from scratch. I tried to adopt a problem-solving mindset, every time I bumped into some rough edge, I tried to solve this problem with a vanilla VIM features, only after that, I was reaching for a plugin.
These work for me the best:
My productivity and speed of editing have increased. It's worth mentioning that tweaking the .vimrc was a ton of fun for me. Almost every day is a source of new tricks. In addition to VIM, I use tmux as a terminal multiplexer, so all of my development takes place in one terminal window.
From Sublime Text to Visual Studio Code
Sublime Text is a great editor, and, to be honest, I've never seen a GUI code editor opening so fast as Sublime Text. The only thing I missed in Sublime Text was a better language support, including linting, code completion and etc. That is why I switched to Visual Studio Code.
From Visual Studio Code to TextMate
VS Code is great. The UI, the editing features, the extensions and its frequent updates. By the way, it is, IMHO, the best code editor for JavaScript and its children (TypeScript, Dart, etc).
As a Ruby developer, there is a lot of things I miss in VS Code. After all these code editor switches I've learned this is not a editor problem, but a language one. Ruby is kinda hard to auto complete, because of its characteristics, compared to Java or C#, for instance.
I had a great experience with TextMate. It has a lot of macros and other kinds of tooling that really helps developers. Also, it's very famous among Ruby devs. The only problem with it is that it is not updated very often. There are some really old tools & scripts from Rails 3-4 that just don't work anymore.
From TextMate to Vim
I really liked the idea of macros and automation inside the code editor, and Vim offered me that. The learning curve took me ~3-4 weeks, but that worth it.
Vim is great, but it has to be fine-tuned to work in its best. So, I went back to VS Code.
From Vim to VS Code
My final review is that VS Code is really great. One of the things that I really like in it is the VS Code Live Share extension, perfect for pair programming (I've used Atom similar feature and it was really bad back then).
This really resonated with me as I have a similar story. Notepad++ and Nano in the early days at school until I found Sublime Text. Sublime is great, like really great. It's so fast. To this day I still use Sublime for quick editing here and there if I don't want to have a whole extra VSC instance running for a directory full of bash scripts or something.
Then I came across vim. I didn't have the patience to sit down and grind out that learning curve as you were so brave to do, but I still use it. Honestly it's the easiest way to quickly edit a file, whether it's a simple SSH config, another bash script, or for some quick notes. Not having to leave your terminal in some operations is a nice QOL boost. But wow it can be daunting.
Now VSCode. I can't possible explain how nice this is, and maybe it's because of the wonderful web dev support Microsoft has been adding over the year. I was on Atom for a very brief period until the startup time became well over a minute and that editor would chug opening and working with large files. Maybe that's gotten better, but I have no want to move back. VSCode is fantastic.
I swapped from RubyMine to VSCode in the last few months. I'm not entirely thrilled with the change, as RubyMine had more powerful code inspection, was better at jumping to method definitions, etc. However, there were other things I wanted to do with the money that I would have spent on the IDE.
I do have a fallback license for RubyMine 2017.2.5 that I would be more than happy to keep using, but we use WSL at work, support for which only made it into RubyMine in version 2017.3.
So close, yet so far.
If anyone uses VSCode for Ruby on Rails and has any hot tips about getting the code inspection to run smoothly, I'd love to chat!