I tried helm, but it induced slight lag, bigger loading times, and I didn't like that. I had big ass emacs configuration, it felt heavy and sluggish. That was the moment where I declared bankruptcy and started from beginning where I created 250 LOC config, with no big plugins like helm.
For emacs, try helm to replace fzf (or just use fzf.el). helm-ag is awesome. On the terminal, just alias 'vi' to 'emacsclient -nw -a ""'.
If you miss the vi keybindings (which are a pretty nice way to deal with code), then evil-mode or a full Spacemacs are pretty good options for you.