Using Vim without knowing WAY more than this article is an anti-pattern. Vim is inefficient for editing so you have to learn a lot more than these tricks and hacks to be proficient. If you aren't learning more about Vim's nasty design every day then it's an anti-pattern to use Vim, because you'll be much more efficient with less learning in any other editor. If, for example, you don't know how to edit searches and command-line mode commands in full Vim mode, then keep learning (press control-f in search mode). If you aren't proficient in Vim's garbage VimL then keep learning. Obviously an IDE with intellisense and multiple cursors is more efficient than most of Vim's efficiency hacks. Vim's efficiency gains more apply to editing text, not structured code.

I started using vim about 10 years ago. I am not an expert user, but I am using enough of it's features that I feel crippled when I am using another editor. I just have to think move this function to another file and my fingers will execute the vim commands.

I don't know any Vim Script. You don't have to know it to use vim, unless you want to write your own plugins.

I tried using an IDE recently (Clion), but it was not really worth it. Vim has plugins for most IDE features, including autocomplete and syntax checking. The only feature that I really miss in Vim automatic refactoring such as inlining functions.

Well, TBH, that sounds naïve. I use vim for way more than 10 years, have 500 lines of vimrc with multiple plugins installed, know pretty much every shortcut by heart, never use arrows and can somewhat write VimL. It is really hard for me to code w/o vim-layout, so I was struggling for a long time, but finally moved onto using JetBrains products (with vim-mode plugin, which is meh, but better than nothing still). I don't really like it, but I have to finally admit, that vim with plugins is not "almost an IDE". Mileage would vary for different languages, but the point is that IDEA/PhpStorm/PyCharm can suggest me so much more than Vim, because it knows the AST, and writing plugins to operate it is currently easier than with vim. I mean, in theory you could install whatever backend you want onto vim, that does AST-parsing and autocompletion, there already exist pretty neat YouCompleteMe, jedi-vim (for python) and even heavy artillery such as eclim, but unfortunately it's all far from "solid support", and VimL is not the most friendly environment to write plugins for.

I really wish there was an IDE that would be IDE-first (building an AST for each file, and using it for most of the functionality + making it easily usable in the scriptable plugins), but had the UI and usability of vim, but there doesn't seem to be any.

You may want to keep an eye on https://microsoft.github.io/language-server-protocol and https://github.com/w0rp/ale.

Any editor that supports it will have very very high quality auto complete and other IDE-like benefits like jumping to definitions.

It's still in its early stages but it's shaping up to be a game changer if you want those features.