Этот вопрос первоначально задавался по адресу /programming/15895313/let-emacs-move-the-cursor-off-screen , но все ответы, которые я получил более или менее, гласили: «Это невозможно» что с emacs я просто не принимаю.
Можно ли позволить Emacs переместить курсор за пределы экрана, как работает большинство текстовых редакторов с графическим интерфейсом? Это одна из самых больших вещей, которые меня беспокоят, когда я использую Emacs поверх любого графического редактора. Когда я прокручиваю вниз, курсор «выдвигается» вверху буфера.
Ранее я думал, что это абсолютно невозможно, потому что это встроено в архитектуру Emacs, но потом я увидел несколько курсоров, которые делают именно это для вторичных курсоров (при условии, что функции прокрутки не действуют на вторичные курсоры). Возможно ли использовать несколько курсоров, чтобы основной курсор находился в каком-то скрытом буфере, а эффективный курсор - это то, чем я на самом деле редактирую? Или, может быть, какой-то другой хитрый трюк? Или, может быть, мой Googling подвел меня, и это действительно уже возможно без какой-либо магии?
Я использую терминал Emacs, поэтому он должен работать там.
Ответы:
Существует новый пакет , доступный на GNU ELPA называется ,
scroll-restore
что попытки решить эту проблему. Есть несколько вариантов поведения на выбор, но способ, которым я настроил его для себя (см. Ниже), заставляет курсор становиться невидимым во время команд прокрутки, а затем, когда я снова набираю текст, возвращаюсь в исходное положение.До сих пор я сталкивался с несколькими ошибками, но пакет, по-видимому, по большей части работает как рекламируется. Вы можете проверить это, установив его с
После установки пакета вы можете включить второстепенный режим с помощью
Лично я связываю его с Scroll Lockключом, потому что он кажется невероятно кстати! Это то, что я добавляю в мой файл инициализации:
источник
Метод, который я всегда использую, состоит в том, чтобы установить метку, к которой я хочу вернуться, и затем, когда я закончу, просматривая буфер, я выталкиваю метку, используя
C-u C-SPC
. Даже когда я забываю установить метку перед тем, как уйти, я обнаруживаю, что метка метки обычно делает меня довольно близко к тому месту, откуда я пришел. Отчасти это связано с тем, что некоторые команды (например,isearch
например) устанавливают отметку, даже не осознавая этого. Таким образом, в процессе редактирования вы случайно оставили небольшой след от крошек.Из документации:
Я почти никогда не зацикливаюсь на настройке закладок или регистров, но почти всегда могу найти дорогу назад, откуда я пришел, используя либо
C-u C-SPC
илиpop-global-mark
.источник
scroll-up
иscroll-down
автоматически установить метку, чтобыC-u C-SPC
вы наверняка вернулись туда, откуда пришли.Следующий код достаточно хорош для того, чтобы я мог вернуться назад после прокрутки колесика мыши:
источник