The line is
function info() {
emacs -eval "(progn (setq Man-notify-method 'bully) (info \"$1\"))"
}
I know from manuals that
Progn
progn is a special form in `C source
code’.
Setq
setq is a special form in `C source
code’. (setq SYM VAL SYM VAL …)Set each SYM to the value of its VAL.
The symbols SYM are variables; they
are literal (not evaluated). The
values VAL are expressions; they are
evaluated. Thus, (setq x (1+ y)) sets
x' to the value of(1+ y)’. The
second VAL is not computed until after
the first SYM is set, and so on; each
VAL can use the new value of variables
set earlier in thesetq'. The returnsetq’ form is the value
value of the
of the last VAL.
$1 seems to a reference to the first parameter after the command man which the user gives.
‘bully seems to be a random variable.
Man-notify-method seems to be an action function which is run when man command is executed.
-eval seems to be an evalutian statemant which tells Emacs to run the statement which follows it.
However, I am not completely sure about the function.
I need to understand the function, since I want to bind a bash code of mine to the action function of man. Man-notify-method seems to be that action function, at least in Emacs.
How do you understand the line of Emacs Lisp?
PROGN simply evaluates the expressions in order, returning the return value of the last one.
SETQ is the basic assignment operator.
INFO enters the emacs info browser.
So, what this does is first assign the symbol
'bullyto the variableMan-notify-method, then enter the info browser.'bullyis likely the name of a function, andMan-notify-methoda place where the info browser looks up a function to call for some notification (Warning: I am just guessing here).I guess that you will have to define your own function that calls your shell command like this:
Then assign its symbol to
Man-notify-method: