God, get rid!! He's a nasty dick. A complete twat. You can do better by dressing up a broom handle and drawing a moustache on it.
And, and - people in this dilemma - caught in a shit relationship and hesitant - always say things like - 'well, most of the time it's ok/great. He makes me laugh. Bah blah...'
Don't you get it? It doesn't matter if he acts like a nasty hate-fuelled wanker only 5% of the time, THAT'S THE BIT THAT MATTERS. That's the bit of him that's going to make you feel just a tiny bit lonely and sad even when he's in a good mood, because you never know what's round the corner. That's the bit of him that's going to make you hesitate, all your life long, to say that you truly love each other and are happy. That's the bit of him that's always going to make your life harder as you make sure you don't ask him for too much support, don't look a fool in front of him because he'll sneer or laugh, don't tell him your deepest thoughts and feelings because he'll belittle them.
He's a nasty piece of work. Nasty pieces of work are, most of the time, fun and happy, just like everyone else, because that's how they feel like being at that particular moment. Nothing else. But what's different is the empathy, the care, the humanity. He'll only ever be happy and fun and nice when he wants to be for HIS own ends. Never to make you laugh to make you happy, never to cheer you up, never to go out of his way to show care or support.
It's like having a car with faulty brakes, and saying 'well, I like the colour, and the seats are comfy, and it's easy to park... no, I think I'll stick with it, most of the time the brakes work ok.' Is it a good car to have? No.