If there is no good completion solution, then I'll cheat. Grep to the definition (or jump with tags), open it in a buffer and I can look at what is there. At that point the members are now available for "dumb" textual completion. I'll create helper function to do this.
Give me a few hours and I can match just about any IDE feature. The mechanical parts of the workflow are crazy fast and fluid.
Visual Studio - C#
Notepad ++ - Any text file I need quick access to, cut/paste
Visual Studio Code - Trying it out to replace Notepad++
Android Studio - Native Android Apps
WebStorm - JavaScript and front end projects
IntelliJ IDEA - JAVA
I do think they it could make things harder/easier. For example if I want to switch from C# (in Visual Studio) to any other editor - it feels like a less familiar experience (and will be less productive at first)
This not only effects writing code, but debugging methods as well.
I also use dedicated apps for databases (mostly Robomongo and DataGrip) and version control (Tower).
sublime text for others.
vim for ssh remote.
I use vim for composing email(s).
i add linters per language, and documentation lookup and autocompletion.
the only time i have a problem is with new projects where a file tree would be useful. there are vim file trees, but i dislike them.
See http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windo...
I keep Atom around, though; IntelliJ products are also nice if you're into IDEs.