- add vi keybindings to search

- allow for ctrl-h as well

discussion with and ok oga@
This commit is contained in:
okan 2008-04-15 18:33:13 +00:00
parent fe80d40063
commit 4bbb472a25
2 changed files with 26 additions and 5 deletions

12
cwm.1
View File

@ -15,7 +15,7 @@
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.\" The following requests are required for all man pages. .\" The following requests are required for all man pages.
.Dd $Mdocdate: April 7 2008 $ .Dd $Mdocdate: April 8 2008 $
.Dt CWM 1 .Dt CWM 1
.Os .Os
.Sh NAME .Sh NAME
@ -177,17 +177,19 @@ The window is hidden.
.Pp .Pp
The following keybindings may be used to navigate the result list: The following keybindings may be used to navigate the result list:
.Pp .Pp
.Bl -tag -width "[Down] or C-sXXX" -offset indent -compact .Bl -tag -width "[Down] or C-s or M-j" -offset indent -compact
.It Ic [Down] No or Ic C-s .It Ic [Down], C-s No or Ic M-j
Select the next window in the list. Select the next window in the list.
.It Ic [Up] No or Ic C-r .It Ic [Up], C-r No or Ic M-k
Select the previous window in the list. Select the previous window in the list.
.It Ic [Backspace] No or Ic C-h
Backspace.
.It Ic C-u .It Ic C-u
Clear the input. Clear the input.
.It Ic [Enter] .It Ic [Enter]
Focus the selected window. Focus the selected window.
.It Ic [Esc] .It Ic [Esc]
Quit. Cancel.
.It Ic C-a .It Ic C-a
Whenever there are no matching windows, list every window. Whenever there are no matching windows, list every window.
.El .El

19
input.c
View File

@ -70,6 +70,10 @@ input_keycodetrans(KeyCode kc, u_int state,
case XK_U: case XK_U:
*ctl = CTL_WIPE; *ctl = CTL_WIPE;
break; break;
case XK_h:
case XK_H:
*ctl = CTL_ERASEONE;
break;
case XK_a: case XK_a:
case XK_A: case XK_A:
*ctl = CTL_ALL; *ctl = CTL_ALL;
@ -77,6 +81,21 @@ input_keycodetrans(KeyCode kc, u_int state,
} }
} }
if (*ctl == CTL_NONE && (state & Mod1Mask)) {
switch (ks) {
case XK_j:
case XK_J:
/* Vi "down" */
*ctl = CTL_DOWN;
break;
case XK_k:
case XK_K:
/* Vi "up" */
*ctl = CTL_UP;
break;
}
}
if (*ctl != CTL_NONE) if (*ctl != CTL_NONE)
return (0); return (0);