It seem to me that for a task like writing homework, it would be complete overkill to try anything fancy or low-level. So I would suggest instead to go with something like this, which just applies in the current notebook and also just for the particular vector you use most commonly: SetOptions[EvaluationNotebook[], InputAutoReplacements -> {"aa" -> ToBoxes[ \!\(\*OverscriptBox[\(a\), \(\[RightVector]\)]\)]}] Now if you type `aa` followed by a space, it will immediately change to $\vec{a}$. Also be aware that you should use such constructs primarily for typesetting. Don't try using things like $\vec{a}$ in the same way you would use variables, unless you know what you're doing. See [this tutorial](http://mathematica.stackexchange.com/q/18393/245) and search for issues related to subscripted symbols. The same warnings apply to vectors. **Edit: general vectors** The above is the fastest method to input specific vectors. To do something similar for arbitrary vectors, you will need more keystrokes. First enter SetOptions[EvaluationNotebook[], InputAutoReplacements -> {"vv" -> OverscriptBox["\[NegativeMediumSpace]\[SelectionPlaceholder]", "\[RightVector]"]}] Now you can type `vv` followed by a space to get a placeholder into which you type the desired letter(s). Then you can press the arrow navigation keys or <kbd>Ctrl</kbd>-<kbd>.</kbd> repeatedly to get out of the placeholder when done.