I have been "99% Emacs" for the past 34 years. I will resort to vi when doing minor edits as root.
A friend of mine had a license plate frame that read: "vi not emacs" when he lived in Silicon Valley.
It triggered quite a few red light conversations.
emacs has its vhdl-mode, which is the best goddamn code-editing thing for any language ever.
pr<tab> and wham, a process template, filled in with my clock and preferred reset style.
sig<tab> and start the template for creating a signal.
ent<tab> and start creating an entity.
Put the cursor in the port list of an entity, then ctrl-c ctrl-p ctrl-w and it copies the port list. Then visit a new file, type ctrl-c ctrl-p ctrl-t and wham, now you have the basis of a test bench, with all signals declared and the DUT port map built.
Or, after copying the port list of an entity, type ctrl-c ctrl-p ctrl-i and wham, now you have a wired-up instance of your entity.
Code completion? Type the first couple of letters of a signal and then <tab> and it completes.
And so on. It's utterly brilliant.
Plus, you can play Tetris in emacs.