В Emacs, как я изменяю мини-буферное окно списка завершения?

Если вам нужна строка mm/dd/yyyy вместо объекта datetime, вы можете использовать strftime (время форматирования строки):

>>> dt.datetime.today().strftime("%m/%d/%Y")
                   # ^ note parentheses
'02/12/2014'
7
задан Nick Bolton 22 May 2009 в 23:09
поделиться

3 ответа

После запуска по пути попытки использовать minibuffer-scroll-window (которое оказывается не настраиваемым пользователем). Я попробовал такой подход:

(add-to-list 'special-display-buffer-names '("*Completions*" my-display-completions))

(defun my-display-completions (buf)
  "put the *completions* buffer in the right spot"
  (let ((windows (delete (minibuffer-window) (window-list))))
    (if (eq 1 (length windows))
        (progn 
          (select-window (car windows))
          (split-window-vertically)))
    (let ((target-window (window-at 0 (- (frame-height) 2)))
          (pop-up-windows t))
      (set-window-buffer target-window buf)
      target-window)))

Это работает путем разделения единственного окна на две и отображения * Завершений * в нижнем окне или, если уже показано 2 или более окон, с помощью нижнего левого угла. окно, чтобы отобразить * Завершенные работы * .

9
ответ дан 7 December 2019 в 01:25
поделиться

Слегка обманывающий ответ, что может делать то, что вы хотите:

Вручную сделайте нижнее левое окно буфером * Завершений *, используя

C-x b *Completions* RET

, когда курсор активен в этом окне. Затем всякий раз, когда минибуфер должен отображать некоторые завершения, он всегда должен использовать это конкретное окно. Однако это будет зависеть от того, что этот буфер будет оставаться открытым и видимым все время - возможно, это не совсем то, что вам нужно?

Другие возможности:

  1. Посмотрите, помогает ли « Icicles » - например, он упоминает «Там есть множество функций Icicles, которые улучшают отображение и поведение '* Completions *' ".
  2. Команды минибуфера, выполняющие завершение , могут быть полезны?
1
ответ дан 7 December 2019 в 01:25
поделиться

Не так надежно, как ответ Трея, но, похоже, работает грубо.

; Go to the 3rd window, and make it dedicated.
(other-window 2)
(set-window-dedicated-p (selected-window) 1)

Это работает, только если вы не возражаете, чтобы третье окно было заблокировано. К сожалению, время от времени он по-прежнему будет пытаться использовать первое окно (что менее неприятно, но все же нежелательно).

Примечание: Я только что попробовал решение Трея, и теперь оно сработало, поэтому я рекомендую людям его использовать.

0
ответ дан 7 December 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: