It's easier to do this when we're able to empathize. I forgive easily, until I cannot imagine what could possibly possess a person to behave the way they do. I struggle with this; the best I've been able to manage in the few situations where this applies is to compartmentalize - to give the person their due, when they do good things, and try to wall off old resentments so as not to let them become reasons to seek vengeance. Some things - only a very, very few things - I can't forgive. But I can mostly put them into a mental box and move on, sometimes even on relatively "friendly" (or at least civil) terms, if I must continue to have some sort of relationship with the person at all.