[PATCH 0/6] Various vi-ish patches

2013-06-11 Thread Ben Boeckel
This patchset contains various fixes and changes to behave more like vi (commands referenced by their vi keybindings since that's what I'm familiar with). The patches are fairly distinct (though the EOL tracking should go after the looping fix). I have done light spot testing, but will be using the

[PATCH 6/6] Whitespace fixes

2013-06-11 Thread Ben Boeckel
--- mode-key.c| 8 status.c | 2 +- window-copy.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mode-key.c b/mode-key.c index 2d6d468..1ed6d40 100644 --- a/mode-key.c +++ b/mode-key.c @@ -231,8 +231,8 @@ const struct mode_key_entry mode_key_vi_choice[] =

[PATCH 3/6] Don't loop in copy mode on first and last lines

2013-06-11 Thread Ben Boeckel
Because we first move to the first column, then down, on the last line, the first column is to "the right" of the last column. To fix this, the current line is checked and if it changed, *then* the start of the line motion is used. Similar logic is done for the first line. --- window-copy.c | 17 +

[PATCH 1/6] Implement 's', 'S', and 'C' vi keybindings

2013-06-11 Thread Ben Boeckel
--- mode-key.c | 13 ++--- status.c | 3 +++ tmux.h | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mode-key.c b/mode-key.c index 94115eb..2d6d468 100644 --- a/mode-key.c +++ b/mode-key.c @@ -35,9 +35,7 @@ * * vi command mode is handled by having a mode

[PATCH 2/6] Act like vi with word motions in the statusline

2013-06-11 Thread Ben Boeckel
Vi uses the end-of-word character as the cursor location after an 'e' or 'E' motion. Once the motion is complete, we back up one character from where emacs ends up (one-past-the-word). --- status.c | 5 + window-copy.c | 6 ++ 2 files changed, 11 insertions(+) diff --git a/status.c b

[PATCH 4/6] Implement EOL tracking

2013-06-11 Thread Ben Boeckel
When the EOL command is used, vim tracks that the EOL is the cursor position, not the cursor that the EOL happened to occur on for the line where the motion was given. To keep track of this, an EOL flag is added to indicate this state. Most motions will clear this state, but a few such as block mod

[PATCH 5/6] Move to the indentation of a line on scrolling

2013-06-11 Thread Ben Boeckel
When scrolling by page or half-page, vim moves to the first non-whitespace character of a line. Emulate the behavior in copy mode. --- window-copy.c | 4 1 file changed, 4 insertions(+) diff --git a/window-copy.c b/window-copy.c index ee6a2e8..17808b8 100644 --- a/window-copy.c +++ b/window-

[PATCH] add keys for first/last item in a choose list

2013-06-11 Thread Tor Perkins
Hello and thanks for tmux! As a recovering screen user, I'm used to hitting or in the choose-window command so that I can warp the selected row to the first or last item in the list. For completeness, the patch adds some other key mappings in both vi and emacs mode that I think make sense. - T