File: m_vi.fte

package info (click to toggle)
efte 1.1-6
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,904 kB
  • sloc: cpp: 43,587; ansic: 1,228; makefile: 271; objc: 92; sh: 40
file content (105 lines) | stat: -rw-r--r-- 3,630 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# does not work at this time. needs fixing
#
# just an experiment, do not take this seriously :)
# 

mode VIMODE: MODEOPTS {                               # VI mode
    key [i] { ChangeKeys 'VI_INS' }
    key [I] { MoveLineStart; ChangeKeys 'VI_INS' }
    key [o] { LineAdd; MoveDown; MoveLineStart; ChangeKeys 'VI_INS' }
    key [O] { LineInsert; MoveLineStart; ChangeKeys 'VI_INS' }
    key [a] { MoveRight; ChangeKeys 'VI_INS' }
    key [A] { MoveLineEnd; ChangeKeys 'VI_INS' }
    key [r] { ToggleInsert; InsertChar; ToggleInsert }
    key [R] { ChangeKeys 'VI_OVER'; ToggleInsert }
    key [d] { ChangeKeys 'VI_DELETE' }
    key [D] { KillToLineEnd }
    key [y] { ChangeKeys 'VI_YANK' }
    key [x] { KillChar }
    key [X] { KillCharPrev }
    key [h] { MoveLeft }
    key [j] { MoveDown }
    key [k] { MoveUp }
    key [l] { MoveRight }
    key [$] { MoveLineEnd }
    key [0] { MoveLineStart }
    key [^] { MoveFirstNonWhite }
    key [:] { MainMenu }
    key [/] { SearchRx }
    key [n] { SearchAgain }
    key [P] { BlockPaste }
    key [p] { MoveRight; BlockPaste }
    key [B] { MoveWordPrev }
    key [b] { MoveWordPrev }
    key [w] { MoveWordNext }
    key [W] { MoveWordNext }
    key [c] { ChangeKeys 'VI_CHANGE' }
    key [C+N] { MoveDown }
    key [C+P] { MoveUp }
    key [C+B] { MovePageUp }
    key [%]   { MatchBracket }
    key [u]   { Undo }
    key [U]   { Redo }

    key [BackSp] { MoveLeft }
    key [Space] { MoveRight }

    key [G-Enter] { MoveDown; MoveLineStart }
    key [-] { MoveUp; MoveLineStart }
    key [+] { MoveDown; MoveLineStart }
    key [J] { LineJoin }
    key [C] { KillToLineEnd; ChangeKeys 'VI_INS' }

    key       [G-Left]    { MoveLeft }
    key     [C+G-Left]    { MoveWordPrev }
    key       [G-Right]   { MoveRight }
    key     [C+G-Right]   { MoveWordNext }
    key       [G-Up]      { MoveUp }
    key       [G-Down]    { MoveDown }
    key       [G-Home]    { MoveLineStart }
    key     [C+G-Home]    { MovePageStart }
    key       [G-End]     { MoveLineEnd }
    key     [C+G-End]     { MovePageEnd }
    key       [G-PgUp]    { MovePageUp }
    key     [C+G-PgUp]    { MoveFileStart }
    key       [G-PgDn]    { MovePageDown }
    key     [G-C+PgDn]    { MoveFileEnd }
}

mode VI_INS: MODEOPTS {
    key [Esc] { ChangeKeys 'VIMODE'; MoveLeft }
    key [G-Enter] { LineNew }
    key [Space] { InsertSpace }
    key [BackSp] { KillCharPrev }
    key [Tab] { InsertTab }
}

mode VI_OVER: VI_INS {
    Insert      = 0;
    key [Esc] { ChangeKeys 'VIMODE'; MoveLeft; ToggleInsert }
}

mode VI_DELETE: MODEOPTS {
    key [Esc] { ChangeKeys 'VIMODE' }
    key [d]   { BlockSelectLine; BlockCut; ChangeKeys 'VIMODE' }
    key [$]   { BlockUnmark; BlockMarkStream; MoveLineEnd; BlockMarkStream; BlockCut; ChangeKeys 'VIMODE' }
    key [0]   { BlockUnmark; BlockMarkStream; MoveLineStart; BlockMarkStream; BlockCut; ChangeKeys 'VIMODE' }
    key [w]   { KillWord; ChangeKeys 'VIMODE' }
}

mode VI_CHANGE: MODEOPTS {
    key [Esc] { ChangeKeys 'VIMODE' }
    key [w] { KillWord; ChangeKeys 'VI_INS' }
    key [$] { KillToLineEnd; ChangeKeys "VI_INS" }
    key [c] { MoveLineStart; KillToLineEnd; ChangeKeys "VI_INS" }
}

mode VI_YANK: MODEOPTS {
    key [Esc] { ChangeKeys 'VIMODE' }
    key [d]   { BlockSelectLine; BlockCopy; ChangeKeys 'VIMODE' }
    key [$]   { BlockUnmark; BlockMarkStream; MoveLineEnd; BlockMarkStream; BlockCopy; MovePrevPos; ChangeKeys 'VIMODE' }
    key [0]   { BlockUnmark; BlockMarkStream; MoveLineStart; BlockMarkStream; BlockCopy; MovePrevPos; ChangeKeys 'VIMODE' }
    key [w]   { KillWord; ChangeKeys 'VIMODE' }
}

oinclude 'mym_vi.fte';