# Apply a function to the current selection in place

Say a have the function foo:

foo[x_] := x + 2


Like the Evalution -> Evaluate in place, I would like to have a keyboard shortcut that replaces the current selection with the result of applying foo to the selection.

For example if I have selected 1+3 in a cell with the following contents:

2*1+3-5


By pressing a keyboard combination, I want Mathematica to replace it with the result of foo[1+3] (6):

2*6-5

• @Kuba Sorry I think that would be too cumbersome. – Tyilo May 23 '14 at 21:31

ok, so you need to add this Item.

Item[KeyEvent["t", Modifiers -> {Control}],
FrontEndExecute[
FrontEndNotebookApply[FrontEndInputNotebook[],
RowBox[{"foo", "[", "\[SelectionPlaceholder]", "]"}]];
FrontEndSelectionMove[FrontEndInputNotebook[], All, Expression, 2];
FrontEndSelectionEvaluate[FrontEndInputNotebook[]]
]
]


### Usage

Select what you need

Use Ctrl+t

### Ref:

Here is a tutorial how to add a new shortcut: Automating Esc [[ Esc formatting?