2015-10-29 2 views
0

Я перехожу к emacs и в процессе настройки среды emacs, я застрял в реализации функциональности, которую я использовал в eclipse и IntelliJ. Двигайтесь взад и вперед по коду с помощью кнопок left/right.Eclipse style alt left/right navigation in emacs

Я хочу, чтобы он мог работать во всех основных режимах и во всех буферах (не только для Java или любого конкретного языка). Например, говорят, что я нахожусь в начале файла file1.txt (скажем p1). Я ищу текст и перехожу к строке 10 (p2) в file1.txt. Затем я открываю другой файл, file2.txt и повторяю то же самое, начинаем с строки 1 (p3), а затем переходим к строке 10 (p4). После Alt + Left и Alt + right (или любого другого подобного брелка) я должен иметь возможность циклически перемещаться между позициями p1 <-> p2 <-> p3 <-> p4

Мне известно следующее.

  1. ctags/etags специфический подход к генерации тегов, переход к функциям, а затем обратно. Но я хочу, чтобы это было применимо к текстовым файлам и много файлов, для которых Ctags косяк быть сгенерированы или не стоит генерации, как я их использую редко, например Makefiles генерируется из CMake сборки и т.д.
  2. Вопросы, ответы и комментарии в https://superuser.com/questions/241939/how-to-jump-back-to-the-last-position-of-the-cursor-in-emacs , In Emacs, how to go back to previous line position after using semantic Jump to Symbol? где указаны ответы об использовании меток и регистров для отметки . Но, сначала попробовав такой подход, я обнаружил, что один раз, если я продвигаюсь вперед, а затем назад, я выхожу из реестра. Мне нужно, чтобы он был там навсегда (: D)
  3. Я читал действительно плохие вещи о сосульках и немного нерешительно, чтобы попробовать .

Любой другой подход, который я пропустил? Любой плагин или что-нибудь еще? Реализация этого немного сложна. Я надеюсь, что это общая проблема и надеется, что для решения этой проблемы существует какой-то фрагмент кода elisp.

+0

Звучит как-то полезное. Если такой пакет не существует, его должно быть относительно легко реализовать с использованием «pre-command-hook», который сохраняет позицию точки перед соответствующими командами. – Lindydancer

ответ

0

может быть, это полезно .maybe не https://github.com/joodland/bm

(setq-default 
bm-recenter nil 
bm-highlight-style 'bm-highlight-line-and-fringe 
bm-cycle-all-buffers t 
bm-in-lifo-order t) 
;; (global-set-key (kbd "M-.") 'bm-toggle); you need set mark before you jump 
;; (global-set-key (kbd "M-/") 'bm-next) 
;; (global-set-key (kbd "M-,") 'bm-previous) 

и я знаю, что зло-режим Со злом прыжок-назад Ci злой прыжок вперед всякий раз, когда вы используете Gg G/она может запомнить последняя позиция

+0

Я не знаю, правильный ли ответ, но последние четыре строки должны быть перемещены из окна кода или разделители с запятой должны быть добавлены слева от каждой строки. Строки с 2 по 5 должны иметь слегка отступы. – lawlist