Emacs bookmark-jump: как перейти к bmark, и только одно из разделенных окон меняет содержимое? - PullRequest
4 голосов
/ 02 июня 2011

Я начинаю с файла, видимого в одном окне; затем я делю разделенное окно, поэтому теперь оба окна показывают одинаковое содержимое (в одной и той же точке буфера).

Теперь я хочу перейти в другое место в файле с помощью закладки только в 1 из 2 окон, но когда я выполняю прыжок с закладкой, оба окна оказываются в точке закладки.

Оставьте точку другого окна в покое!

Как мне это настроить?

Спасибо

(работает в Linux, GNU Emacs 23.2.1; xemacs не ведет себя таким образом)


пост-примечание:

Я хотел бы, чтобы в обоих окнах отображался один и тот же файл, и хотя в одном окне (w1) отображается часть файла, в другом окне (w2) я переключаюсь в разные разделы, используя различные закладки, пока позиция w1 не меняется.

Ответы [ 6 ]

1 голос
/ 24 июля 2012

Если вы используете clone-косвенный-buffer-other-window с закладкой + и автоматически названными закладками (C-x p RET / C-x p n / C-x p p), это будет работать так, как вы хотите. Без клона закладка +, кажется, имеет ту же проблему для меня.

1 голос
/ 02 июня 2011

Это не дает прямого ответа на ваш вопрос, но предоставляет альтернативное решение вашей проблемы. Я использую bm.el для видимых закладок. Если один и тот же файл виден в двух окнах, то переход по видимым закладкам изменяет только точку в текущем буфере.

Я настроил пакет следующим образом:

(require 'bm)
(setq bm-highlight-style 'bm-highlight-only-fringe)

(global-set-key (kbd "<C-f2>") 'bm-toggle)
(global-set-key (kbd "<f2>") 'bm-next)
(global-set-key (kbd "<S-f2>") 'bm-previous)
1 голос
/ 02 июня 2011

Может быть прямой ответ, но в целом я считаю, что все виды вещей становятся неудобными при отображении одного и того же буфера в нескольких окнах. Я рекомендую использовать косвенные буферы . Запустите M-x clone-indirect-buffer, чтобы создать другой буфер, или C-x 4 c (clone-indirect-buffer-other-window), чтобы также показать новый буфер в другом окне. В косвенном буфере содержится то же содержимое, что и в исходном, и сохранение сохраняется в тех же файлах, но в буферах

  • независимые точки, отметки, маркеры;
  • независимые режимы (и более общие независимые локальные переменные);
  • независимые виды (сужение, скрытый текст, лица, ...).
0 голосов
/ 25 февраля 2014

Отвечая на собственный вопрос (через пару лет):

начал использовать emacs 24 (24.3.1), который «исправил» это нежелательное поведение.

0 голосов
/ 02 ноября 2011

Попробуйте Закладка + . не меняет точку окна в других окнах, как вы описываете.

0 голосов
/ 02 июня 2011

Я использую эту функцию (клянусь, скопирован из интернета) для разделения.используя это, я думаю, вы можете получить то, что вы, но порядок действий обратный.

1) открыть другой файл с помощью закладки.
2) разбить окно.

;;----------------------------------------------------------------------------
;; When splitting window, show (other-buffer) in the new window
;;----------------------------------------------------------------------------
(defun split-window-func-with-other-buffer (split-function)
  "dont just dumb split window, change buffer as well"
  (lexical-let ((s-f split-function))
    (lambda ()
      (interactive)
      (funcall s-f)
      (set-window-buffer (next-window) (other-buffer)))))

(global-set-key "\C-x2"
        (split-window-func-with-other-buffer 'split-window-vertically))
(global-set-key "\C-x3"
        (split-window-func-with-other-buffer 'split-window-horizontally))
...