New Modes and Packages in Emacs 27.1

6 New Modes and Packages in Emacs 27.1

6.1 Tab Bars

6.1.1 Tab Bar mode

The new command tab-bar-mode enables the tab bar at the top of each frame (including TTY frames), where you can use tabs to switch between named persistent window configurations.

The 'C-x t' sequence is the new prefix key for tab-related commands: 'C-x t 2' creates a new tab; 'C-x t 0' deletes the current tab; 'C-x t b' switches to buffer in another tab; 'C-x t f' and 'C-x t C-f' edit file in another tab; and C-TAB and S-C-TAB switch to the next or previous tab. You can also switch between tabs and create/delete tabs with a mouse.

Tab-related commands are available even when tab-bar-mode is disabled: by default, they enable tab-bar-mode in that case.

The X resource "tabBar", class "TabBar" enables the tab bar when its value is "on", "yes" or "1".

The user option tab-bar-position specifies where to show the tab bar.

Tab-related commands can be used even without the tab bar when tab-bar-mode is disabled by a nil value of the user option tab-bar-show. Without the tab bar you can switch between tabs using completion on tab names, or using tab-switcher.

Read the new Info node "(emacs) Tab Bars" for full description of all related features.

6.1.2 Tab Line mode

The new command global-tab-line-mode enables the tab line above each window, which you can use to switch buffers in the window. Selecting the previous window-local tab is the same as typing 'C-x <LEFT>' (previous-buffer), selecting the next tab is the same as 'C-x <RIGHT>' (next-buffer). Both commands support a numeric prefix argument as a repeat count. Clicking on the plus icon adds a new buffer to the window-local tab line of buffers. Using the mouse wheel on the tab line scrolls tabs.

Read the new Info node "(emacs) Tab Line" for full description of all related features.

6.2 fileloop.el lets one setup multifile operations like search&replace.

6.3 Emacs can now visit files in archives as if they were directories.

This feature uses Tramp and works only on systems which support GVFS, i.e. GNU/Linux, roughly spoken. See the node "(tramp) Archive file names" in the Tramp manual for full documentation of these facilities.

6.4 New library for writing JSONRPC applications (

The jsonrpc library enables writing Emacs Lisp applications that rely on this protocol. Since the protocol is designed to be transport-agnostic, the library provides an API to implement new transport strategies as well as a separate API to use them. A transport implementation for process-based communication, such as is used by the Language Server Protocol (LSP), is readily available.

6.5 Backtrace mode improves viewing of Elisp backtraces.

Backtrace mode adds pretty printing, fontification and ellipsis expansion to backtrace buffers produced by the Lisp debugger, Edebug and ERT. See the node "(elisp) Backtraces" in the Elisp manual for documentation of the new mode and its commands.

6.6 so-long.el helps to mitigate performance problems with long lines.

When global-so-long-mode has been enabled, visiting a file with very long lines will (subject to configuration) cause the user's preferred so-long-action to be automatically invoked (by default, the buffer's major mode is replaced by so-long-mode). In extreme cases this can prevent delays of several minutes, and make Emacs responsive almost immediately. Type 'M-x so-long-commentary' for full documentation.