summaryrefslogtreecommitdiffstats
path: root/window-copy.c
AgeCommit message (Collapse)Author
2018-04-23Check whether cursor is at start or end when copying rectangularnicm
selections, from tb@.
2018-03-08Add a missing client-detached hook when the server shuts down, and donicm
not exit until jobs started from run-shell/if-shell have finished (add a job flags member and a flag to indicate other jobs). GitHub issue 1245.
2017-11-16Add -and-cancel variants for scrolling commands to exit copy mode whennicm
the bottom is reached, from Stephen Hicks.
2017-11-13When searching in copy mode, do not scroll if the result is already onnicm
screen. GitHub issue 1150.
2017-09-13Remove unused (always 1) arguments from some functions, from Danielnicm
Mueller in GitHub issue 1073.
2017-09-04Move to current mouse position not last when clcking in copy mode; fixesnicm
GitHub issue 1055. Also a man page fix from jmc.
2017-08-29Redraw rectangle selections properly when cursor at end, GitHub issue 992.nicm
2017-08-23Fix searching when match is at end of line, from Brad Town.nicm
2017-08-02Add selection_present format so commands in copy mode can use it, GitHubnicm
issue 1028.
2017-06-09Add a hook when the clipboard is set.nicm
2017-06-03Make set-clipboard a three-state option so tmux itself can ignore thenicm
sequencess.
2017-05-30Rewrite of choose mode, both to simplify and tidy the code and to addnicm
some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.
2017-05-29Do not factor in screen_hsize() for the visible copy mode screen whennicm
adjusting the selection, it should never have any useful history (and when it does, after resize, we shouldn't use it). From Michal Mazurek.
2017-05-12Scrolling needs to use background colour.nicm
2017-05-12Store copy mode search string in pane so search-again command works evennicm
if you exit and reenter copy mode (it doesn't remember the position, just the search string), suggested by espie@.
2017-05-07Add a format for the name of the pane's mode, lets it be used as anicm
conditional for key bindings.
2017-05-03Add a format for the last search string in copy mode and fix the promptnicm
so it can work when in -I, suggested by Suraj N Kurapati.
2017-04-20If a #() command doesn't exit, use its most recent line of output (itnicm
must be a full line). Don't let it redraw the status line more than once a second. Requested by someone about 10 years ago...
2017-03-24Show count of search results in copy mode.nicm
2017-03-21Fix movement after select-line, from Omar Sandoval.nicm
2017-03-08Skip over padding cells when moving the cursor left or right.nicm
2017-03-08Add a helper function for the most common format_create/defaults/expandnicm
pattern.
2017-02-08window_copy_pagedown shouldn't reset the mode anymore, instead let thenicm
caller do it so it can free the marks. Problem reported by attila at stalphonsos dot com.
2017-02-03Add a window or pane id "tag" to each format tree and use it to separatenicm
jobs, this means that if the same job is used for different windows or panes (for example in pane-border-format), it will be run separately for each pane.
2017-01-07Add support for the OSC 4 and OSC 104 palette setting escape sequences,nicm
from S Gilles.
2017-01-06Incremental search in copy mode (on for emacs keys by default) - muchnicm
the same as normal searching but updates the cursor position and marked search terms as you type. C-r and C-s in the prompt repeat the search, once finished searching (with Enter), N and n work as before.
2017-01-05Highlight all occurrences of search string after searching in copy mode.nicm
2016-11-24Make the selection able to exist independent of the cursor position, sonicm
that it is not affected by scrolling. If MouseDragEnd1Pane is bound to the new "stop-selection" command: bind -Tcopy-mode MouseDragEnd1Pane stop-selection A selection made with the mouse will stay as it is after button 1 is released. (It also works bound to a key.) From Artem Fokin.
2016-11-15Add copy-pipe-and-cancel, from Artem Fokin.nicm
2016-10-13Add support for BCE (background colour erase). This makes various escapenicm
sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank cells using the current background colour rather than the default colour. On modern systems BCE doesn't really have many benefits, but most other terminals now support it, some (lazy) applications rely on it, and it is not hard to include now that we have pane background colours anyway. Mostly written by Sean Haugh.
2016-10-12Unused variable and missing time.h.nicm
2016-10-11Add static in window-*.c and move some internal functions out of tmux.h.nicm
2016-10-11Support double and triple clicks (they are cumulative, so double isnicm
fired then triple), and use for select-word and select-line in copy mode. Inspired by a different solution from Omar Sandoval.
2016-10-11Fundamental change to how copy mode key bindings work:nicm
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 Becomes: bind -Tcopy-mode C-Up send -X scroll-up bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up 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. The plan is to get rid of mode keys entirely, so more to come eventually.
2016-10-09Use xsnprintf not snprintf for the prompt in window_copy_write_linenicm
because we don't care if it is truncated to the screen width, we don't want it to be fatal.
2016-10-03Remove some dead code in cmd-move-window.c and make a load of localnicm
functions static.
2016-09-12Allow repeat count to be specified in mode key tables with bind-key -R,nicm
and set the default repeat count to 5 for WheelUp and WheelDown in copy-mode.
2016-05-23Remove unused variable, from Ben Boeckel.nicm
2016-05-03Some tidying of copy mode search functions, based on a diff from Lukasznicm
Piatkowski (initial changes to help some more to come).
2016-05-01Use the same code for half page scrolling as full, from Michal Mazurek.nicm
2016-04-27Add next/previous paragraph, from J Raynor.nicm
2016-03-18Make scrolling behaviour more sensible and maintain cursor position, asnicm
if the same had been done line-by-line. From Michal Mazurek.
2016-03-01When a mouse drag is finished, fire a MouseUp key press, instead ofnicm
doing the drag end in code. From Stephen Coakley.
2016-02-05Do not wrap cursor at start or end of history, from Michal Mazurek.nicm
2016-01-19I no longer use my SourceForge address so replace it.nicm
2015-12-11Add cmdq as an argument to format_create and add a format for thenicm
command name (will also be used for more later).
2015-12-08Remove format_create_flags and just pass flags to format_create.nicm
2015-11-18Use __unused rather than rolling our own.nicm
2015-11-13Long overdue change to the way we store cells in the grid: now, insteadnicm
of storing a full grid_cell with UTF-8 data and everything, store a new type grid_cell_entry. This can either be the cell itself (for ASCII cells), or an offset into an extended array (per line) for UTF-8 data. This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the majority for most users) without the complexity of the shadow array we had before. Grid memory without any UTF-8 is about half. The disadvantage that cells can no longer be modified in place and need to be copied out of the grid and back but it turned out to be lot less complicated than I expected.
2015-11-12Nuke the utf8 and status-utf8 options and make tmux only a UTF-8nicm
terminal. We still support non-UTF-8 terminals outside tmux, but inside it is always UTF-8 (as when the utf8 and status-utf8 options were on).