Skip to content

Commit aad5e49

Browse files
committed
Added common CTRL+ALT, CTRL+SHIFT, CTRL+ALT+SHIFT key sequences
1 parent 162686a commit aad5e49

File tree

7 files changed

+399
-30
lines changed

7 files changed

+399
-30
lines changed

Diff for: man/man1/fzf.1

+60-2
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,8 @@ e.g.
12311231
.br
12321232
\fIalt\-end\fR
12331233
.br
1234+
\fIalt\-backspace\fR (\fIalt\-bspace\fR \fIalt\-bs\fR)
1235+
.br
12341236
\fIalt\-delete\fR
12351237
.br
12361238
\fIalt\-page\-up\fR
@@ -1241,8 +1243,6 @@ e.g.
12411243
.br
12421244
\fIalt\-space\fR
12431245
.br
1244-
\fIalt\-backspace\fR (\fIalt\-bspace\fR \fIalt\-bs\fR)
1245-
.br
12461246
\fItab\fR
12471247
.br
12481248
\fIshift\-tab\fR (\fIbtab\fR)
@@ -1281,6 +1281,8 @@ e.g.
12811281
.br
12821282
\fIctrl\-end\fR
12831283
.br
1284+
\fIctrl\-backspace\fR (\fIctrl\-bspace\fR \fIctrl\-bs\fR)
1285+
.br
12841286
\fIctrl\-delete\fR
12851287
.br
12861288
\fIctrl\-page\-up\fR
@@ -1323,6 +1325,62 @@ e.g.
13231325
.br
13241326
\fIalt\-shift\-page\-down\fR
13251327
.br
1328+
\fIctrl\-alt\-up\fR
1329+
.br
1330+
\fIctrl\-alt\-down\fR
1331+
.br
1332+
\fIctrl\-alt\-left\fR
1333+
.br
1334+
\fIctrl\-alt\-right\fR
1335+
.br
1336+
\fIctrl\-alt\-home\fR
1337+
.br
1338+
\fIctrl\-alt\-end\fR
1339+
.br
1340+
\fIctrl\-alt\-backspace\fR (\fIctrl\-alt\-bspace\fR \fIctrl\-alt\-bs\fR)
1341+
.br
1342+
\fIctrl\-alt\-delete\fR
1343+
.br
1344+
\fIctrl\-alt\-page\-up\fR
1345+
.br
1346+
\fIctrl\-alt\-page\-down\fR
1347+
.br
1348+
\fIctrl\-shift\-up\fR
1349+
.br
1350+
\fIctrl\-shift\-down\fR
1351+
.br
1352+
\fIctrl\-shift\-left\fR
1353+
.br
1354+
\fIctrl\-shift\-right\fR
1355+
.br
1356+
\fIctrl\-shift\-home\fR
1357+
.br
1358+
\fIctrl\-shift\-end\fR
1359+
.br
1360+
\fIctrl\-shift\-delete\fR
1361+
.br
1362+
\fIctrl\-shift\-page\-up\fR
1363+
.br
1364+
\fIctrl\-shift\-page\-down\fR
1365+
.br
1366+
\fIctrl\-alt\-shift\-up\fR
1367+
.br
1368+
\fIctrl\-alt\-shift\-down\fR
1369+
.br
1370+
\fIctrl\-alt\-shift\-left\fR
1371+
.br
1372+
\fIctrl\-alt\-shift\-right\fR
1373+
.br
1374+
\fIctrl\-alt\-shift\-home\fR
1375+
.br
1376+
\fIctrl\-alt\-shift\-end\fR
1377+
.br
1378+
\fIctrl\-alt\-shift\-delete\fR
1379+
.br
1380+
\fIctrl\-alt\-shift\-page\-up\fR
1381+
.br
1382+
\fIctrl\-alt\-shift\-page\-down\fR
1383+
.br
13261384
\fIleft\-click\fR
13271385
.br
13281386
\fIright\-click\fR

Diff for: src/options.go

+58
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,10 @@ func parseKeyChordsImpl(str string, message string) (map[tui.Event]string, error
845845
chords[tui.AltKey(' ')] = key
846846
case "alt-bs", "alt-bspace", "alt-backspace":
847847
add(tui.AltBackspace)
848+
case "ctrl-bs", "ctrl-bspace", "ctrl-backspace":
849+
add(tui.CtrlBackspace)
850+
case "ctrl-alt-bs", "ctrl-alt-bspace", "ctrl-alt-backspace":
851+
add(tui.CtrlAltBackspace)
848852
case "alt-up":
849853
add(tui.AltUp)
850854
case "alt-down":
@@ -917,6 +921,60 @@ func parseKeyChordsImpl(str string, message string) (map[tui.Event]string, error
917921
add(tui.CtrlPageUp)
918922
case "ctrl-page-down":
919923
add(tui.CtrlPageDown)
924+
case "ctrl-alt-up", "alt-ctrl-up":
925+
add(tui.CtrlAltUp)
926+
case "ctrl-alt-down", "alt-ctrl-down":
927+
add(tui.CtrlAltDown)
928+
case "ctrl-alt-right", "alt-ctrl-right":
929+
add(tui.CtrlAltRight)
930+
case "ctrl-alt-left", "alt-ctrl-left":
931+
add(tui.CtrlAltLeft)
932+
case "ctrl-alt-home", "alt-ctrl-home":
933+
add(tui.CtrlAltHome)
934+
case "ctrl-alt-end", "alt-ctrl-end":
935+
add(tui.CtrlAltEnd)
936+
case "ctrl-alt-delete", "alt-ctrl-delete":
937+
add(tui.CtrlAltDelete)
938+
case "ctrl-alt-page-up", "alt-ctrl-page-up":
939+
add(tui.CtrlAltPageUp)
940+
case "ctrl-alt-page-down", "alt-ctrl-page-down":
941+
add(tui.CtrlAltPageDown)
942+
case "ctrl-shift-up", "shift-ctrl-up":
943+
add(tui.CtrlShiftUp)
944+
case "ctrl-shift-down", "shift-ctrl-down":
945+
add(tui.CtrlShiftDown)
946+
case "ctrl-shift-right", "shift-ctrl-right":
947+
add(tui.CtrlShiftRight)
948+
case "ctrl-shift-left", "shift-ctrl-left":
949+
add(tui.CtrlShiftLeft)
950+
case "ctrl-shift-home", "shift-ctrl-home":
951+
add(tui.CtrlShiftHome)
952+
case "ctrl-shift-end", "shift-ctrl-end":
953+
add(tui.CtrlShiftEnd)
954+
case "ctrl-shift-delete", "shift-ctrl-delete":
955+
add(tui.CtrlShiftDelete)
956+
case "ctrl-shift-page-up", "shift-ctrl-page-up":
957+
add(tui.CtrlShiftPageUp)
958+
case "ctrl-shift-page-down", "shift-ctrl-page-down":
959+
add(tui.CtrlShiftPageDown)
960+
case "ctrl-alt-shift-up":
961+
add(tui.CtrlAltShiftUp)
962+
case "ctrl-alt-shift-down":
963+
add(tui.CtrlAltShiftDown)
964+
case "ctrl-alt-shift-right":
965+
add(tui.CtrlAltShiftRight)
966+
case "ctrl-alt-shift-left":
967+
add(tui.CtrlAltShiftLeft)
968+
case "ctrl-alt-shift-home":
969+
add(tui.CtrlAltShiftHome)
970+
case "ctrl-alt-shift-end":
971+
add(tui.CtrlAltShiftEnd)
972+
case "ctrl-alt-shift-delete":
973+
add(tui.CtrlAltShiftDelete)
974+
case "ctrl-alt-shift-page-up":
975+
add(tui.CtrlAltShiftPageUp)
976+
case "ctrl-alt-shift-page-down":
977+
add(tui.CtrlAltShiftPageDown)
920978
case "shift-up":
921979
add(tui.ShiftUp)
922980
case "shift-down":

Diff for: src/tui/eventtype_string.go

+56-28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: src/tui/light.go

+75
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,12 @@ func (r *LightRenderer) escSequence(sz *int) Event {
468468
return Event{AltShiftDelete, 0, nil}
469469
case '5':
470470
return Event{CtrlDelete, 0, nil}
471+
case '6':
472+
return Event{CtrlShiftDelete, 0, nil}
473+
case '7':
474+
return Event{CtrlAltDelete, 0, nil}
475+
case '8':
476+
return Event{CtrlAltShiftDelete, 0, nil}
471477
}
472478
}
473479
return Event{Invalid, 0, nil}
@@ -491,6 +497,12 @@ func (r *LightRenderer) escSequence(sz *int) Event {
491497
return Event{AltShiftPageUp, 0, nil}
492498
case '5':
493499
return Event{CtrlPageUp, 0, nil}
500+
case '6':
501+
return Event{CtrlShiftPageUp, 0, nil}
502+
case '7':
503+
return Event{CtrlAltPageUp, 0, nil}
504+
case '8':
505+
return Event{CtrlAltShiftPageUp, 0, nil}
494506
}
495507
}
496508
return Event{Invalid, 0, nil}
@@ -512,6 +524,12 @@ func (r *LightRenderer) escSequence(sz *int) Event {
512524
return Event{AltShiftPageDown, 0, nil}
513525
case '5':
514526
return Event{CtrlPageDown, 0, nil}
527+
case '6':
528+
return Event{CtrlShiftPageDown, 0, nil}
529+
case '7':
530+
return Event{CtrlAltPageDown, 0, nil}
531+
case '8':
532+
return Event{CtrlAltShiftPageDown, 0, nil}
515533
}
516534
}
517535
return Event{Invalid, 0, nil}
@@ -572,9 +590,21 @@ func (r *LightRenderer) escSequence(sz *int) Event {
572590
*sz = 7
573591
char = r.buffer[6]
574592
}
593+
ctrlShift := ctrl && shift
594+
ctrlAlt := ctrl && alt
575595
altShift := alt && shift
596+
ctrlAltShift := ctrl && alt && shift
576597
switch char {
577598
case 'A':
599+
if ctrlAltShift {
600+
return Event{CtrlAltShiftUp, 0, nil}
601+
}
602+
if ctrlAlt {
603+
return Event{CtrlAltUp, 0, nil}
604+
}
605+
if ctrlShift {
606+
return Event{CtrlShiftUp, 0, nil}
607+
}
578608
if altShift {
579609
return Event{AltShiftUp, 0, nil}
580610
}
@@ -588,6 +618,15 @@ func (r *LightRenderer) escSequence(sz *int) Event {
588618
return Event{ShiftUp, 0, nil}
589619
}
590620
case 'B':
621+
if ctrlAltShift {
622+
return Event{CtrlAltShiftDown, 0, nil}
623+
}
624+
if ctrlAlt {
625+
return Event{CtrlAltDown, 0, nil}
626+
}
627+
if ctrlShift {
628+
return Event{CtrlShiftDown, 0, nil}
629+
}
591630
if altShift {
592631
return Event{AltShiftDown, 0, nil}
593632
}
@@ -601,6 +640,15 @@ func (r *LightRenderer) escSequence(sz *int) Event {
601640
return Event{ShiftDown, 0, nil}
602641
}
603642
case 'C':
643+
if ctrlAltShift {
644+
return Event{CtrlAltShiftRight, 0, nil}
645+
}
646+
if ctrlAlt {
647+
return Event{CtrlAltRight, 0, nil}
648+
}
649+
if ctrlShift {
650+
return Event{CtrlShiftRight, 0, nil}
651+
}
604652
if altShift {
605653
return Event{AltShiftRight, 0, nil}
606654
}
@@ -614,6 +662,15 @@ func (r *LightRenderer) escSequence(sz *int) Event {
614662
return Event{AltRight, 0, nil}
615663
}
616664
case 'D':
665+
if ctrlAltShift {
666+
return Event{CtrlAltShiftLeft, 0, nil}
667+
}
668+
if ctrlAlt {
669+
return Event{CtrlAltLeft, 0, nil}
670+
}
671+
if ctrlShift {
672+
return Event{CtrlShiftLeft, 0, nil}
673+
}
617674
if altShift {
618675
return Event{AltShiftLeft, 0, nil}
619676
}
@@ -627,6 +684,15 @@ func (r *LightRenderer) escSequence(sz *int) Event {
627684
return Event{ShiftLeft, 0, nil}
628685
}
629686
case 'H':
687+
if ctrlAltShift {
688+
return Event{CtrlAltShiftHome, 0, nil}
689+
}
690+
if ctrlAlt {
691+
return Event{CtrlAltHome, 0, nil}
692+
}
693+
if ctrlShift {
694+
return Event{CtrlShiftHome, 0, nil}
695+
}
630696
if altShift {
631697
return Event{AltShiftHome, 0, nil}
632698
}
@@ -640,6 +706,15 @@ func (r *LightRenderer) escSequence(sz *int) Event {
640706
return Event{ShiftHome, 0, nil}
641707
}
642708
case 'F':
709+
if ctrlAltShift {
710+
return Event{CtrlAltShiftEnd, 0, nil}
711+
}
712+
if ctrlAlt {
713+
return Event{CtrlAltEnd, 0, nil}
714+
}
715+
if ctrlShift {
716+
return Event{CtrlShiftEnd, 0, nil}
717+
}
643718
if altShift {
644719
return Event{AltShiftEnd, 0, nil}
645720
}

0 commit comments

Comments
 (0)