If I'm trying to move a vertex along any axis other than global X Y or Z, it doesn't snap to another line or face (at least not in a useful way). For example, this is what I want:
But trying to snap to a vertex results in this:
And snapping to an edge results in this:
The problem is that when I'm moving a vertex along a local axis, the snapping also uses the local axis. I'd like to move it along a local axis but use a global axis for the snapping.
EDIT: To explain my use case a bit; I do a lot of modeling for mechanical parts, and this situation comes up frequently. I have found 2 ways to accomplish this, but they are both fairly cumbersome.
One is to use a shrinkwrap modifier, but that requires creating a vertex group, setting up the modifier, and in some cases creating a new object to use for the target since the the object I'm wanting to snap to doesn't necessarily lie on the path I'm moving the vertex.
The other is to extrude the vertex beyond the point I want to snap it to and then use a boolean operation to clip the mesh. This one is a fairly bad solution though since a boolean operation requires the mesh to be manifold, and it often does unpredictable things.
The shrinkwrap method is the least painful method I've found, but I'd really like a way to do this simply and quickly, just like snapping a vertex in any other scenario.