18 ms·
Switching from Vim to Intellij
- onelovetwo 6y agocan you use Intellij like vim? with command mode etc
- ZeroCool2u 6y agoYeah, one of the most popular plugins changes the input scheme to be very similar, if not identical, to vim.
- deleted 6y ago[deleted]
- city41 6y agoYes, it has a vim emulator, ideavim. It's far from perfect, but I would say it's better than most. https://github.com/JetBrains/ideavim https://github.com/JetBrains/ideavim
- craigharley 6y agoYeah there's a vim plugin https://plugins.jetbrains.com/plugin/164-ideavim https://plugins.jetbrains.com/plugin/164-ideavim
- danielbarla 6y agoYes, there's an official IdeaVim plugin [1]. I'm not sure how deep the rabbit hole goes, I just use it for basic vim goodness, and shy away from advanced stuff. But sure, modal editing, movements, macros, search, etc, are all there. [1] https://plugins.jetbrains.com/plugin/164-ideavim https://plugins.jetbrains.com/plugin/164-ideavim
- elteto 6y agoThere is a (or more than one?) Vim plugin with fairly good support. However, it is not Vim. Most of the common Vim operations work but others are broken. For example, I've found the weirdest bugs when using visual block, especially in column mode. It just completely mangles everything.
- jurschreuder 6y agoYes, but it's way slower and you can only open one project at a time due to it using all if your ram
- city41 6y agoI switched from vim to Webstorm, which is based on IntelliJ. I agree with most of this article. IdeaVim is a pretty good vim emulator (although not perfect, but none of them are). There's something to be said by having sane defaults that do exactly what you want. Probably my biggest issue with vim is you can easily find yourself in no man's land because your setup inevitably becomes uniquely your own. For example I used coc.nvim in vim, and although it worked great overall, I would often find autocomplete text sitting in an unnamed buffer that I would have to clean up. Despite googling like crazy and even asking for help in a couple vim communities, I could not solve this problem that seemingly only I had. The article touches upon this as well, saying a 50 line tsx file doesn't work for the author in vim. For me a 1000 line tsx file works just fine, so the author managed to dig a unique hole for themselves there too, most likely.
- pw6hv 6y agoTotally agree with your point. Tools that allow great personalization are obviously more prone to generate weird problems unless you know what you're doing™. Or to quote a famous philosopher "With great power comes great responsibility".
- theCodeStig 6y agoEmacs Evil mode is the exception here. It’s possibly better than Vim itself.
- scruple 6y agoI keep hearing statements like this and I want to believe. I really, really do. I see the value in Emacs Lisp vs. vimscript immediately, though I feel that Lua in neovim is making up ground there. I've tried evil-mode a few times over the years. Most recently I tried Doom Emacs twice. I _really_ want to experience the hype of org-mode. I want something like org-mode in my life. I am a heavy notes taker and I can see the value org-mode offers and I am willing to make the jump for it alone... But, I can't figure out how to get a proper workflow in Emacs that gets me to where I am in vim today. I just can't get it to click. For what it's worth, I've been using vi(m) since the early/mid 2000s and my workflow is almost entirely terminal based for almost everything that I have ever done as a professional and hobbyist programmer. To the point that I feel like I cannot be as productive in ecosystems that are GUI based.
- aidenn0 6y agoWhat does the author mean by "setting up copy/paste? I've been using vim for about 20 years and just do "+y and "+p
- markdog12 6y agoThey prob mean copies outside of Vim.
- cpow85 6y agoYes, I was specifically talking about copying things to and from vim, with/without tmux. Maybe its not a huge issue to all, but I always forget when I set things up on a linux machine vs. Mac OSX
- aidenn0 6y agogvim on mac/linux/windows will use the + register for the system clipboard. I'm pretty sure that a terminal vim with gui support compiled in will do the same (I know it does on Linux/X but haven't tested on mac or windows in a while).
- city41 6y agoThis is true, but often terminal vims don't have clipboard support. For example the vim that is bundled with Ubuntu does not. This can be especially confusing for people new to vim, or sometimes you jump onto a random machine and find that "+y does not work.
- aidenn0 6y agoI guess that's another thing to add to my list of "reasons Ubuntu is terrible" it's a minor complaint, but good to know. [edit] FWIW, "gvim -v" will probably give you clipboard support in a terminal on ubuntu, and ubuntu might have an "alternatives" tool to make the "vim" in your path have X support. "The Ubuntu packager compiled vim with the feature I want disabled" is a poor argument against vim; it would be like someone saying "I switched away from vim because I wanted to write plugins in Python" just because the packaged version of vim they use has python integration disabled.
- markdog12 6y agoAgree with the article. I love Vim, but mostly use webstorm for the same reasons. I just find all jetbrains products run like molasses, even with a 12-core machine with 32GB ram. I work fairly quick, and get frustrated when my editor holds me up. Surprised to hear about the crashing issues with typescript, but I don't have any experience there.
- ragnese 6y agoJetBrains products seem hit or miss for me. AppCode is way snappier for me than Kotlin-in-IDEA. AppCode is also more likely to shit the bed and not be able to find a standard library class with ctrl-click. PHPStorm has never given me trouble.
- purplecats 6y agowhich part runs like mosasses: the indexing? typing visual latency? bootup time? etc?
- markdog12 6y agoAll of the above.
- pwinnski 6y ago"Switching" seems like a strong reaction, but there's something to the feeling the author describes. I use vim quite a lot, every day. I also use IntelliJ IDEA every day. And yes, there's a bit of mental switching I do, and every now and then I use vim navigation keys while in IDEA, but generally it works for me. Different tools for different jobs. Then again, I have no trouble loading reasonably large documents in vim, so maybe I don't have mine quite as customized as the author. BUT I relate to the feeling of not being quite sure that all of my customization are quite enough, of not using vim to its full potential. Or even 10% of its potential.
- cashewchoo 6y agoI'm the same way. The wires don't really seem to ever get crossed for me. When I'm using intelliJ, I honestly find that I'm not really typing all that much. I'm either reading/navigating code (and therefore ctrl-clicking on identifiers or using shortcuts for finding usages etc), or typing in a pretty linear fashion that is the sort of thing I'd be in insert mode for the entire block anyway. So when I spend most of my time navigating/reading, it feels really good to have a robust first-class experience with the relevant features in your chosen environment. I know vim can do all that stuff, but it's all tacked on and never (IME) doesn't feel tasked on. Whereas the IDE understands the semantics (the AST) in a way that vim/ctags likely never will. Some of this is particularly strong due to the language I use most - Java - where the IDE is nearly bulletproof in terms of finding exactly, only, and all real usages of identifiers (it won't ever get confused by two different identifiers with the same name) which isn't true for pycharm/python (though it does a good job honestly, but you can't blindly trust it like you can with intelliJ). I could see how someone would find pycharm not quite as much of a win over ctags, though IMO it still is. [edit] That said, I still use vim quite a lot. I wouldn't use anything else for editing config files or just examining text content. Especially since you can pipe to it - seldom a day goes by when I don't "| vim -" instead of less or anything else.
- scns 6y agoPiping into vim is new to me, thanks for the tip.
- kartoshechka 6y agoDudes be comparing text editor to IDE, and then writing :wq thinking they're vim evangelists.
- favadi 6y agoIn the end, they are both tools developers use to write codes. I don't see why they can't be compared to each other.
- kartoshechka 6y agovim is just a set of well-thought key bindings and commands. JetBrains built highly successful business on providing "working from the box" IDEs. Not to mention vim's buffer concepts, entirely different from usual tabs. Article literally goes "I tried to build ultimate IDE from vim, sometimes it's good, sometimes not, but then I discovered this not that free tool called IDEA and damn it works".
- forgotmypw17 6y agoI use and love both, together and apart. Vim has the advantage of being portable and installed everywhere. I can also create a new file quickly, easier than IJ. IJ has great Perl support and, the main reason I use it, a sane integrated Git GUI, the only one I've been able to use without tearing my hair out. Because I'm freegan, I also get free entertainment in the form of IJ's "basic" support for js, html, css.
- deleted 6y ago[deleted]
- aearm 6y agoyou forgot the big advantage of using intellj which is using docker image for sdk
- blandflakes 6y ago... is this an advantage? I especially don't want to run docker on a mac any more than I have to.
- dim-an 6y agoI made a similar switch and now use CLion instead of pure vim. For a long time I thought I would miss vim editing experience but IdeaVim is the best vim emulation plugin I've ever seen and I hardly can remember a vim feature that is missing in IdeaVim. Though I have to accept occasional UI freezes and huge memory consumption of CLion.
- pw6hv 6y agoThe amount of different completion plugins in Vim is something that I also suffered a bit. I tried many of them (YouCompleteMe, Deoplete, Coc.nvim) but none of them really worked properly. For the moment I mostly code in Python and I settled with a very minimal setup: 1. Linting: python-mode. IMHO it provides very good linting out of the box 2. Completion: jedi-vim. Jedi for python is great. Even though with this minimal setup the completion is not asynchronous I still think it's great. It took me some time and a recent pruning to actually arrive at this minimal setup. I totally feel it with the author that finding the right set of plugins in Vim can be a bit overwhelming.
- jlelse 6y agoI recently switched from IntelliJ IDEA Ultimate to VS Code for Go development (side project), because I don't want to pay for it, when I'm no longer a student. With Golang VS Code works great after getting used to it. The Go plugin is not available for the community edition. For Java and Android development I always used (and still use) IDEA because it's feels much better than Eclipse.
- 9dev 6y agoYou could always just use the early access builds, which are free, and usually don't have any major bugs whatsoever.
- layoric 6y agoWhile an OK option if you're optimizing only for money spent on tools, I would still say this is not a good idea. There are bugs and depending on your workflow can be pretty dramatic show stoppers. Value your time more, upgrade when you need new features/solving a problem but otherwise I think stability in your tooling is very valuable.
- bredren 6y agoI pay for pycharm and still used EAP releases for a year without encountering stability issues. I turned EAP off only because it kept breaking my plugins.
- Cthulhu_ 6y agoI went the other way around (from VS Code to IntelliJ), it has some refactoring support and the like, and I have to work and switch between a few languages during an average work day. VS Code is fine for a lot of things, but not as powerful as intellij. That said, main downside to IntelliJ is IMO speed and input lag in editor windows, mainly in TSX files. I admit it's a complex language and the fact that Prettier runs on save probably isn't helping either, but still. It has trouble resolving imports, some are done automatically, others you have to select a quick fix options for, and sometimes both work and you end up with the import itself getting munged.
- danidiaz 6y agoThis post might give some ideas about configuring .ideavimrc https://medium.com/@danidiaz/configuring-ideavimrc-de16a4da0715 https://medium.com/@danidiaz/configuring-ideavimrc-de16a4da0... Although one person's finely honed vimrc is another's absurd unergonomic configuration.
- henrik_w 6y agoI wrote a similar comparison here: https://henrikwarne.com/2012/06/17/programmer-productivity-emacs-versus-intellij-idea/ https://henrikwarne.com/2012/06/17/programmer-productivity-e... I've got to say that I am still solidly in the IntelliJ IDEA camp.
- cmrdporcupine 6y agoI've been using JetBrains tools since 2004/2005, and I've become so attached at the hip to IDEA, CLion, etc. that it has become hard for me to work in anything else. And it's really bitten me recently because the codebase I work in (C++, Chromium based) just won't index in CLion, it's so massive that CLion just pukes. That and with my remote work situation I'm really down to mostly using CLI tools, so it's back to Emacs (which I like, and have made work for me, but it's ... not the same) I fear someday having to do job interviews and having to get up on a whiteboard or use some half-assed shared-coding IDE, because my fingers and eyes, they really want JetBrains products there... I don't type out for-loops, I use generators, etc. etc. it's all so much faster...
- howtofly 6y agoIronically though many think CLion as a better IDE than Eclipse CDT, Eclipse CDT actually works smoothly for large projects like Chromium (https://chromium.googlesource.com/chromium/src/+/master/docs/linux/eclipse_dev.md https://chromium.googlesource.com/chromium/src/+/master/docs...), Firefox (https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Eclipse/Eclipse_CDT https://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...) or the Linux Kernel. I've successful used it with Chromium when doing some WebRTC development. Last time when I praised CDT for embedded Linux developing, I was downvoted by these vim/clion lovers...
- tomcam 6y agoCan't believe no one has posted this yet. I just use org mode
- rich_sasha 6y agoAs a long-term Emacs user, I started really enjoying typing with Vim bindings (evil mode). It feels to me that Vim is great at the low-level process of editing text. Everything else is fine - as good as any power editor, but not inherently great. This is the complement of Emacs, which to me is exactly the other way around.
- ansible 6y agoI've tried evil mode a couple times over the years, but slight behavioral differences threw me off my game. I don't remember exactly (it was years ago on the last attempt), but it was something small like the cursor position being slightly different after some operation like shifting a line. My "problem" is that since I've been using the same editor for 30 years, I don't tend to think too much about the manipulation of text. So even the tiniest of behavior changes is unsettling to me. Though I could probably adapt. I should try it all again (maybe not emacs, but something), and really set up everything well for auto-complete and such (mainly C and Rust). My current vim setup (using pathogen) is sort of a mess.
- gmadsen 6y agofor me, the basic keybindings are what matter. I use a full fledged ide, but still have vim bindings. When you become comfortable enough, editing becomes quicker and more in line with my train of thought. Thought->action->code change becomes very quick
- jaster 6y agoFor me, a killer feature of evil-mode is the "hybrid" state (`evil-disable-insert-state-bindings`) that allows to use emacs (aka readline) keybindings in insert mode. When I have only a minor edit to make in the middle of typing something (like transposing two characters) it saves me the back-and-forth with the normal mode and it's really sweet. It probably makes me an heretical freak, but I'm definitely hooked. I guess I am condemned to live the rest of my life in emacs now.
- clircle 6y ago
- sullyj3 6y agoI'm still holding out for proper IDEs with embedded neovim at the core. Vim has a few killer apps I can't live without - custom text objects, vim-surround, and vim-sneak.
- chinigo 6y agoThis is the dream. Vim for text manipulation, surrounded by a legit IDE.
- theCodeStig 6y agoThis already exists in the inverse; LSP.
- scns 6y agosurround is ported to ideaVim, some other plugins too.
- nicusor 6y agovscode has that, basically connects to a background neovim instance. I use the same vimrc (with minor tweaks for easymotion) for both neovim in cli and in vscode. Although at work I'm still using webstorm with the vim emulator
- apocolyps6 6y agoIt might be worth taking a look at Onivim2 (https://onivim.io https://onivim.io)
- sullyj3 6y agoYeah, I've been following that one for a while, I pre-ordered it. I was a little disappointed they switched from neovim back to vim. I'm sure the engineering reasons were sound, although I didn't understand them and it made me a little less excited about the project. Not sure how to feel about the goal of vscode plugin compatibility. I'd hope for a vim based ide to kind of "be its own thing".
- 6y ago
- marketingPro 6y agoJust a warning, jetbrains has a huge marketing team. I pretty much can't read anything on the internet about jetbrains without thinking about it being questionable.
- pvg 6y agoThat's not a warning, it's a random insinuation. Take a look at https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html Please don't post insinuations about astroturfing, shilling, brigading, foreign agents and the like.
- marketingPro 6y agoIf I can prove an employee of the company is posting it but acting like a genuine person, can I do that?
- ezekiel68 6y agoI was thinking there might be something interesting here. Then I got to this line: "I started a new job working on a large typescript React project. Vim couldn’t handle opening a TSX file larger than 50 lines without crashing." And I was like LOL WUT? The author's case in this regard woudl be stronger if they helped us understand what was actually going wrong. Bad plugins? Conflicting macros? I'm pretty sure that simply opening a 50 line TSX file does not normally crash vim.
- klodolph 6y agoWell, the thing about Vim and Emacs is that the users are expected to figure out configuration problems like these. That's not a point in favor of Vim and Emacs.
- mbreese 6y agoRight -- the argument here isn't against Vim per-se, but the entire ecosystem of plugins and configuration that's needed to work and be productive. Sure, there are a bunch of choices for you to use... but now you have another problem -- there are a bunch of choices.
- harperlee 6y agoExactly. If you argue the pros of vim/emacs using the power that comes with access to extensibility functionalities, it seems intellectually hishonest to not consider the ecosystem and customization issues also for the cons.
- mrozbarry 6y agoWell, some mixed feelings on whether or not it's a point in favor or not. Just like any system, don't install plugins/copy+paste config that you don't understand or can't maintain. I've been able to open tsx files with linting/highlighting/testing plugins and everything works as expected. On the flip side, if you want easy configuration, then yes, vim/emacs/similar are not necessarily the right choices for you, but I don't think that means they are generally bad options.
- matsemann 6y agoI don't really care how good emacs or vim are for text editing, I always crave a good IDE as text editing is just a small part of writing code. It may be because I'm using java/kotlin, and the stuff a good IDE can do there is much more than in some other languages. But the refactoring, find usages, debugging, building, etc is just so smooth and integrated I've become an IntelliJ fanboy.
- Scarbutt 6y agoRefactoring tools do more harm than good and they exist to duct tape the complexity path some programming languages set you on by adding more complexity.
- dagmx 6y agoThat's... an interesting take. I'm not sure it's well founded, could you expand on your thought? The refactoring tools in JetBrains products are amazing for me. Renaming a variable and having all uses within scopes renamed too is great. Renaming classes by patterns is also great. Being able to move definitions to new files and have it update all my imports etc is great. Not sure I see any downsides to optional tools
- dcolkitt 6y agoI mean, Java is pretty notorious for sprawling names like INetworkSessionManagerFactorySidecarControllerFactoryHelper. It's pretty hard to argue that that phenomenon isn't driven by the ubiquity of IDEs in the Java community. With high-powered auto-completion and one-button refactoring, your brain stops processing the full name. No one's incentive to pause for a minute and come up with thoughtful variable names. For most developers it's too mentally tempting to just puke out some CamelCase word salad, because the IDE hides all the effort of having to read/write/remember unfortunate names.
- indecisive_user 6y agoThat's a valid complaint, but at the same time it's not always easy to come up with a good name from the start. I often find myself putting in placeholder names for variables/functions because I'm really not sure what it's going to encompass by the time everything is finished. IDE refactoring makes it easy to clean up names after spending some time with the feature and better understanding what the scope of each function is going to be. It's great to pause and come up with meaningful names and I agree more developers should do it, but refactoring is a normal part of coding and I'd rather have an easy way of renaming things as the code evolves.
- clashmeifyoucan 6y agoI have been using Jetbrains IDEs for a long time now, started with PyCharm and made my way through Webstorm to CLion for uni. It's great, but the RAM cost has been too high for me. I've been slightly switching the opposite way, using vim more and more for smaller stuff and opening the IDE only for larger projects or work stretches. I definitely love the value of vim as a nifty tool, my workflow is noticeably faster. As an aside, that cheeky :wq is not missed by me at all, :x all the way!
- matsemann 6y agoAs for ram usage, I currently have two huge java projects open, and three elm/frontend projects with all the shared packages opened as modules, and it's about 5GB. While it's certainly more than a text editor (still less than chrome lol), is it really so bad? My laptop got 64GB of ram and 34GB of those are sitting unused and 8GB is just cache. I actually prefer it to use more ram than having to recompute stuff or load from disk.
- clashmeifyoucan 6y agowell, there is your answer. You can afford to have it open, I'm running on 8GB ram so the jetbrains ram usage has a considerable cost.
- t0mbstone 6y agoIf you are a developer and you can't afford a machine that has more than 8 gigs of RAM, what are you even doing?
- clashmeifyoucan 6y agostudying :)
- iruoy 6y agoAre you still in school? If yes, well just take RAM into consideration next time. If no, get your boss to buy you a decent laptop immediately.
- driantembulg 6y agoyou were unhappy with the plugins. learn vim the right way and ditch plugins altogether.
- gpanders 6y agoAgreed, as Vim/Neovim has risen in popularity recently it seems there is a trend of people thinking it’s only usable if you install these 57 plugins, and a large number of these users seem to have blind spots on Vim’s native capability. The autocomplete feature is a great example of this. I do not use an autocomplete plugin at all, but rather use Vim’s native ins-completion. Combined with a language server and a lightweight LSP client (I use vim-lsc) this works beautifully. I am excited for some of the upcoming changes in neovim however. I think the introduction of treesitter for syntax highlighting and a native LSP client will both be huge
- blandflakes 6y agoI've checked out a build of neovim, and the native LSP is rudimentary but even in that form, very slick. I am often torn with the same conundrum - I've been using neovim for Ocaml, and I really just like vim as an editor, but having inline linting is really really nice. But it's also really, really complex to configure, and it detracts from why I love vim so much - if I wanted an IDE, I'd be doing my Scala work over in Intellij. I'm still contemplating whether I can get what I want with a second window a file watcher running build commands. Agreed the treesitter is also really exciting.
- commandlinefan 6y agoI switch from Vim to IntelliJ and then back multiple times every day - one is for fast editing of smaller codebases and the other is for sprawling codebases. One thing I've noticed about IntelliJ though (and any other IDE), is that eventually I manage to get the thing configured into some inconsistent state that I can't figure out how to get out of and I have to restart everything from scratch before I can get things working again - up to and including deleting the entire IDE and reinstalling it. The bad thing about command-line editing is that it doesn't do any magic for you. The nice thing is that it doesn't do any magic to you.
- whimsicalism 6y agoEvery few weeks I get my (vscode) IDE into a state where it no longer autocompleted and I have to reinstall it. Have yet to encounter the problem with emacs
- purplecats 6y agoI have my intellij idea pretty exhaustively customized for years and i have never had any of these issues described here. you might need to be careful about which plugins you're using.
- harikb 6y agoLittle off topic, but it unfortunate that the ultimate edition doesn’t include C/C++ and I have to buy yet another pack of “all products” to get that. I pay out of pocket and have yearly subscription. Not sure if the next thing they make for, say Rust, will be yet another thing to buy
- whimsicalism 6y agoIsn't CLion rolling in Rust?
- dhagz 6y agoCurrently that's where their Rust plugin runs. I could see them breaking it out into its own editor like they have with GoLand.
- scns 6y agoThe Rust plugin runs well in the free ones (IDEA & PyCharm)
- _hao 6y agoRecently I've started using Vim bindings on my VSCode setup and although initially I was much slower than usual, now I feel confident enough to not touch the mouse most of the time. What I did was go through vimtutor every day before starting work as a warm-up and then slowly I started searching and reading around things I can improve.
- camgunz 6y agoA lot of stuff is built for autocomplete these days. Hard to say that's not the future of app dev.
- jurschreuder 6y agoIntellij sucks! It forces you to buy the latest macbook if you want to develop for Android normally. VIM is the best. VIM uses less than 2gb ram. Be like VIM. I guess for stupid rich people point and click is nice, but don't force me to use slow crashing Intellij. I did not even know the beach ball was still a mac feature until I used intellij to write Kotlin.
- cosmotic 6y agoI have a 2016 macbook and android studio runs fine along with a copy of IDEA, 10 chromes (electron), outlook, etc. Maybe you have a different problem? The jetbrains folks run a great bug tracking system; you can register and report any beachball inducing bugs; that's a big focus for them.
- drinchev 6y agoAs a longtime WebStorm user I would really appreciate a WebStorm + let’s say PyCharm vs IntelliJ. I’m a bit happy by the default configuration of each dedicated IDE, rather than clicking around in IntelliJ and fix stuff. What’s your opinion on that?
- mayoff 6y agoAccording to this JetBrains engineer, WebStorm is a subset of PyCharm: https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000634624/comments/115000535470 https://intellij-support.jetbrains.com/hc/en-us/community/po...
- bredren 6y agoIt is not obvious from that Pycharm is actually a complete web developer IDE tool. But it has to be to support Django, it's html templating, and associated js. Pycharm goes further and supports React and modern web toolchains as well. I suspect jetbrains would rather have you buy an intellij license if possible.
- geoelectric 6y agoReading it, think he's speaking conceptually. In practice it's more that PyCharm and WebStorm are both IDEA's base framework + language extensions. In the case of WebStorm you get IDEA + the HTML5/web dev extensions and in the case of PyCharm (commercial edition, anyway) you get IDEA + both the Python and the web dev extensions. I believe RubyMine is the same, if not all of the other paid IDEs in the Toolbox. They all include WebStorm's functionality since you can build a web app in pretty much anything, at least on the back end.
- 29athrowaway 6y agoMy IntelliJ tips: - exclude folders from indexing - disable unused plugins - install a theme like Nord - setup debugging - make sure you can run unit tests from the IDE - add JSdoc tags so that IntelliJ can detect type mismatches. - setup scopes in your project view to show only the files that you are working on. And these are my personal preferences: - Disable smooth scrolling - Disable animations - Disable code folding - Hide status bar, navigation bar, toolbar. If you need something use the actions menu... Ctrl (or Cmd) Shift A. My font settings: Monoid size 14, line spacing 1.5, greyscale antialiasing. And check out distraction free mode + full screen
- Ajnasz 6y ago> - add JSdoc tags so that IntelliJ can detect type mismatches. Yes, it's so awesome when colleagues writing lots of useless stuff into the code so they IDE can show some fancy popups here and there.
- 29athrowaway 6y agoYeah, truly useless... I mean, why would you spend $0.0001 dollars in computing power to verify all types in your program if you can spend orders of magnitude more money to have a human do it by hand orders of magnitude slower and less reliably? Nobody has money for that. Just add the type annotation and let the stupid computer do it, which is what people have been doing for decades anyways. It seems you have totally forgotten what computers are for. You have much to learn, young padawan.
- jqcoffey 6y agoOnce coding no longer was on the critical path of my employment (as a middle manager in a large tech company) I went back to vim from IntelliJ with nothing more than syntax highlight and autoindent. The reason? I wanted to know my programming languages better. Instead of auto-imports and auto-complete I was forced to have java/scala docs open for whatever library I was using. Beyond giving me better muscle memory for the core language libraries, this had the interesting side effect of only using well documented libraries. The lack of jump-to-definition also made me think more about dependencies in the code I was writing since they would require a cognitive leap and reasonably heavy context switch. Since cross-file refactoring requires bash-fu and is also a heavy process, this furthered my desire to minimize coupling. I can't say I'm more productive and if I were coding day in and day out for my day job I would probably still use IntelliJ (especially for large Java code bases that were crafted by advanced IDE usage), but I find coding to be a more holistic endeavor now.
- 8ytecoder 6y agoIntelliJ lets me read library code way easier. I now pay out of pocket to get IntelliJ just for that privilege.
- cle 6y agoThis used to be the case for me. With the growth of LSP and DAP, it's no longer an issue, and I'm back in Emacs for the vast majority of my daily work (including Java). I hope LSP beats JetBrains products. It's an open standard and lets language designers focus on their language instead of tooling. Don't get me wrong, JetBrains products are well polished and productive. I just don't see them being able to compete in the long-term with LSP, which is free and more attractive to language designers.
- mgkimsal 6y ago> this had the interesting side effect of only using well documented libraries That's great that you get to choose your own libraries. I'd wager most people that are using IntelliJ (or any IDE) also don't often have much of a choice in libraries they're using. IDEs never seemed to appeal to me when I was writing 100% of my own code. When I migrated to using more and more OPC (other peoples' code), whether project legacy stuff, or third party libraries, the ability to more quickly scan/jump/drill into that OPC, the more value I realized from various IDEs. Mostly JetBrains these days (interested in pairing with folks with their newish 'code with me' plugin/service), but vscode and eclipse make their way in to my life for small periods now and then.
- k__ 6y agoIs there something like Code-Server/Theia for IntelliJ?
- The_rationalist 6y agoWhat problem does this solve?
- mmgutz 6y agoDoes Intellij have remote extensions like Code? That's THE main reason I started favoring Code over Vim. Code's plugins working seamlessly over SSH is wonderful.
- ausjke 6y agoI am the opposite, I paid full bundle version for Intellj(all its IDEs) annually, but still feel I can code more efficiently under vim, so I spent two weeks to fully configure my vim early this year and now it's my daily IDE, i have not touched Intellj since Jan,2020, life is much better after switching from Intellij to vim for me.
- tomasyany 6y agoIntellij is definitely an amazing tool, but if you are comparing it to Vim, then I don't believe it is a correct nor fair comparison. Vim is not an IDE, and adding an infinite amount of plugins with the purpose of making it IDE-like, then complaining about how slow it is and how much it crashes, and how much better a proper IDE is, is IMHO a misconception of the true power of such a tool like Vim.
- keithnz 6y agoin what was is it not fair? People use Vim to produce software and they use IntelliJ to produce software. IDEs try to do a lot more out of the box than an editor, and editors try to be really extensible
- ogre_codes 6y agoI've switched back and forth between VIM and VSCode for the past year and eventually VSCode won. While I was generally more productive in VIM, some things like auto imports[1] in a large library were too big a deal to give up. My frustration with VSCode has been growing lately though as our codebase has swollen and many of the neat features have been breaking or missing the mark. Plus it has this annoying new behavior where it pops up two things at once which makes distraction free typing difficult.
- srcreigh 6y agoFair warning, please also check out JetBrains' IdeaVim plugin for modal editing. I got somewhat serious RSI from vanilla IntelliJ from using the mouse and all the ctrl/cmd modifier commands. Although I currently use emacs with boon modal editing, I'm sure JetBrains would take good care of you with their vim simulation layer. An ergo keyboard helps, too.
- deleted 6y ago[deleted]
- noisy_boy 6y agoI install Ideavim as one of the first plugins after I install IntelliJ. It works a treat and combines the best of modal text editing with the power of a full IDE like IntelliJ. Can't recommend it enough.
- pgt 6y agoTo understand Why Modes Are Wrong™, consider Bret Victor's Inventing on Principle: https://jamesclear.com/great-speeches/inventing-on-principle-by-bret-victor https://jamesclear.com/great-speeches/inventing-on-principle... An app is the Ultimate Mode, of course, and there is a contextual sweet spot where you can draw the line between universality and contextual exclusivity. This line depends on "nearness" (or familiarity) and your short & long-term working memory, but in general humans seem to enjoy universal modalities like Select/Cut/Copy/Paste that do not require you to switch into "Cut Mode" or "Copy Mode" while you are working with text, i.e. heritable context should provide heritable modes. And yet, religious Vim users champion granular modes above all, including Selection and Edit modes. My conclusion is that they are either very wrong, or serious users have different neural architectures.
- grimgrin 6y agojust use the damn text editor or ide of your dreams also, question your workflows that you think are necessary. maybe they all are! a lot arent i can get away with so much (basically) vanilla vim in a decently large codebase, but i know some of the lower level backend folks really really lean into heavy vim plugins and or ides because their loop/awareness is much diff than mine
- kissgyorgy 6y agoSwitching from a bicycle to a truck. Vim is NOT an IDE. Yes a lot of people try to make it one, but Vim is not very good at it. You need a lot of additional small tools to even come close to a full-blown IDE in functionality. It's a text editor.
- pugworthy 6y agoI share that perspective, but then I guess it comes from using VI (then VIM) for a long time. When IDEs came along, I appreciated what they added in terms of references and build integrations, but as far as being editors of text, they didn't do much for me. Managers of complex text, yes.
- pjmlp 6y agoCame along into UNIX world, I was dismayed when comparing my Xenix VI experience with Turbo Pascal for MS-DOS, let alone the Windows 3.x versions. Or even against programmers editors like SlickEdit.
- alpaca128 6y agoSure, an IDE comes with all the tools and features right out of the box. But not everyone needs all of them. I don't see a problem with combining tools, which is really easy with Vim as it already runs in the terminal. I installed a couple plugins in Vim. But those all provide features I actually use and they barely affect performance. But more importantly I just prefer the Vim approach: start out with a minimal UI and feature set and only add or tweak what is needed. No weird and distracting auto-formatting while I'm still typing, more intuitive tabs/buffers and nothing running in the background all the time. I might be an outlier because most editors and IDEs have standard configs that I find distracting and frustrating, but I rather put a motor and bags on my bicycle than start cutting down a truck.
- kelnos 6y agoI've tried for years to find the right combination of plugins and configs to make vim (and now neovim) as comfortable as IntelliJ for "large" languages (like Java & Scala), and I still can't do it. I actually very much agree with you that IntelliJ's all-batteries-included bits can be distracting and frustrating at times, and it's annoying to track down and disable the stuff you don't want. The memory usage makes me cry; occasionally the OOM killer murders it on my 16GB laptop. But IntelliJ actually does all the things I want it to, reliably, and (mostly) without fuss. vim/nvim just... doesn't. Or I haven't figured out how to get it to do it after hours of trying, which amounts to the same thing. It makes me super sad, because a part of me rebels at having to use a giant IDE to be productive, but that's just been my experience. I too would rather put a motor and bags on my bicycle than start cutting down a truck, but I haven't found a motor and bags that fit and work right for me, after more work than is reasonable trying.
- VLM 6y agoMost important problem missed with fancy IDE: Tiny monitor. Its like looking at your source code thru a paper towel tube instead of in VR. Even if you can get a bigger monitor and give up on laptops, you'd STILL get to see more code at once using VIM. Its "nice" and "interesting" I can see my build system innards on the left and with effort I can click them in and out but in practice people are lazy and just don't get to see as much.
- formerly_proven 6y ago> Even if you can get a bigger monitor and give up on laptops, you'd STILL get to see more code at once using VIM. At my preferred font size I get ~60 lines of code on a 27" screen in CLion, and at the very most you could get 65 lines in with no borders at all, at least two lines would also be used by vim. So... 3 more lines? For using an editor instead of an IDE? No thanks.
- falkaer 6y agoWith PyCharm I've managed to hide every single part of the UI besides the editor itself (I only had to get one plugin for the last bit, main menu toggler) and just use keybinds to show parts as I need them, so it's definitely a problem you can solve if you like
- TheOtherHobbes 6y agoWhen I use JetBrains I have three 27" monitors - one in portrait - and multiple files open simultaneously in all of them, plus build messages, file lists, and run logging. And (sometimes) the debugger. For some projects I have different language environments - like CLion and PyCharm - open simultaneously. With a browser in the background for checking docs and StackOverflow. I suppose I could do all of that in Vim too, but I'm not sure why I'd want to. There are things I'd improve about JetBrains, not least the ability to effortlessly open the same project on different machines. Currently that's clunky for some languages. But generally it's a damn fine product.
- kelnos 6y agoThis has generally not been an issue for me, and I code on a 13" laptop most of the time, with no external monitors. Even with all panes but the editor pane closed, there's still the toolbar, tab bar, status bar, and a bit more space taken up, but in practice I just don't find that it matters. Regardless, "can fit more code on one screen" is not even in my top 10 list of things I look for in my development environment.
- simias 6y ago>Everything is pre-configured: You don’t have to worry about setting up tags, or YouCompleteMe, or NERDTree. I can’t tell you how many times I open a new project, perhaps in a different language, and everything works great out of the box. It’s a total sigh of relief. I agree 100% here, if you value these types of IDE tools I don't recommend going to Vim. It frankly sucks at this stuff, it wasn't meant for it and it's not the type of things you can easily tack onto a codebase not meant for it. Doesn't stop people from trying of course, and some do an amazing job at it, but it rarely reaches the same level of polish and simplicity as good IDE solutions. But on the other hand, please consider the Zen of dumb tools: I code all day in Vim and I don't use YouCompleteMe, NERDTree or anything like that. I use dumb, language-agnostic completion and dumb, language-agnostic FZF and Rg for searching and navigating the source code. If I'm feeling fancy I use universal-ctags, but if it's not here FZF and Rg do a good enough job. Is it as fancy and fully featured as an IDE? No. But like the author I like when stuff just works, and dumb tools work reliably regardless of what I'm editing. It works in emails, it works in man pages, it works in custom DSLs, it works in config files, it works in HN comments if I decide to edit them there. And it's always instant.
- willberman 6y ago+1 on vim with fzf and rg being enough for almost any task. I use that setup for most things and then when I need something with a little more syntactic awareness, I pop open my IDE.
- TylerE 6y agoThe killer thing for me is how IntelliJ has the best cross-language embed support. So it not only knows when strings in my python code are sql queries, but it autocompletes in those strings against my actual schema
- mdaniel 6y agoAnd I recently learned that it will open the embedded language in its own editor pane (ala editing code in org mode, if that means anything) and can be a less distracting way to edit without the mental encode/decode cycle It may have been implied by the "it autocompletes" statement, but it runs analysis on that code, too, catching bad practices such as logic errors, common mistakes, and unused code (where applicable) One can influence its embedded language detection via `language=RegExp` (or whatever the language id is) while inside a comment right above the embedded language literal: https://github.com/JetBrains/intellij-community/blob/idea/203.5600.34/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/InjectorUtils.java#L361 https://github.com/JetBrains/intellij-community/blob/idea/20...
- The_rationalist 6y agoAbsurd he doesn't mention https://github.com/JetBrains/ideavim https://github.com/JetBrains/ideavim
- m0zg 6y ago> Everything is pre-configured: You don’t have to worry about setting up tags, or YouCompleteMe, or NERDTree. I don't have to worry about any of that with Vim either. I have a dotfiles repo on github which I sync to any new machine I set up. There's a script inside which symlinks the configs and .vim directory into my homedir. I've been using this for 15 years with very minor tweaks. It works.
- lkramer 6y agoI use Vim at work, a few light plugins for Go and I'm off. I'm not bothered with auto complete or any of that stuff, and it works great for me. In my spare time I dabble in Unity, and what I always get stuck on is the IDE for the C# code. It used to come with an IDE that was pretty good, which I forget the name of. Autocomplete and other things worked out of the box. These days it comes with Visual Studio and I find it a pain. Auto complete, etc doesn't work, and getting it to work seems very complicated. I then go on the internet, and someone says VS code is good, so I try that, but run into the same issues integrating with the Unity libraries and so on, and before I know it I have spend a day just on trying and failing to configure IDEs and it's not that much fun to be honest. It sounds like Intellij might be better? I don't know. At this point I just go back to writing Go in Vim where I am happy and don't have to spend so much time fighting to be allowed to write code.
- victor106 6y agoOne thing about Intelij, that’s surprising is it’s written in Java. I am not sure what optimizations they do but it doesn’t feel sluggish for the most part.
- Osiris 6y agoOne thing you can't do in vim (that I'm aware of) is write code using proportional fonts. I know I'm an outlier here. An HN post actually converted me. I use Input Condensed proportional font. I love it. I have a hard time with vim because everything feels so ... wide and spaced out.
- dmix 6y agoI knew it was another stack that made the switch. I use emacs for Clojure and I've been using VSCode for Typescript projects. Both had the largest communites of relevant developers making the best tools. And VSCode has the best TS plugins and the latest cool stuff. Plus with VSCode I can use VIM mode, which does enough of the job (you know than 90%, minus the 10% which will never be the same). But I still use Vim for everything else (RoR, JS, Elixir, Haskell, etc). Nothing beats vims speed, portability, or my familiarity and perfection of the config I spent 10yrs tweaking to my liking,
- smt88 6y ago> And VSCode has the best TS plugins and the latest cool stuff. I don't know why or how, but JetBrains IDEs (WebStorm, IntelliJ, etc.) have much better TypeScript support than VS Code. I've used them both on the same project, and it's painful to use VS Code. The main advantage of the JetBrains IDEs is that their built-in hinting/linting and code sense are much better. VS Code will fail to warn me about things that JetBrains does by default. (I say this as someone heavily using eslint, by the way.)
- dmix 6y agoMy coworker uses a Jetbrains version for Rails and swears by it. I gave it a shot but couldn't get into it 100%. I wouldn't say it's bad. In my experience of mostly frontend work, I give vim #1, Code #2, and JetBrains x edition #3. Something about Code just works well for me for Typescript/Vue frontend work. But TBH I haven't tried TS in JetBrains. All I know is all the main TS devs seem to use Code and all the latest and greatest plugins get there first. It takes quite some time for them to filter down to Vim's community. Maybe I'll give it another shot one day as TS matures.
- gregors 6y agoIntellij just seems so incredibly bloated and slow to me. I still think older Visual Studio versions (not vscode) as the high water mark for any IDE I've ever used. I remember lots of talk how intellisense might be harmful http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind.html http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind...
- musicale 6y agoIntelliJ feels like coding underwater. The only reason I ever use it when I have to or when I get tired of typing page after page of awful verbose Java APIs.
- rudolph9 6y agoNever been an ide guy but if you like vim and considering switching to something else because of it can’t handle certain files, consider switching to neovim.
- p5a0u9l 6y agoSurprised to not find mentioned one of (neo)vim's main selling points for me - works in a terminal! GUIs, desktop apps are a complete non starter for me. Give me a well designed commercial, terminal-based editor ( with a vim backend of course ), and I will happily pay for it. Until then, it's nvim with mostly working plugins and I'm happy.
- pjmlp 6y agoI guess it is time to revive Turbo Vision.
- mjgs 6y agoI don’t know about intellij but I did use Webstorm for a few years, nice UI, but eventually it just slowed down to a crawl and was unusable. The support team kept saying to wait for the next release, which never fixed the issue. Very bad experience. Changed IDEs and all the slow down issues disappeared instantly. I won’t try them again.
- penguin_booze 6y agoI work at a Java shop, amongst thorough-bred IntelliJ users. But I comfortably get by with using Vim/tmux/ctags alone. I do write simple utilities that'd help me be productive. Sure, I could have relaxed in an armchair had I used an IDE, but I feel most at-home with text-speaking utlities, Vim being my go-to editor. Besides, I learned a thing or two while writing those utilities. Masochism? Maybe. What matters to me is simple, composable, stand-alone utilities. I don't hesitate using GUI or IDE-like tools when it's appropriate to do so. What worries me, though, is that the continued investment and excitement in monolithic tools may mean that newer languages and technologies will be serving those users alone. Simplicity and minimalism may be a thing of past.
- alephu5 6y agoI can't get on with IDEs, I find them too heavy and difficult to customise. I used vscode for a while in vim-mode but it's not as ergonomic as my neovim configuration. I can get documentation for a function by pressing K and jump to the definition or do a global rename using some other key combination. I work on a few tens of languages but have language servers integrated for them all and have installed syntax highlighting for everything in existence. Overall it's easy to manage and modify, and performs well.