# Shortcut for “vertical space” in LyX

Has someone got an idea what the shortcut is/where I can create one for the \medskip{} command (or any other command, that generates a vertical space in my document)?

I looked in Tools/Preferences/Editing/Shortcuts, but I couldn't find any command of this type there.

P.S. I'm using Lyx 1.6.5

-
When you get to the stage of asking "how do I use this TeX command in LyX?" maybe it's time you dropped LyX for a proper editor... –  Seamus Jul 13 '11 at 12:00
@Seamus: Actually, the question is about binding a shortcut to a LyX function available via the GUI (which in result inserts a \medskip in the TeX-output of LyX). –  Daniel Jul 14 '11 at 20:29

The following command sequence inserts a \medskip in your document, you just have to bind it to the shortcut you prefer: inset-insert vspace medskip.

At times it is a bit tricky to figure out what LyX commands one actually has to bind to a shortcut to achieve the desired behavior. While for most commands LyX shows the last executed command in the status bar, this does not help for commands that open a dialog for further settings. In the following, I describe the approach I used to figure this one out, so you could apply it for other questions in this respect:

(1) Start Lyx with the -dbg action option (that is, run /path/to/lyx-binary/lyx -dbg action from a console window).

(2) Execute the command for which you want to figure out the command sequence. LyX lists the actions in the debug output in the console. The following shows the relevant output for Insert->Formatting->Vertical Space... with selecting MedSkip:

LyXFunc::dispatch: cmd:  action: 219 [dialog-show-new-inset]  arg: 'vspace' x: 0 y: 0
LyXFunc.cpp(771):
LyXFunc::dispatch: cmd:  action: 218 [dialog-show]  arg: 'vspace vspace defskip' x: 0 y: 0
LyXFunc.cpp(1842): dispatch msg is
LyXFunc.cpp(1875): verbose dispatch msg (dialog-show-new-inset vspace)
LyXFunc.cpp(771):
LyXFunc::dispatch: cmd:  action: 224 [inset-apply]  arg: 'vspace medskip' x: 0 y: 0
LyXFunc.cpp(771):
LyXFunc::dispatch: cmd:  action: 225 [inset-insert]  arg: 'vspace medskip' x: 0 y: 0


(3) Usually the last command executed by some dialog-based action is the one you are looking for. In this case it is the line with [inset-insert] and the arguments vspace medskip.

(4) Use the LyX Mini-Command Buffer (View -> Toolbars -> Command Buffer) to manually test the command: inset-insert vspace medskip

If the result is what you want to achieve, you are done and have found the command sequence to bind to the shortcut. Otherwise you have to experiment more :-)

Update: General answer using the GUI only

For those who do not feel comfortable with starting LyX from a console window, there is also a GUI-only way to figure out the commands (thanks to Dominik for the hint!):

(1a) In LyX, open the debug Console by selecting View –> Message Pane

(1b) Configure the settings on the Settings page, so that User commands and External control interface are set to Yes:

(2) Switch on the Output pane and execute the command for which you want to figure out the command sequence. The following shows the relevant output for Insert->Formatting->Vertical Space... with selecting DefSkip:

(3) Proceed as above.

-
Wow, very elegant solution for the general case. thank you –  user10324 Jul 14 '11 at 11:28
Since LyX 2.0 there's a debugging pane which you can start on menu "View > Messages Pane". To only see the command sequences, disable all debug levels except "External control interface". –  Dominik Feb 24 at 17:57
@Dominik: Nice, I wasn't aware of that. However, to also get the results from an inset window (command argument), I additionally had to select "User Command". I have edited your approach into the answer. –  Daniel Feb 25 at 9:50

From what you ask a simple solution would be to add in ERT \vspace{xcm}, where x is the vertical space required.

-
Welcome to TeX.sx! In the present form, your answer looks more like a comment. Could you expand it slightly? –  Corentin Mar 19 '13 at 22:27