mache `display-buffer` open buffer in new tab
Die display-bufferFunktion scheint in Emacs ziemlich stark genutzt zu werden. Es gibt viele Optionen, um zu bestimmen, wo ein neuer Puffer geöffnet werden soll (ein neues Fenster, ein neuer Rahmen, ein vorhandenes Fenster usw.).
Emacs führte in 27.1 ein Konzept für Registerkarten ein. Es scheint jedoch nicht einfach zu sein, zu erkennen, display-bufferdass neue Puffer in einem Tab geöffnet werden sollen, anstatt nur in einem neuen Fenster.
Gibt es eine Möglichkeit zum Konfigurieren display-buffer, um alle Puffer in einer neuen (oder vorhandenen?) Registerkarte zu öffnen?
Die Lösung von NickD schlägt vor, eine Funktion wie zu verwenden display-buffer-in-tab.
Ich konnte dies zum Laufen bringen, indem ich display-buffer-base-actionFolgendes einstellte :
(setq display-buffer-base-action '(display-buffer-in-tab))
Dies scheint jedoch mit Funktionen wie helpund nicht gut zu funktionieren magit-status. Sie neigen dazu, jedes Mal, wenn sie ausgeführt werden, zu viele Registerkarten zu öffnen.
Je nach Befehl oder pro neuem Puffer sind möglicherweise spezifischere Einstellungen erforderlich.
Antworten
Es gibt display-buffer-in-new-tab. Die Dokumentzeichenfolge lautet:
display-buffer-in-new-tab is a compiled Lisp function in ‘tab-bar.el’.
(display-buffer-in-new-tab BUFFER ALIST)
Display BUFFER in a new tab.
ALIST is an association list of action symbols and values. See
Info node ‘(elisp) Buffer Display Action Alists’ for details of
such alists.
Like ‘display-buffer-in-tab’, but always creates a new tab unconditionally,
without checking if a suitable tab already exists.
If ALIST contains a ‘tab-name’ entry, it creates a new tab with that name
and displays BUFFER in a new tab. The ‘tab-name’ entry can be a function,
then it is called with two arguments: BUFFER and ALIST, and should return
the tab name. When a ‘tab-name’ entry is omitted, create a new tab without
an explicit name.
This is an action function for buffer display, see Info
node ‘(elisp) Buffer Display Action Functions’. It should be
called only by ‘display-buffer’ or a function directly or
indirectly called by the latter.
Ungetestet.
BEARBEITEN: Ich habe dies mithilfe des Emacs-Hilfesystems gefunden. Ich benutze tab-bar-modees nicht und wusste vorher nichts davon, aber das C-h f display-buffer-TABzeigt mir einen Abschlusspuffer. Schnell , dass das Scannen, fand ich display-buffer-in-tabund display-buffer-in-new-tab. Ich habe mich für Letzteres entschieden und die oben eingefügte Dokumentzeichenfolge erhalten.
Wenn der Abschlusspuffer zu lang ist, um einfach mit dem Auge gescannt zu werden, können Sie mit zum Puffer wechseln C-x ound dann einfach z. B. tabim Puffer nach suchen C-s.
Das Erlernen des Gebrauchs Helpund auch das Durchsuchen der Handbücher Infoist eine hervorragende Investition Ihrer Zeit.