aboutsummaryrefslogtreecommitdiff
path: root/users/miles2go/babl_vi.c
diff options
context:
space:
mode:
authormilestogo <milestogo@users.noreply.github.com>2020-05-08 23:15:26 -0700
committerGitHub <noreply@github.com>2020-05-08 23:15:26 -0700
commit803610a284ac886eaeb319b4a8d25ffbd2861152 (patch)
tree46c074727b4015bdd345d762e78f89144498ce24 /users/miles2go/babl_vi.c
parentcd0edbb1fba91df97be233e30c145f352eda31c0 (diff)
downloadqmk_firmware-803610a284ac886eaeb319b4a8d25ffbd2861152.tar.gz
qmk_firmware-803610a284ac886eaeb319b4a8d25ffbd2861152.zip
[Keymap] initial user directory for milestogo + babblepaste (#7698)
* initial user directory * fix missing endif in vi mode * fix includes per drashna and a few typos. I have not tested the userspace keymap, it is just there to help keep the user space and keymap in sync * move babblepaste docs to md format * clean up block quotes * TIL clang-format - miles2go userspace
Diffstat (limited to 'users/miles2go/babl_vi.c')
-rw-r--r--users/miles2go/babl_vi.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/users/miles2go/babl_vi.c b/users/miles2go/babl_vi.c
new file mode 100644
index 000000000..7eebc0b20
--- /dev/null
+++ b/users/miles2go/babl_vi.c
@@ -0,0 +1,76 @@
1/*
2Vi is stateful, so you have to track the modes yourself. Otherwise motion is awful (bell, bell, bell)
3
4*/
5
6#include QMK_KEYBOARD_H
7
8#ifdef USE_BABBLEPASTE
9# include "babblePaste.h"
10
11# ifdef BABL_VI
12
13bool babblePaste_vi(uint16_t keycode) {
14# ifdef BABL_MOVE
15 BABLM(BABL_GO_LEFT_1C, "h");
16 BABLM(BABL_GO_RIGHT_1C, "l");
17 BABLM(BABL_GO_LEFT_WORD, "b");
18 BABLM(BABL_GO_RIGHT_WORD, "w");
19 BABLM(BABL_GO_START_LINE, IMSFT(X_6));
20 BABLM(BABL_GO_END_LINE, IMSFT(X_4));
21 BABLM(BABL_GO_START_DOC, "gg");
22 BABLM(BABL_GO_END_DOC, IMSFT(X_G));
23 BABLM(BABL_GO_NEXT_LINE, "j");
24 BABLM(BABL_GO_PREV_LINE, "k");
25 BABLM(BABL_GO_PARA_START, IMSFT(X_LBRACKET));
26 BABLM(BABL_GO_PARA_END, IMSFT(X_RBRACKET));
27 BABLM(BABL_PGDN, SS_LCTRL("f"));
28 BABLM(BABL_PGUP, SS_LCTRL("b"));
29 BABLM(BABL_DEL_RIGHT_1C, "x");
30 BABLM(BABL_DEL_LEFT_WORD, "dge");
31 BABLM(BABL_DEL_RIGHT_WORD, "dw");
32 BABLM(BABL_DEL_TO_LINE_END, "d" IMSFT(X_4));
33 BABLM(BABL_DEL_TO_LINE_START, "d" IMSFT(X_6));
34 BABLM(BABL_MODE, "Vi ");
35# endif
36# ifdef BABL_OSKEYS
37 BABLM(BABL_UNDO, "h");
38 BABLM(BABL_REDO, SS_LCTRL("r"));
39 BABLM(BABL_CUT, "x");
40 BABLM(BABL_COPY, "y");
41 BABLM(BABL_PASTE, "p");
42 BABLM(BABL_SELECT_ALL, IMSFT(X_SCOLON) SS_TAP(X_5) "y"); // wrong but helpful?
43 BABLM(BABL_FIND, SS_TAP(X_SLASH));
44 BABLM(BABL_FIND_NEXT, "n");
45 BABLM(BABL_FIND_PREV, IMSFT(X_N));
46 BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5)));
47 BABLM(BABL_RUNAPP, ":split"); // requires VIM, is vsplit better?
48 BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_DOWN)); // Or Right?
49 BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_UP)); // or Left?
50 BABLM(BABL_CLOSE_APP, IMCTL(X_SCOLON) "q");
51 BABLM(BABL_HELP, SS_LSFT(SS_TAP(X_SCOLON)) "h"); // start search in help
52 // BABLM( BABL_LOCK, () ); Perhaps VI is not an OS?
53 // BABLM( BABL_SCREENCAPTURE, () ); // capture a buffer?
54# endif
55
56# ifdef BABL_BROWSER
57/* what _is_ the VI browser now that vimpirator is dead?*/
58# endif
59
60# ifdef BABL_APP
61 BABLM(BABL_APP_SAVE, SS_TAP(X_ESCAPE) ":w");
62# ifdef BABL_APP_WINDOWSPLITTING
63 BABLM(BABL_SPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":vsplit");
64 BABLM(BABL_UNSPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":hide"); // debatable.
65 BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":vsplit");
66 BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":hide");
67 BABLM(BABL_NEXT_FRAME, SS_LCTRL("w") "w");
68 BABLM(BABL_PREV_FRAME, SS_LCTRL("w") SS_LSFT("w"));
69# endif
70# endif // app
71 // Todo, ring bell, flash light, show user this isn't supported
72 return false;
73}
74
75# endif // VI
76#endif // Babblepaste