In Adobe Illustrator CC 2015 I can move a linear gradient as required with help of Gradient Annotator. But I don't see how to specify exact positions. Even more, Gradient Annotator doesn't snaps to anchor points and paths. What can you recommend?
The best you can do is utilize the Gradient Panel and location percentages. Illustrator does not offer any hard algorithmic method to input definitive values. Because gradients are sized based on their boundaries, everything is relative to the object and a percentage. So if you want precision you'll need to do the math and figure out what percentage of the object matches your desired stop position. i.e. 100px object.. stop at 15px means 15%...
Using the Gradient Panel you can click a color stop and then alter the
Location percentage to move the stop:
Note that clicking a color stop on the annotator will popup the options allowing you to adjust a color stop location as well:
You can be a bit more precise with linear gradient angles using the gradient panel as opposed to the annotator and use definitive degrees there:
This is about as precise as you'll get out of the box.
You may want to attempt to use the gradient mesh tool (shortcut U) to achieve a more precise gradient effect in your work. Note that mesh objects are not as easily manipulated as shapes in illustrator, so first achieve the shape you want and then apply the mesh. You can precisely manipulate colors and positions on the mesh point by point in excruciating detail, unlike a simple gradient with the direct selection tool (A) around the mesh as you generate points with U.
The biggest issue you’ll have with mesh objects is easily editing them as they can be fickle things, so just be aware they are not well suited for simple designs, where layering standard objects is a better method. My other suggestion is to use as few mesh points as possible in your design — the more precise you are, the more precise you’ll have to be to achieve a clean look.