• You are not logged in.

    A Programmers Variant Prototype - Feedback Welcome

    • Started by Akiva
    • 6 Replies:
    • Reputation: 2
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    https://docs.google.com/spreadsheets/d/ … =507511935

    A few notes on this layout: [OUTDATED -- See most recent posts for most current layouts]

    1. Eccentric Movement Keys placed to give me quasi-vim-in-spreadsheets support.

    2. Bigrams and Trigrams for the C++ language syntax prioritized. Python secondary consideration. SQL third consideration. HTML fourth Consideration.

    3. French Style Keyboard Layout. Will be slightly different for English variant layouts.

    4. Languages still fully supported, but delegated completely to Shift+Altgr level.

    5. Conforms partially to my custom vim layout, so I can have quasi-vim support for spreadsheets.

    6. Left Handed Keypad idea.

    7. Works best with a comfortable right hand AltGr key on the thumb.

    If and when I created this, I will be making a custom:

    • .vimrc

    • .bashrc (for vi mode)

    • .zshrc (Also for vi mode)

    Also, because I do not use the language support, I will be making an APL variant, as I plan to pick up the GnuApl programming language.

    --------------------------------------------------------------------------------------------------------------------

    Normal
    1. Removed the Grave (`), given how generally useless that key is. Replaced it with a +, mainly for the "i++" trigram and basic equations. You can still input it as a deadkey on the 4th level.

    2. (Magic) Numbers have been removed.

    3. ! is in the familiar spot

    4. { is situated on the 2, while  } is situated on the 6. } is usually added automatically by many ides, which is why its on that difficult key.

    5. < and " are paired due to this common code structure:


      out << "foo" << "bar";
    6. " situated to the 4 due to common usage

    7. / situated on the 7, for the common  /* and */ bigrams.

    8. () situated on  90 for familiarity, and (); and (*) trigrams.

    9. \- and = left for familiarity.

    10. _ replaces / due to frequency of snake case for m_MemberVariables;


    --------------------------------------------------------------------------------------------------------------------

    AltGr

    This is two things:

       1. Vim Movement Controls
       2. Full Left Hand Keypad.

    Vim
    1. I use a custom vim layout that does a more wads based movement. Those are arrow keys which will be very useful in spreadsheets and normal text editors that lack vim support.

    2. Return, situated on colemak o.

    3. Replace, situated on colemak :

    4. Control+Z is awkward. Altgr+Z is much more comfortable.

    5. Control+F is situated on the old "/" position, which is used in vim for searching.

    Keypad
    1. +-.*/= are given positions around the keypad for a basic calculator.

    2. * is on the x, to represent times.

    3. #$ are moved to Qwerty n(umber sign) and m(oney sign)

    4. %^&*()-=[] are given their old spots for familiarity and usefulness with numbers

    --------------------------------------------------------------------------------------------------------------------

    Shift

    ¡ replaces the ! on the shift. And Capslock is turned into a Delete (Instead of a Backspace) Everything else is the same.

    --------------------------------------------------------------------------------------------------------------------

    Shift + Altgr
    1. Easy access PgUp and PgDn keys.

    2. Capslock turned into an escape

    3. º¹²³ on the new keypad position for 0123 for congruence

    4. All alternative currency situated just above, with the Euro situated on the Qwerty E

    5. ðÐđ situated on the Colemak D row

    6. ħĦ situated on the Colemak H row

    7. łŁ situated on the Colemak L row

    8. øØ situated on the Colemak o row

    9. ß situated on the Colemak B position

    10. × situated on the Colemak x position

    11. ÷ sitated on the Colemak c position

    12. þÞ situated below the 8 row, where they used to be

    13. All pre-accented Characters have been replaced by deadkeys

    14. Deadkeys are all on the top row, corresponding to their characters when possible, namely

    • ~ã on the Tilde Position for familiarity

    • ȧ˙ on the qwerty 1 to symbolize 1 dot

    • ä¨ on the qwerty 2 to symbolize 2 dot

    • â^    on the Carat Position for familiarity               

    • å°    on the qwerty 0, because they are both circles               

    • ā¯    on the qwerty - because they are both lines

    Last edited by Akiva (23-Jun-2016 05:21:41)
    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,361

    Hmmm, quite a lot.

    • That language support will only be for dire straits. That is, an English user will be able to type an å if necessary. But how will that user remember where it even is? And anyone needing å regularly will have to put it somewhere more practical. In general, I don't think it'll be easy for most users to find what they need on your layout. But it's probably okay for you! :-) (Oh, btw: ß is not a B-type glyph but a double s. But again, it'll work for you I'm sure.)
    • Left-hand NumPad has issues I think. Firstly, regular NumPad users have their motor memory in the right hand and I don't think it'll transfer well since you'll have to mirror the fingerings. Secondly, the common 1 is on a weak finger which will hurt if you type numbers much. Furthermore, you're missing the fat/double zero key which is very useful for entering large numbers (using two fingers for the n-grams in, e.g., 1 000 000 000). But of course, you wouldn't want to be holding down AltGr and typing numbers with the same hand either...

    My solutions have been revolving around modularity, so I didn't mix up navigation keys and symbols and I've kept different functions more separate. Your solution will probably fit you better, but others will likely find it too confusing?

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 2
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    Feedback from the famous DreymaR -- Glad you took the time. Thanks. Given me some good things to think about.

    (Oh, btw: ß is not a B-type glyph but a double s. But again, it'll work for you I'm sure.)

    Ha ha; yeah. I am way more visually oriented, which is why I did it.
    I am curious; are º¹²³ª «»‹› used in language? If not, I don't see why they are particularly useful unicode...

    I was thinking of taking out the small upper letters and seeing if I could implement a deadkey where it would replace say "a" with "ª".

    Left-hand NumPad has issues I think. Firstly, regular NumPad users have their motor memory in the right hand and I don't think it'll transfer well since you'll have to mirror the fingerings.
    Secondly, the common 1 is on a weak finger which will hurt if you type numbers much.

    Yeah my thoughts exactly. I have some muscle memory of a numpad, and tried out different orderings, say 3210 instead of 1230. Ultimately I found that I did have some familiarity with the keypad ordering, and so I stuck with it. My question for you, do you think you could get used to a keypad like this:

    987
    654
    3210

    Also; I'm thinking of perhaps putting 1 and/or 0 on the first level.

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,361

    Of the superscripts, I've only included ²³ and ªº in my own main layout (and the rest on the acute dead key). The former are useful for writing, e.g., m/s² or m³ quickly, and the latter are the feminine and masculine indicators for latin languages, used in number abbreviations (la 2ª … [seconda], il 3º … [terzo]). The guillemet-type brackets are used in several languages' proper typography, including my own (Norwegian); in our books, a quote would be printed not “thusly” (nor „thusly”) but «thusly» and a citation not ‘thusly’ but ‹thusly›. This practice is, however, quite eroded since everybody use US-influenced computers and word processors. So to you, they may not be that useful. To me, they still are – but I use them rarely. :-(

    The mirrored left-hand NumPad is fascinating, and I've had good results with mirroring in a pinch myself (see my Big Bag on mirrored layouts!). However, I don't think most users would want to use it. But if you're fascinated too then try it out and let us know how it went! The 1-0 bigrams should ideally be resolved for proper number crunching, if that's desirable.

    Last edited by DreymaR (31-May-2016 14:01:14)

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 2
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    Alright so this is version 1; and so far I quite like it. I have enjoyed writing on the net with this thus far, as the vim controls of going left and right are really handy and useful.

    To interpret the picture; if something is dim, this is an unchanged key (some may be wrong, but I don't think so)
    As a failsafe, I preserved shift, so you should be able to get any symbols with fair ease.

    Next up is to get rid of intl, and place an APL variant on it.

    i0PygqR.png


    // Colemak Programmer Variant GPL v2
    // Options:
    //      - Keypad
    //      - Vim movement
    //      - MultiLingual
    // 2016-05-29 Akiva Avraham
    partial alphanumeric_keys
    xkb_symbols "clp-key-vim-intl" {
    
        include "us"
        name[Group1]= "English (Programmer Colemak, Keypad, Vim, International);
    
    key <LSGT> { [Control_L, Control_L, Control_L, Control_L] };
    modifier_map Control { <LSGT> };
    key <SPCE> { [space, space, nobreakspace, nobreakspace] };
    key <TLDE> { [Escape, U007E, Escape, dead_tilde] };
    key <AE01> { [U005B, U0021, U005B, dead_abovedot] };
    key <AE02> { [U005D, U0040, U005D, dead_diaeresis] };
    key <AE03> { [U003D, U0023, U003D, dead_grave] };
    key <AE04> { [U0022, U0024, U0022, dead_acute] };
    key <AE05> { [U003C, U0025, U003C, dead_breve] };
    key <AE06> { [U003E, U005E, U003E, dead_circumflex] };
    key <AE07> { [U002F, U0026, U002F, dead_caron] };
    key <AE08> { [U002A, U002A, U002A, dead_ogenek] };
    key <AE09> { [U0028, U0028, U0028, dead_cedilla] };
    key <AE10> { [U0029, U0029, U0029, dead_abovering] };
    key <AE11> { [U002D, U002D, U002D, dead_macron] };
    key <AE12> { [U002B, U002B, U002B, U00A7] };
    
    key <AD01> { [U0071, U0051, U0039, U00A2] };
    key <AD02> { [U0077, U0057, U0038, U00A3] };
    key <AD03> { [U0066, U0046, U0037, U20AC] };
    key <AD04> { [U0070, U0050, U0025, U00A5] };
    key <AD05> { [U0067, U0047, KP_Begin, KP_Next] };
    key <AD06> { [U006A, U004A, Prior, U0126] };
    key <AD07> { [U006C, U004C, Home, U0141] };
    key <AD08> { [U0075, U0055, Up, U00DE] };
    key <AD09> { [U0079, U0059, End, U0110] };
    key <AD10> { [U003B, U003A, U003B, U00D8] };
    key <AD11> { [U007B, U007B, U007B, U2039] };
    key <AD12> { [U007D, U007D, U007D, U203A] };
    key <BKSL> { [U005C, U007C, U007C, U00BB] };
    
    key <AC01> { [U0061, U0041, U0036, U00AA] };
    key <AC02> { [U0072, U0052, U0035, Insert] };
    key <AC03> { [U0073, U0053, U0034, Home] };
    key <AC04> { [U0074, U0054, U0030, End] };
    key <AC05> { [U0064, U0044, U0024, Escape] };
    key <AC06> { [U0068, U0048, Next, U0127] };
    key <AC07> { [U006E, U004E, Left, U0142] };
    key <AC08> { [U0065, U0045, Down, U00FE] };
    key <AC09> { [U0069, U0049, Right, U0111] };
    key <AC10> { [U006F, U004F, Return, U00F8] };
    key <AC11> { [U0027, U0022, U0027, U00AB] };
    
    key <AB01> { [U007A, U005A, U0033, U00BA] };
    key <AB02> { [U0078, U0058, U0032, U00D7] };
    key <AB03> { [U0063, U0043, U0031, U00F7] };
    key <AB04> { [U0076, U0056, U002E, U0152] };
    key <AB05> { [U0062, U0042, U0023, U00DF] };
    key <AB06> { [U006B, U004B, U0026, U00E6] };
    key <AB07> { [U006D, U004D, U003A, U00C6] };
    key <AB08> { [U002C, U003C, U002C, U0153] };
    key <AB09> { [U002E, U003E, U002E, U00F0] };
    key <AB10> { [U005F, U003F, U005F, U00BF] };
    
    key <CAPS> { [BackSpace, KP_Delete, BackSpace, KP_Delete] };
        include "level3(ralt_switch)"
        include "level3(lalt_switch)"
    };
    Offline
    • 0
    • Reputation: 2
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    My APL variant. As you can see, I adjusted the keypad. That is also reflected on my latest version of the International version.

    u1Omz0S.png


    // Colemak Programmer Variant GPL v2
    // Options:
    //      - Keypad
    //      - Vim movement
    //      - Gnu-Apl
    // 2016-06-13 Akiva Avraham
    
    partial alphanumeric_keys
    xkb_symbols "clp-key-vim-apl" {
    
        include "us"
        name[Group1]= "English (Programmer Colemak, Keypad, Vim, APL)";
    
    
    key <LSGT> { [Control_L, Control_L, Control_L, Control_L] };
    modifier_map Control { <LSGT> };
    key <SPCE> { [space, space, nobreakspace, nobreakspace] };
    key <TLDE> { [Escape, U0060, U007E, U2368] };
    key <AE01> { [U005B, U0021, U003C, U2264] };
    key <AE02> { [U005D, U0040, U003E, U2265] };
    key <AE03> { [U0022, U0023, U2261, U2262] };
    key <AE04> { [U003D, U0024, U003D, U2260] };
    key <AE05> { [U003C, U0025, U2228, U2228] };
    key <AE06> { [U003E, U005E, U2227, U2227] };
    key <AE07> { [U002F, U0026, U00F7, U2378] };
    key <AE08> { [U002A, U22C6, U235F, U2363] };
    key <AE09> { [U0029, U0029, U233D, U233F] };
    key <AE10> { [U0028, U0028, U2349, U2340] };
    key <AE11> { [U002D, U00AF, U2296, U236C] };
    key <AE12> { [U005F, U002B, U2218, U2364] };
    
    key <AD01> { [U0071, U0051, U2308, U2376] };
    key <AD02> { [U0077, U0057, U0039, U2379] };
    key <AD03> { [U0066, U0046, U0038, U22F8] };
    key <AD04> { [U0070, U0050, U0037, U2374] };
    key <AD05> { [U0067, U0047, U002D, U22A4] };
    key <AD06> { [U006A, U004A, Prior, U2336] };
    key <AD07> { [U006C, U004C, Home, U2373] };
    key <AD08> { [U0075, U0055, Up, U2191] };
    key <AD09> { [U0079, U0059, End, U25CB] };
    key <AD10> { [U003B, U003A, U003A, U234E] };
    key <AD11> { [U007B, U2206, U234B, U234B] };
    key <AD12> { [U007D, U2190, U25CA, U00A8] };
    key <BKSL> { [U005C, U007C, U235E, U235E] };
    
    key <AC01> { [U0061, U0041, U230A, U237A] };
    key <AC02> { [U0072, U0052, U0036, U2375] };
    key <AC03> { [U0073, U0053, U0035, U2208] };
    key <AC04> { [U0074, U0054, U0034, U22A3] };
    key <AC05> { [U0064, U0044, U002B, U22A5] };
    key <AC06> { [U0068, U0048, Next, U22A2] };
    key <AC07> { [U006E, U004E, Left, U2190] };
    key <AC08> { [U0065, U0045, Down, U2193] };
    key <AC09> { [U0069, U0049, Right, U2192] };
    key <AC10> { [U006F, U004F, KP¯Enter, U2355] };
    key <AC11> { [U0027, U2207, U2352, U2352] };
    
    key <AB01> { [U007A, U005A, U0033, U00F7] };
    key <AB02> { [U0078, U0058, U0032, U00D7] };
    key <AB03> { [U0063, U0043, U0031, U2282] };
    key <AB04> { [U0076, U0056, U0030, U222A] };
    key <AB05> { [U0062, U0042, U002E, U2283] };
    key <AB06> { [U006B, U004B, U2338, U2229] };
    key <AB07> { [U006D, U004D, U2339, U2347] };
    key <AB08> { [U002C, U236A, U2360, U2357] };
    key <AB09> { [U002E, U00A8, U2395, U2348] };
    key <AB10> { [U003F, U235D, U2337, U2350] };
    
    key <CAPS> { [BackSpace, KP_Delete, BackSpace, KP_Delete] };
        include "level3(ralt_switch)"
        include "level3(lalt_switch)"
    };
    Last edited by Akiva (05-Jun-2016 03:06:20)
    Offline
    • 0
    • Reputation: 2
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    And my .vimrc file. This is for the APL variant.

    set hlsearch
    set is
    
    "    :no[remap]  {lhs} {rhs}         |mapmode-nvo|   *:no*  *:noremap* *:nor*| 
    
    "    :nn[oremap] {lhs} {rhs}         |mapmode-n|     *:nn*  *:nnoremap*    | Normal Mode - Escaped
    "    :vn[oremap] {lhs} {rhs}         |mapmode-v|     *:vn*  *:vnoremap*    | Visual and Select Mode - Selecting Text
    "    :xn[oremap] {lhs} {rhs}         |mapmode-x|     *:xn*  *:xnoremap*    | Visual Mode - Also defined by vnoremap
    "    :ono[remap] {lhs} {rhs}         |mapmode-o|     *:ono* *:onoremap*    | Operating Pending Mode
    "    :ino[remap] {lhs} {rhs}         |mapmode-i|     *:ino* *:inoremap*    | Insert Mode - Typing Text
    "    :snor[emap] {lhs} {rhs}         |mapmode-s|     *:snor* *:snoremap*    | Select Mode 
    
    "    :no[remap]! {lhs} {rhs}         |mapmode-ic|    *:no!* *:noremap!*    |
    "    :ln[oremap] {lhs} {rhs}         |mapmode-l|     *:ln*  *:lnoremap*    |
    "    :cno[remap] {lhs} {rhs}         |mapmode-c|     *:cno* *:cnoremap*    | Command Line Mode
    
    "       This is so you can hold Right Alt to escape insert mode and perform an action. This is mainly for GUI based editors
        "Under Colemak Programmers Variants, altgr + jluyhnei provide directional keys. These remaps will auto escape.
    
        inoremap <Right> <Esc><Right>
        inoremap <Left> <Esc><Left>
        inoremap <Down> <Esc><Down>
        inoremap <Up> <Esc><Up>
    
        nnoremap <Right> <Esc><Right>
        nnoremap <Left> <Esc><Left>
        nnoremap <Down> <Esc><Down>
        nnoremap <Up> <Esc><Up>
    
        inoremap <kEnter> <Esc>o
        inoremap <PageDown> <Esc><PageDown>
        inoremap <PageUp> <Esc><PageUp>
        inoremap <End> <Esc>l
        inoremap <Home> <Esc>y
    
        nnoremap <kEnter> <Esc>o
        nnoremap <PageDown> <Esc><PageDown>
        nnoremap <PageUp> <Esc><PageUp>
        nnoremap <End> <Esc>l
        nnoremap <Home> <Esc>y
    
    "Normal Mode
        "Command Line Mode
        "---------------------------------------------------------------------------"
        "Normal        |Before    |After    |Altgr        |Before    |After"    
        "---------------------------------------------------------------------------"
    
        "Repeat fp - Command Mode---------------------------------------------------"
        nnoremap    ;    :
        nnoremap     :    ;
                        nnoremap    ⍎    ;
        vnoremap    ;    :
        vnoremap     :    ;
                        vnoremap    ⍎    ;
    
        "Visual Block - Visual------------------------------------------------------"
        nnoremap     A    <C-v>
                        nnoremap    ⍺    <C-v>
        nnoremap     a    v
                        nnoremap    ⌊    v
        vnoremap     A    <C-v>
                        vnoremap    ⍺    <C-v>
        vnoremap     a    V
                        vnoremap    ⌊    v
    
        "Backwards Word - Bottom Of Screen------------------------------------------"
        nnoremap     B    ,
                        nnoremap    ⊃    ,
        nnoremap     b    ;
        vnoremap     B    ,
                        vnoremap    ⊃    ,
        vnoremap     b    ;
    
        "Copy Line - Copy-----------------------------------------------------------"
        nnoremap    C    yy
                        nnoremap    ⊂    yy
        nnoremap    c    y
        nnoremap    cc    yy
        vnoremap    C    yy
                        vnoremap    ⊂    yy
        vnoremap    c    y
        vnoremap    cc    yy
    
        "Delete to EOL - Delete-----------------------------------------------------"
        nnoremap    D    D
                        nnoremap    ⊥    D
        nnoremap    d    d
        nnoremap    dy    de
        nnoremap    de    dj
        nnoremap    dt    dp
        vnoremap    D    D
                        vnoremap    ⊥    D
        vnoremap    d    d
    
        "Down×5 - Down--------------------------------------------------------------"
        nnoremap    E    5gj
                        nnoremap    ↓    5gj
        nnoremap    e    gj
                        nnoremap    <Down>    gj
        inoremap    <Down>    <Esc>gj
        nnoremap    <C-w>E    <C-w>J
        nnoremap    <C-w>e    <C-w>j
        vnoremap    E    5gj
                        xnoremap    ↓    5gj
        vnoremap    e    gj
                        xnoremap    <Down>    gj
        vnoremap    <C-w>E    <C-w>J
        vnoremap    <C-w>e    <C-w>j
    
        "Find left - Find right-----------------------------------------------------"
        nnoremap    F    F
                        nnoremap    ⋸    F
    
        nnoremap    f    f
        vnoremap    F    F
                        vnoremap    ⋸    F
        vnoremap    f    f
    
        "Goto Bottom - Go-----------------------------------------------------------"
        nnoremap    G    G
                        nnoremap    ⊤    G
        nnoremap    g    g    
        vnoremap    G    G
                        vnoremap    ⊤    G
        vnoremap    g    g    
    
        nnoremap    gK    K
                        vnoremap    gK    K
        nnoremap    gQ    Q
                        vnoremap    gQ    Q
        nnoremap    gU    U
                        vnoremap    gU    U
        nnoremap    gX    X
                        vnoremap    gX    X
        nnoremap    gh    K
                        vnoremap    gh    K
        nnoremap    gs    s
                        vnoremap    gs    s
        nnoremap    gz    U
                        vnoremap    gz    U
    
        "Top of Screen - Page Down--------------------------------------------------"
        nnoremap    H    H
                        nnoremap    ⊢    H
        nnoremap    h    <PageDown>
        vnoremap    H    H
                        vnoremap    ⊢    H
        vnoremap    h    <PageDown>
    
        "End of Line - Right--------------------------------------------------------"
        nnoremap    I    <End>
        nnoremap    i    <Right>
        nnoremap    <C-w>I    <C-w>L
        nnoremap    <C-w>i    <C-w>l
        vnoremap    I    <End>
        vnoremap    i    <Right>
        vnoremap    <C-w>I    <C-w>L
        vnoremap    <C-w>i    <C-w>l
        onoremap    I    <End>
        onoremap    i    <Right>
    
        "Join Lines - Page Up-------------------------------------------------------"
        nnoremap    J    J
                        nnoremap    ⌶    J
        nnoremap    j    <PageUp>
        vnoremap    J    J
                        vnoremap    ⌶    J
        vnoremap    j    <PageUp>
    
        "Previous Search - Next Search----------------------------------------------"
        nnoremap    K    n
                        nnoremap    ∩    n
        nnoremap    k    N
                        nnoremap    ⌸    N
        vnoremap    K    n
                        vnoremap    ∩    n
        vnoremap    k    N
                        vnoremap    ⌸    N
    
        "Backwards End of Word - Backwards beginning of word------------------------"
        nnoremap    L    ge
                        nnoremap    ⍳    ge
        nnoremap    l    b
                        nnoremap    <Home>    N
        nnoremap    <C-l>    B
        vnoremap    L    ge
                        vnoremap    ⍳    ge
        vnoremap    l    b
                        vnoremap    <Home>    N
        vnoremap    <C-l>    B
        onoremap    L    ge
                        onoremap    ⍳    ge
        onoremap    l    b
                        onoremap    <Home>    N
    
        "Set Mark - Switch mark positions-------------------------------------------"
        nnoremap    M    m
                        nnoremap    ⍇    m
        nnoremap    m    '
                        nnoremap    ⌹    '
        nnoremap    mm    ''
                        nnoremap    ⌹⌹    ''
        vnoremap    M    m
                        vnoremap    ⍇    m
        vnoremap    m    '
                        vnoremap    ⌹    '
        vnoremap    mm    '
                        vnoremap    ⌹⌹    ''
    
        "Beginning of Line - Right--------------------------------------------------"
        nnoremap    N    ^
                        nnoremap    ←    ^
        nnoremap    n    h
        nnoremap    <C-w>N    <C-w>H
        nnoremap    <C-w>n    <C-w>h
        vnoremap    N    ^
                        xnoremap    ←    ^
        vnoremap    n    h
        vnoremap    <C-w>N    <C-w>H
        vnoremap    <C-w>n    <C-w>h
        onoremap    N    ^
                        onoremap    ←    ^
        onoremap    n    h
    
        "Beginning of Line - Right-- V-Swap cursor positions------------------------"
        nnoremap    O    O
                        nnoremap    ⍕    O
        nnoremap    o    o
        vnoremap    O    O
                        vnoremap    ⍕    O
        vnoremap    o    o
    
        "Move cursor left until - Move cursor right until---------------------------"
        nnoremap    P    T
                        nnoremap    ⍴    T
        nnoremap    p    t
        vnoremap    P    T
                        vnoremap    ⍴    T
        vnoremap    p    t
        onoremap    P    T
                        onoremap    ⍴    T
        onoremap    p    t
    
        "Play back recording of macro - Record Macro--------------------------------"
        nnoremap    Q    @q
                        nnoremap    ⍶    @q
        nnoremap    q    q
                        nnoremap    ⌈    q
        vnoremap    Q    @q
                        vnoremap    ⍶    @q
        vnoremap    q    q
                        vnoremap    ⌈    q
    
        "Enter into insert mode - Replace character---------------------------------"
        nnoremap    R    R
                        nnoremap    ⍵    R
        nnoremap    r    r
        vnoremap    R    R
                        vnoremap    ⍵    R
        vnoremap    r    r
        onoremap    R    R
                        onoremap    ⍵    R
        onoremap    r    r
    
        "Insert at Beginning of line - Insert-V-Move block in direction of visual---"
        nnoremap    S    I
                        nnoremap    ∈    I
        nnoremap    s    i
        vnoremap    S    I
                        vnoremap    ∈    I
        vnoremap    s    i
    
        "Append at End of line - append---------------------------------------------"
        nnoremap    T    A
                        nnoremap    ⊣    A
        nnoremap    t    a
        vnoremap    T    A
                        vnoremap    ⊣    A
        vnoremap    t    a
    
        "Up×5 - Up------------------------------------------------------------------"
        nnoremap    U    5gk
                        nnoremap    ↑    5gk
        nnoremap    u    gk
        nnoremap    <C-w>U    <C-w>K
        nnoremap    <C-w>u    <C-w>k
        vnoremap    U    5gk
                        vnoremap    ↑    5gk
        vnoremap    u    gk
        vnoremap    <C-w>U    <C-w>K
        vnoremap    <C-w>u    <C-w>k
        onoremap    U    5gk
                        onoremap    ↑    5gk
        onoremap    u    gk
    
        "Paste Append - Paste Insert------------------------------------------------"
        nnoremap    V    p
                        nnoremap    ∪    P
        nnoremap    v    gP
        vnoremap    V    p
                        vnoremap    ∪    P
        vnoremap    v    gP
    
        "Delete until End of line + Insert - Change---------------------------------"
        nnoremap    W    C
                        nnoremap    ⍹    C
        nnoremap    w    c
        vnoremap    W    C
                        vnoremap    ⍹    C
        vnoremap    w    c
    
        "Backspace - Delete---------------------------------------------------------"
        nnoremap    X    X
                        nnoremap    ×    X
        nnoremap    x    x
        vnoremap    X    X
                        vnoremap    ×    X
        vnoremap    x    x
    
        "Forward to End of Word - Forward to Beginning of word----------------------"
        nnoremap    Y    e
                        nnoremap    ○    e
        nnoremap    y    w
                        nnoremap    <End>    w
        vnoremap    Y    e
                        vnoremap    ○    e
        vnoremap    y    w
                        vnoremap    <End>    w
    
        "Redo - Undo----------------------------------------------------------------"
        nnoremap    Z    <C-r>
                        nnoremap    ÷    <C-r>
        nnoremap    z    u
                        nnoremap    z    u
        vnoremap    Z    <C-r>
                        vnoremap    ÷    <C-r>
        vnoremap    z    u
                        vnoremap    z    u
        "---------------------------------------------------------------------------"
        "Normal        |Before    |After    |Altgr        |Before    |After"    
        "---------------------------------------------------------------------------"
        xnoremap Z :<C-u>redo<CR>
        xnoremap z :<C-u>undo<CR>
        xnoremap ~ <C-[>N
     
    " fixme -- w combos need to be added manually
        
    
    "Unmentioned Remaps
    " Unmapped Keys 
    " @ - Was for Record Macro
    " $ - Redundant, as I has taken its place
    " ^ - Reduntant, as N has taken its place
    Offline
    • 0