I'm not sure what a 2d vector is. I'm assuming you're specifying the line by the span of some vector $v$ translated by the 3d point $p$: $L = p + vt.$
You can specify a plane by two vectors and a point, or by a point and a vector. For the first, call the two vectors $v_1$ and $v_2$, and the point $q$. The plane is $rv_1 + sv_2 + q$.
If $p + vt$ does not intersect the plane, the projection can be written as a translation. If it does intersect the plane, pick $p$ and $q$ so that they coincide with the intersection of the line and the plane. Change coordinates so that $p=q=0$. Now all you do is project the vector $v$ onto $v_1$ and $v_2$. The projection map is
$tv\mapsto t\langle v,v_1\rangle v_1 + t\langle v,v_2\rangle v_2.$
If you want to work with a point $q$ and a single vector $w$ which specifies the plane by $\{x\ |\ \langle x,w\rangle = 0\} + q$, again translate coordinates to the intersection point $p=q=0$. Then project onto the span of $w$, and subtract that new line from the old line:
$ vt\mapsto vt - t\langle v,w\rangle w. $