This depends on your requirements.
Since you considering Keil uVision, you seem aware of the price tag for a license.
The free version is code size limited (at least was lately).
The MCUXpresso is only a viable option if you stay with the NXP MCU families.
The Keil compiler is said to produce the fastest and most compact code, if that matters to you.
Keil is owned by ARM, so, no surprise. Their compiler is not GCC based, nor is the assembler.
The latter matter especially for startup code, and asm - inline code.
The Keil IDE is different (not Eclipse-based), but relatively easy to work with.
The IDE is a matter of taste. I personally very much dislike Eclipse.