In our Java projects, however, we get reams of text output, with the stacktraces for any failures somewhere in the middle. When running the test suite in a Ruby project, I’m accustomed to seeing the orderly march of dots indicating each (hopefully) passing test. This always requires extra setup work with Vim and ctags. I’ve mapped g] (a mnemonic for ⌃]) to “Go to implementations”, which opens a menu showing the implementations of an interface.Īnother great thing about Jump to definition in IDEA is that, without any additional work on my part, it works with standard library classes and my project’s dependencies.
![phpstorm vim phpstorm vim](https://pics.me.me/james-follow-terrarum-i-just-typed-wq-into-phpstorm-and-56420011.png)
With ctags I’m out of luck here, but IDEA supports this. Working with Java, where the use of inheritance and interfaces is common, sometimes I want the reverse of “go to definition”: given an interface, jump to a particular implementation.
PHPSTORM VIM FULL
Although IDEA doesn’t support the full jumplist concept from Vim, this covers most important jumplist use case for navigating a codebase. After jumping to a definition, jump back to your previous position with ⌃O (remember “o” for “older”). And thanks to IdeaVim, the standard Vim binding for jumping to definition, ⌃], works as expected. Rather than having to set up exuberant ctags for the project, with IDEA this analysis is done automatically.
![phpstorm vim phpstorm vim](https://laracasts.s3.amazonaws.com/series/thumbnails/be-awesome-in-phpstorm.png)
Unlike a fuzzy file finder, this allows me to find classes or interfaces that are nested within outer classes, even if I don’t know the name of the file they’re contained in. IDEA has something a bit smarter: go to class (⌘O). In Vim I use ctrlp.vim as a fuzzy file finder: type “meastest” and the plugin produces a list of matching files, helping me quickly get to the file MeasuresConverterTest.java. So, after installing IdeaVim for Vim emulation, and setting up the Solarized light theme, I got started. Additionally, the Librato data team possesses a wealth of IntelliJ expertise that I can lean on for support. Vim can’t do this (well, not without calling out to Eclipse behind the scenes). It can refactor my code, automatically declare things, add missing imports, and so forth. The IDE actually understands my Java code. However, I had to admit that using an IDE has certain advantages. Besides, I don’t want the editor to do things for me-after all, I can “ edit text at the speed of thought” with Vim.
PHPSTORM VIM HOW TO
But when said colleagues found out that I was planning to write a guide for how to make a happy Vim setup for working with Java, they rebuffed me: “You should really spend your time learning how to use IntelliJ IDEA.” I was reluctant at first-IDEs feel like big, hulking, slow programs. I figured I could configure and modify Vim to the point of being as productive as my Java-writing colleagues are with IntelliJ IDEA. Using Vim feels to me like speaking a native language. It didn’t take long to change my mind, and here is why. Having used Vim for over ten years, my instinct was to continue using it when working in all of these projects.
![phpstorm vim phpstorm vim](https://insmac.org/uploads/posts/2017-08/1503175959_pycharm_01.png)
In the last few months, I’ve worked in Ruby, JavaScript, Python, Go, and Java projects. In my work as an Integrations Engineer at Librato, I find myself dabbling in many of our codebases. Learn more about monitoring application performance using AppOptics. Note: This article was originally published on Librato, which has since been merged with SolarWinds ® AppOptics ™.