Команда для центрирования экрана по горизонтали вокруг курсора на Emacs? - PullRequest
11 голосов
/ 08 августа 2009

Я знаком с и очень часто использую от C-l (recenter-top-bottom) до

Переместить текущую строку в центр окна, сверху и снизу подряд.

Мне бы хотелось иметь эквивалентную команду для последовательного перемещения текущего столбца в центр окна, влево и вправо. Либо встроенный, либо фрагмент Elisp.

Ответы [ 2 ]

11 голосов
/ 08 августа 2009

Вот, пожалуйста:

(defun my-horizontal-recenter ()
  "make the point horizontally centered in the window"
  (interactive)
  (let ((mid (/ (window-width) 2))
        (line-len (save-excursion (end-of-line) (current-column)))
        (cur (current-column)))
    (if (< mid cur)
        (set-window-hscroll (selected-window)
                            (- cur mid)))))

И очевидное связывание (от obvio171 ):

(global-set-key (kbd "C-S-l") 'my-horizontal-recenter)
3 голосов
/ 08 августа 2009

Если вы переместитесь в выбранный столбец и нажмете C-x C-n, то команды C-n и C-p будут идти в этот столбец, пока вы не нажмете C-u C-x C-n, чтобы отключить поведение.

Этакая версия того, что вы ищете.

...