I believe the Txtfmt plugin is what you are looking for ...
Txtfmt (Vim Designation)
Txtfmt provides a kind of "rich text" for plain text in Vim. The selection is carried out using hidden marker characters inserted directly into the buffer, so the selection is performed continuously, without the need to store metadata separately from the file.
Txtfmt is very customizable. The default settings support 8 (customizable) foreground colors, 8 (customizable) background colors, and all combinations of bold, underlined, and italic attributes (e.g. bold, bold, bold, bold, etc.). A configuration other than the default settings supports the following additional attributes: standout, reverse, and undercurl.
There is a very extensive help file, and the author is more than happy to answer questions about use ...
source share