Вот уважаю я в емаксе макросы, которые по F3/F4 записываются и выполняются. Очень удобно. Даже порой индентацию текста меняю через них (в целом-то это извращение, но иногда так быстрее).
Интересно вот что. Можно ли записать макрос интерактивно, но привязать его к какой-нибудь клавише? Вручную в ~/.emacs пердолиться не хочу, сорь заранее.
@gds а, вот что нашел в закромах:
```
(defun user-macro-file() "~/.emacs.d/custom-macros.el")
(load (user-macro-file))
(defun save-macro (name)
"save a macro. Take a name as argument
and save the last defined macro under
this name at the end of your .emacs"
(interactive "SName of the macro :") ; ask for the name of the macro
(kmacro-name-last-macro name) ; use this name for the macro
(find-file (user-macro-file)) ; open ~/.emacs or other user init file
(goto-char (point-max)) ; go to the end of the .emacs
(newline) ; insert a newline
(insert-kbd-macro name) ; copy the macro
(newline) ; insert a newline
(switch-to-buffer nil)) ; return to the initial buffer
(save-buffer (user-macro-file))
@gds записываешь макрос, вызываешь M-x save-macro, оно сохраняется в файл user-macro-file в виде функции. при следующем запуске этот файл грузится и ты получаешь обратно свои макросы.
@grouzen ты точно ебанутый
@komar было в multi-edit
@gds
(defun save-macro-bind-key (name key)
"save a macro. Take a name, keyinding as argument
and save the last defined macro under
this name at the end of your .emacs"
(interactive "SName of the macro: \nKKey binding: ") ; ask for the name of the macro
(kmacro-name-last-macro name) ; use this name for the macro
(find-file (user-macro-file)) ; open ~/.emacs or other user init file
(goto-char (point-max)) ; go to the end of the .emacs
(newline) ; insert a newline
(insert-kbd-macro name) ; copy the macro
(newline) ; insert a newline
(switch-to-buffer nil); return to the initial buffer
(global-set-key key name))
проверяй
@gds ```
(defun save-macro-bind-key (name key)
"save a macro. Take a name, keyinding as argument and save the last defined macro under this name at the end of your .emacs"
(interactive "SName of the macro: \nKKey binding: ") ; ask for the name of the macro and a keybinding
(kmacro-name-last-macro name) ; use this name for the macro
(find-file (user-macro-file)) ; open ~/.emacs or other user init file
(goto-char (point-max)) ; go to the end of the .emacs
(newline) ; insert a newline
(insert-kbd-macro name) ; copy the macro
(newline) ; insert a newline
@gds zъc
@kb спасибо