Try checking your spark plugs & wires. Can also be caused by dirty fuel filter.
you need the fast idle adjusted on the engine you may have idle set where it sounds fine in idle but not high enuff when dropped in gear.
a pile of poo
Check the motor mounts.
vacuum leak?
autozone will scan codes for free.to see what is wrong!!
Could be a very dirty fuel filter.
either bad gasket under throttle body or bad iac valve
MAF senso, or transmission fluid.
I have 91 chevy k1500, It does this, Sometimes it will idle a few minutes, then jump to high idle and check engine light comes on, And sometimes its as soon as i start the engine... I was told it was a vacum leak, But im no mechanic
Bad oxygen sensor
Either you were low on gas, you need a transmission check, or the fuel pump may be going out.
900rpm, and 600 rpms, respectively.