Я переношу две операции, которые я делаю все время в Emacs:
Я чувствую себя подобно акробату клавиатуры при выполнении первых двух операций. Я думаю, что стоило бы попробовать некоторые пользовательские привязки клавиш и макросы.
Несколько вопросов об этой настройке:
Я использую этот простой фрагмент:
(global-set-key (kbd "
bury-buffer в основном делает текущий буфер последним в буфере- list, чтобы вы могли циклически переключать буферы в предсказуемом порядке.
(cua-paste nil)
вы также можете использовать (yank)
. Я не уверен, что лучше и почему. Пробовали ли вы использовать для этого вертикально или горизонтально разделенные окна (через C-x 3 или C-x 2)? Кажется, что это даст вам меньше шагов - даже если вы реализуете что-то вроде того, о чем вы говорите.
Я обнаружил, что разделенные окна действительно ускоряют операции копирования и вставки. Для переключения между окнами я использую клавиши со стрелками на клавиатуре (windmove-left
/-right
/-up
/-down
), поэтому достаточно нажать всего одну клавишу, и вы переходите в нужное вам окно.
Думаю, это немного отличается от того, о чем вы просите, но, похоже, это поможет немного ускорить работу.
C-x влево и C-x вправо перебирают буферы, но для этого нужно нажать несколько раз, нельзя просто удерживать клавишу нажатой.
Для создания макроса для #1, вы просто запускаете макрос, нажимаете клавиши, которые вы обычно делаете, чтобы создать новый буфер, и останавливаете макрос.
Так что это будет что-то вроде:
C-x ( C-x b NEW
RET C-x )
После завершения вставки вы можете сохранить NEW
в файл, чтобы снова использовать макрос для создания нового буфера. C-x e, чтобы опробовать макрос. Если он работает, вы можете сохранить его в файле init.el
. Это делается так:
M-x name-last-kbd-macro
Затем вы получите приглашение ввести имя по вашему выбору. Оно подходит только для текущего сеанса. Затем сохраните макрос с именем в файле инициализации. Сначала откройте файл .emacs
или init.el
. Затем поместите точку в то место, где должно находиться определение макроса, затем введите:
M-x insert-kbd-macro
Теперь вы можете запустить макрос, используя его имя через M-x
. Вы также можете привязать макрос к клавишам (в файле .emacs
или init.el
):
(global-set-key (kbd "C-c a") '<macroname>)
Например, вот как будет выглядеть ваш init. el
будет выглядеть после создания макроса, открывающего новый буфер под названием NEW
, не связанный с файлом, и привязки этого макроса к C-c n:
;; Creates a new unassociated buffer called NEW
(fset 'new-buffer "\C-xbNEW\C-m");
;; Shortcut for new-buffer
(global-set-key (kbd "C-c n") 'new-buffer)
Вы также можете добавить операции вставки, закрытия буфера и переключения буфера. Думаю, вам придется сохранять буфер в файл вручную.
Некоторые ресурсы
Информация о макросах на EmacsWiki
Возможно, пригодится: Обмен текстом между буферами