From e7c2f53f2afe2369ececac976ef13193c1d9ed3a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 20 Apr 2017 11:00:15 +0100 Subject: [PATCH] Changes to CHANGES. --- CHANGES | 103 ++++++++++++++++++++++++++------------------------------ 1 file changed, 48 insertions(+), 55 deletions(-) diff --git a/CHANGES b/CHANGES index 9f63cbec..116c9337 100644 --- a/CHANGES +++ b/CHANGES @@ -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