Changes to CHANGES.

This commit is contained in:
Nicholas Marriott 2017-04-20 11:00:15 +01:00
parent 9b2f02efbd
commit e7c2f53f2a

103
CHANGES
View File

@ -3,87 +3,80 @@ CHANGES FROM 2.3 to 2.4 XXXX April 2017
Incompatible Changes
====================
* Key tables have undergone some changes, in particular the following tables
have been removed:
* Key tables have undergone major changes. Mode key tables are no longer
separate from the main key tables. All mode key tables have been removed,
together with the -t flag to bind-key and unbind-key.
vi-edit
vi-copy
emacs-edit
emacs-copy
The emacs-edit, vi-edit, emacs-choose and vi-choose tables have been replaced
by fixed key bindings in the command prompt and choose modes. The mode-keys
and status-keys options remain.
As an example:
The emacs-copy and vi-copy tables have been replaced by the copy-mode and
copy-mode-vi tables. Commands are sent using the -X and -N flags to
send-keys. So the following:
The vi-copy and emacs-copy mode key tables are gone, and instead copy
mode commands are bound in one of two normal key tables ("copy-mode" or
"copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So:
bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up
bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up
Becomes:
Becomes:
bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up
bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up
This changes allows the full command parser (including command sequences) and
command set to be used - for example, the normal command prompt with editing
and history is now used for searching, jumping, and so on instead of a custom
one. The default C-r binding is now:
This allows the full command parser and command set to be used - for
example, we can use the normal command prompt for searching, jumping,
and so on instead of a custom one:
bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"
command-prompt also gets a -1 option to only require on key press, which
is needed for jumping.
* Edit-mode key table has gone away -- instead, fixed key-bindings are used.
* bind-key -c flag has been removed.
* set-remain-on-exit has gone away -- can be achieved with hooks instead.
* Hooks:
- before- hooks have gone away;
- Set number of commands now have hooks.
bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"
There are also some new commmands available with send -X, such as
copy-pipe-and-cancel.
* set-remain-on-exit has gone -- can be achieved with hooks instead.
* Hooks: before hooks have been removed and only a selection of commands now
have after hooks (they are no longer automatic). Additional hooks have been
added.
* The xterm-keys option now defaults to on.
Normal Changes
==============
* Mouse support for double and triple clicks has been added.
* command-prompt understands -N
* Support for mouse double and triple clicks.
* BCE (Background Colour Erase) is now supported.
* copy-mode learned the copy-pipe-and-cancel command.
* send -N now works for all keys, not just in copy mode.
* All occurrences of a search string in copy mode are now highlighted;
additionally, the number of search results is also displayed.
* Copy mode now supports incremental search.
additionally, the number of search results is displayed. The highlighting
updates interactively with the default emacs key bindings (incremental
search).
* source-file now understands glob patterns.
* Formats now have simple comparisons:
For instance:
#{==:a,b}
#{!=a,b}
#{==:a,b}
#{!=a,b}
* There are the following new formats:
* Formats also learned the following new placeholders:
- #{version} -- the tmux server version;
- #{client_termtype} -- the terminal type of the client;
- #{client_name} -- the name of a client;
- #{client_written} -- the number of bytes written to the client.
- #{version} -- the tmux server version.
- #{client_termtype} -- the terminal type of the client.
- #{client_name} -- the name of a client.
- #{client_written} -- Number of bytes written to the client.
* The configuration file now accepts %if/%endif conditional blocks; the argument
is a format string (useful with the new format comparison options).
* detach-client learned -E to exec a command to replace the client instead of
* The configuration file now accepts %if/%endif conditional blocks which are
processed when it is parsed; the argument is a format string (useful with the
new format comparison options).
* detach-client now has -E to execute a command replacing the client instead of
exiting.
* Add support for custom command aliases, this is an array option which
contains items of the form "alias=command". This is consulted when an
unknown command is parsed.
* break-pane learned -n
* OSC52 support has been added for clipboard inside tmux.
* Mouse "all event" mode (1003) has been added.
* Palette setting is now possible.
* Strikethrough support has been added (a recent terminfo is required)
* break-pane now has -n to specify the new window name.
* OSC 52 support has been added for programs inside tmux to set a tmux buffer.
* The mouse "all event" mode (1003) is now supported.
* Palette setting is now possible (OSC 4 and 104).
* Strikethrough support (a recent terminfo is required).
* Grouped sessions can now be named (new -t).
* There has also been many performance improvements as part of this version.
* terminal-overrides and update-environment are now array options (the previous
set -ag syntax should work without change).
* There have been substantial performance improvements.
CHANGES FROM 2.2 to 2.3 29 September 2016