plover-vim


Nameplover-vim JSON
Version 0.12.0 PyPI version JSON
download
home_pagehttps://github.com/Josiah-tan/plover-vim
Summary(mostly) single stroke vim commands
upload_time2024-01-16 09:26:08
maintainer
docs_urlNone
authorJosiah Tan
requires_python
licenseGNU General Public License v3 (GPLv3)
keywords plover plover_plugin vim
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Plover_vim

- This is an ambitious project that aims to make vim faster and more ergonomic for plover users
- A Python library to create custom dictionaries for generating (mostly) single stroke vim commands
	- e.g. ciw, gcip, ya}

# Quick links

- See [speedrun video](https://www.youtube.com/watch?v=8-oDPhmpN9g) (2:50 min).
- For interactive learning (`highly recommended`) see [plover-vim-tutor](https://github.com/Josiah-tan/plover-vim-tutor).

# Aims:
- highly extensible and customisable commands and translations
- (mostly) single chords for virtually every vim command combination
- Ability to do everything in insert mode (doesn't matter if you are in normal mode)

# Motivation
- Slowness of changing between insert and normal mode
- slowness of fingerspelling everything
- Emily's [modifiers](https://github.com/EPLHREU/emily-modifiers)
	- contains all control, alt, windows, etc. combined with every symbol possible
- Emily's [symbols](https://github.com/EPLHREU/emily-symbols)
	- symbols with full control over spacing, capitalization, and repetition
- User202729's [python dictionary library](https://github.com/user202729/plover-python-dictionary-lib)
	- makes coding a python dictionary significantly easier
	- highly recommend you check this out if you want to create your own dictionaries from scratch

# Prerequisites
- Download plover and find the executable
	- see this [website](https://plover.readthedocs.io/en/latest/cli_reference.html) for finding the location of plover depending on which platform you are using (Linux, Windows, etc.)

# Installation

- Now run this command to install the library
``` bash
<plover_executable> -s plover_plugins install plover_vim
```

# Modules
- This repository shows you how you can import different modules from the plover_vim package to use
- This provides you with control over which modules to include for your plover + vim experience!

## Summary
| Module           | # Strokes | Short Description                                       | Examples                           |
|------------------|-----------|---------------------------------------------------------|------------------------------------|
| relative number  | 1         | jump to different lines (1 to 100)                      | 14j, 31k                           |
| easy motion      | 2         | command letter, but another stroke required for jumping | <leader><leader>fp st              |
| Josiah modifier  | 1         | Emily's modifiers but only left hand fingerspelling     | ctrl-w ctrl-w (change vim window), |
|                  |           |                                                         | ctrl-b w (tmux)                    |
| command letter 2 | 1         | any command followed by any text object                 | ciw, gcip, yii,                    |
|                  |           | (characters same as Josiah's modifiers)                 | vif, dt(, zz, viwp                 |
| command letter   | 1         | any command followed by any character                   | fu, T?, @q, gv                     |
| (deprecated)     |           | (characters same as Emily's modifiers)                  |                                    |
| command object   | 1         | any command followed by any text object                 | ciw, gcip, yi(                     |
| (deprecated)     |           | (characters same as Emily's symbols)                    |                                    |
| emily modifier   | 1         | Emily's modifiers but for vim                           | esc ctrl ^                         |
| (deprecated)     |           |                                                         |                                    |

## Relative-number

### What is relative numbering in vim?

- relative numbering is a numbering system that allows you to move quickly between any line in the code
- I recommend checking out the help menu in vim to learn more with it:
``` 
:help relativenumber
```
- it is good stuff

### How does this module improve vim?

- You can jump to different lines (up and down) in a single stroke
- this is achieved by stroking a number like usual in addition to another chord
    -   \'-7R\' =\> down 7 times
    -   \'1-6B\' =\> up 16 times
    -   \'1EUR7\' =\> down 71 times
- note that "R" and "B" are the same keys as what you'd use in Qwerty for up and down
- By default, the values for relative numbers do not go past 99 lines at a time

### Usage

- First, make sure to install plover_vim into plover
	- see [Installation](#Installation) for more instructions
- It is recommended to remap top left S key as #
- For a simple configuration see [templates/relative_number/customised.py](templates/relative_number/customised.py).
- For my configuration see [templates/Josiah/customised.py](templates/Josiah/customised.py)

## Easy_motion

### what is easy_motion in vim?

-   easy motion is a
    [plugin](https://github.com/easymotion/vim-easymotion) that enables
    \"vim motions on speed!\"
-   Aims to optimise text navigation

### How does this module improve vim?

-   You can perform a search for a letter h as follows
    -   \<leader\>\<leader\>fhtk =\> H-FBLTDZ/T-BG
    -   breaking it down:
        -   H =\> h, using Josiah\'s modifier symbols for the left hand
        -   -FB =\> \<leader\>\<leader\>f
        -   -LTDZ =\> unique ender for finders
        -   T-BG =\> tk, this is the second stroke that takes you to the
            location

| Unique Ender | Modifiers | Command           | How To Memorize   |
|--------------|-----------|-------------------|-------------------|
| -LTDZ        | -EU       | <leader><leader>f | Forward Backwards |

### How does the double sided fingerspelling work?

- This plugin activates double sided fingerspelling after you stroke the starter, for a single stroke
- Here are some examples (see [plover_vim/easy_motion/defaults.py](plover_vim/easy_motion/defaults.py) for the full list):

| letter | right hand | left hand |
|--------|------------|-----------|
| b      | PW         | -B        |
| x      | KP         | -BGS      |
| j      | SKWR       | -PBLG     |

### Usage:
- put this line of code somewhere in your vimrc

``` vim
let g:EasyMotion_keys = 'bdfgjklmnprstxz'
```

- copy [templates/easy_motion/simple.py](templates/easy_motion/simple.py) and add it to your dictionaries for a simple configuration
- copy [templates/easy_motion/customised.py](templates/easy_motion/customised.py) and add it to your dictionaries for a customisable configuration
- see note on [Control(j)](#Control(J))


### Easy_motion (Advanced):

- You can use the left hand versions of the right hand vowels as follows:
- (Recommended by Abby)

| Letter | Old Version | New Remapped |
|--------|-------------|--------------|
| e      | E           | SK           |
| i      | EU          | SKW          |
| u      | U           | WR           |

- You can also use right hand fingerspelling
- This will require some time to memorize
- (ideas originate from realtime/realwrite and Magnum)

| Letter | Map   |
|--------|-------|
| a      | -RB   |
| c      | -SZ   |
| h      | -FD   |
| o      | -GS   |
| q      | -LGTS |
| v      | -FB   |
| w      | -FRP  |
| y      | -FPL  |

### Usage (Advanced)

- Put this line of code somewhere in your vimrc 
	- If you want to take advantage of the full alphabet

``` vim
let g:EasyMotion_keys = 'abcdefghijklmnopqrstuvwxyz'
```


## Josiah_modifier

### how does this module work?

- This is basically Emily modifiers, but it supports extra functionality
- The main idea is to remap these right hand fingerspelling commands to the left hand versions:

| Letter | Old Version | New Remapped |
|--------|-------------|--------------|
| e      | E           | SK           |
| i      | EU          | SKW          |
| u      | U           | WR           |

- This leaves more space for commands using the E and U keys
- The number key is also used to create more space for more options (8 altogether)

### Some ideas of what you can do with this extra space

- So you can prepend a command before an Emily modifier command:
	- ctrl-w ctrl-o = OULTZ
	- breaking it down:
		- OF = ctrl-o
		- U = ctrl-w
		- -LTZ = unique Emily modifier ender (ring finger on LT and pinky on Z)
- the table below shows default settings

| Chord | Prefix Command        | How To Memorize                  |
|-------|-----------------------|----------------------------------|
| #     | control(j)            |                                  |
| E     | escape                | EscapE                           |
| EU    | control(j) control(w) | vim splIt or wIndow              |
| #EU   | control(r)            | regIster                         |
| U     | control(b)            | tmUx                             |
| #E    | control(x)            | Ex command                       |
| NA    | NA                    | (used in a normal Emily command) |
| #U    | NA                    |                                  |

### Usage

- copy [templates/Josiah_modifier/simple.py](templates/Josiah_modifier/simple.py) and add it to your dictionaries for a simple configuration
- copy [templates/Josiah_modifier/customised.py](templates/Josiah_modifier/customised.py) and add it to your dictionaries for a customisable configuration
- see note on [Control(j)](#Control(j))

## Command_letter_2

### How does this module improve on command_letter and command_object?

- Basically it replaces the need for either of them using Josiah's modifiers as a base.
-   It can perform a complex finder operation:
    -   df) = KWR\*UBLTDZ
    -   breaking it down:
        -   KWR\* = ), using Josiah\'s / Emily's modifier for the left hand
        -   U = f (because it is the right key for the right thumb)
        -   B = c (B -> "blot", and hence delete)
        -   -LTDZ = unique ender for finders (ring finger on LT and
            pinky on DZ)
-   It can perform a miscellaneous operation:
    -   \[m = PHUTZ
    -   Breaking it down:
        -   PH = m, using Josiah\'s modifier for the left hand
        -   U = \[, idea from tpope\'s unimpaired
        -   -TZ = unique ender for miscellaneous (ring finger on T and
            pinky on Z)
-   It can perform a \"command-object\" operation:
    -   caw = WUBTDZ
    -   Breaking it down:
        -   W = w, using Josiah\'s modifier for the left hand
        -   U = a, U is more \"outside\" in position than E, so we use E
            = i cause it is more \"inner\" in position
        -   B = c, \"blot\" hence delete
        -   TDZ = unique ender for command object (ring finger on T,
            pinky on DZ)
-   The table below shows default settings
    -   \"Customisable\" commands can be filled in for personal useage

| category         | Unique Ender   | Modifiers   | Command        | How To Memorise          |
| ---------------- | -------------- | ----------- | -------------- | ------------------------ |
| finders          | -LTDZ          | -FPB        | customisable   |                          |
|                  |                | -FP         | customisable   |                          |
|                  |                | -FB         | customisable   |                          |
|                  |                | -PB         | customisable   |                          |
|                  |                | -F          | v              | Visualize                |
|                  |                | -P          | y              | coPy                     |
|                  |                | -B          | c              | Blot                     |
|                  | U              |             | f              | the right key            |
|                  | E              |             | shift(F)       | the left key             |
|                  | EU             |             | customisable   |                          |
|                  | #E             |             | shift(T)       | the left key with #      |
|                  | #U             |             | t              | the right key with #     |
|                  | #EU            |             | customisable   |                          |
|                  | #              |             | customisable   |                          |
| miscallaneous    | -TZ            | -FP         | shift(at)      | macros                   |
|                  |                | #-FP        | q              | record macros            |
|                  |                | -FB         | cs             | blot Furround            |
|                  |                | #-FB        | ds             | blot Furround            |
|                  |                | -FPB        | z              | zeN                      |
|                  |                | -PB         | gl             | lioN                     |
|                  |                | #-PB        | gL             | lioN                     |
|                  |                | -F          | g              | the good Spot            |
|                  |                | #-F         | shift(S)       | Furround                 |
|                  |                | -P          | r              | rePlace                  |
|                  |                | -B          | apostrophe     | go marBg                    |
|                  |                |             | customisable   |                          |
|                  |                | #-B         | m              | similar to mark          |
|                  |                | #-P         | repeat         | rePeat                   |
|                  |                | -EFP        | [              | E is to the left of U    |
|                  |                | -UFP        | ]              | U is to the right of E   |
|                  |                | #EU         | "              | register                 |
| command object   | -LTSZ          | -FPB        | equal          |                          |
|                  |                | -FP         | ys             | coPy Furround            |
|                  |                | -FB         | customisable   |                          |
|                  |                | -PB         | gc             | commeNt                  |
|                  |                | -F          | v              | Fisualize                |
|                  |                | -P          | y              | coPy                     |
|                  |                | -B          | c              | Blot                     |
|                  |                | ""          | gU             |                          |
|                  |                | #-FPB       | v~             |                          |
|                  |                | #-FP        | customisable   |                          |
|                  |                | #-FB        | customisable   |                          |
|                  |                | #-PB        | gb             |                          |
|                  |                | #-F         | vp             | visualize and paste!     |
|                  |                | #-P         | "              | y                        |
|                  |                | #-B         | customisable   |                          |
|                  |                | #           | gu             |                          |
|                  | E              |             | i              | Inner                    |
|                  | EU             |             | O              |                          |
|                  | U              |             | a              | Around                   |
|                  |                |             | ""             |                          |

### Usage
- First, make sure to install plover_vim into plover
	- see [Installation](#Installation) for more instructions
- copy [templates/command_letter_2/simple.py](templates/command_letter_2/simple.py) and add it to your dictionaries for a simple configuration
- copy [templates/command_letter_2/customised.py](templates/command_letter_2/customised.py) and add it to your dictionaries for a customisable configuration
- It is recommended to remap top left S key as #

## Command-letter (deprecated)

### How does this module improve vim?

-   You can perform any command followed by a letter in a single stroke
    for example:
    -   f\) = KWR\*FLTDZ
    -   breaking it down:
        -   KWR\* = ), using emily\'s modifier symbols for the left hand
        -   F = f
        -   -LTDZ = unique ender for finders (ring finger on LT and
            pinky on DZ)
-   The table below shows default settings
    -   \"Customisable\" commands can be filled in for personal useage

| category        | Unique Ender   | Modifiers   | Command        | How To Memorise        |
| --------------- | -------------- | ----------- | -------------- | ---------------------- |
| finders         | -LTDZ          | -FPB        | customisable   |                        |
|                 |                | -FP         | customisable   |                        |
|                 |                | -FB         |                | (used in easymotion)   |
|                 |                | -PB         | shift(t)       | Previous Backwards     |
|                 |                | -F          | f              | Forwards               |
|                 |                | -P          | t              | Previous               |
|                 |                | -B          | shift(f)       | Backwards              |
|                 |                |             | ""             | escaped commands       |
| miscallaneous   | -TZ            | -FPB        | q              | liSeN                  |
|                 |                | -FP         | shift(at)      | macros                 |
|                 |                | -FB         | customisable   |                        |
|                 |                | -PB         | z              | zeN                    |
|                 |                | -F          | g              | the good Spot          |
|                 |                | -P          | r              | rePlace                |
|                 |                | -B          | m              | marBg                  |
|                 |                |             | customisable   |                        |

### Usage

-   copy templates/command_letter/simple.py and add it to your
    dictionaries for default configuration
-   copy templates/command_letter/customised.py for a more
    customised experience
    -   note that (shift(at)) is required to output @ because raw
        keyboard input is
        [weird](https://github.com/openstenoproject/plover/issues/1465)
    -   See note on [control(j)](#Control(j))

## command-object (deprecated)

### How does this module improve vim?

-   You can perform any command followed by a text \"object\" in a
    single stroke for example:
    -   daw = STPRARLD
    -   breaking it down:
        -   STPR = unique starter
        -   A = a
        -   -RL = w, (see \"objects\" in
            command_object/defaults.py)
        -   -D = d
    -   yi( = STPROFPLZ
        -   STPR = unique starter
        -   O = i
        -   -FPL = (, using emily\'s symbols for the right hand
        -   -Z = y
-   The table below shows the default mappings
    -   \"Customisable\" commands can be filled in for personal useage
    -   note: AO combinations can be combined with other modifiers

| Unique starter | Modifiers | Command      | How To Memorise | Plugin Requirements   |
|----------------|-----------|--------------|-----------------|-----------------------|
| STPR           | -T        | g c          | commenTary      | tpope/vim-commentary  |
|                | -D        | d            | Delete          |                       |
|                | -S        | y s          | Surround        | tpope/vim-surround    |
|                | -Z        | y            | xyZ             |                       |
|                | -TD       | customisable |                 |                       |
|                | -DZ       | d s          | Delete Surround | tpope/vim-surround    |
|                | -SZ       | v            | viSualiZe       |                       |
|                | -TS       | customisable |                 |                       |
|                | *T        | g b          | commenTary      | numToStr/Comment.nvim |
|                | *D        | customisable |                 |                       |
|                | *S        | shift(s)     | Surround        | tpope/vim-surround    |
|                | *Z        | customisable |                 |                       |
|                | *TD       | customisable |                 |                       |
|                | *DZ       | customisable |                 |                       |
|                | *SZ       | customisable |                 |                       |
|                | *TS       | customisable |                 |                       |
|                |           | customisable |                 |                       |
|                | A         | a            | around          |                       |
|                | O         | i            |                 |                       |
|                | AO        | customisable |                 |                       |
|                |           | ""           |                 |                       |


### Limitations

-   some command + motion combinations must be stroked in two, for
    example:
    -   ct=

### Usage

-   copy templates/command_object/simple.py and add it to your
    dictionaries for default configuration
-   copy templates/command_object/customised.py for a more
    customised experience
    -   note that (shift(s)) is required to output S because raw
        keyboard input is
        [weird](https://github.com/openstenoproject/plover/issues/1465)
    -   See note on [control(j)](#Controlj)

## Emily-modifier (deprecated)

### How does this module improve upon the [original](https://github.com/EPLHREU/emily-modifiers)?

-   You can prepend an escape to the command
-   Commands like ctrl\^ no longer require shift to be pressed [related
    issue](https://github.com/openstenoproject/plover/issues/1465)

### Usage

-   copy templates/Emily_modifier/simple.py and add it to your
    dictionaries for a simple configuration
-   copy templates/Emily_modifier/customised.py for a more
    customised experience
    -   see note on [control(j)](#Control(J))


# Control(J)
-   Allows you to execute any (most) commands as if you are from normal
    mode
-   Sample .vimrc config (thanks
    [User202729](https://github.com/openstenoproject/plover/discussions/1350#discussioncomment-1905781))!

``` vim
"do nothing in normal mode
nore <c-j> <nop> 
"escape insert mode, then return to insert mode afterwards
inore <c-j> <c-\><c-o>
"escape command mode
cnoremap <c-j> <esc>

if !has('nvim')
    " escape terminal mode, then return to terminal mode
    set termwinkey=<c-j>
else
    " escape terminal mode, does not return to terminal mode :<
    tnoremap <c-j> <C-\><C-n>
endif
```

# Developers

- This section shows how you can have an editable version of this project
- Firstly, fork this repository (in GitHub), then clone it:

``` bash
git clone https://github.com/your_user_name/plover_vim
```

- cd into this repo
- Then install for use!
	- Note that "plover" is the executable that you downloaded to make Plover work in the first place
	- See this [[https://plover.readthedocs.io/en/latest/cli_reference.html][website]] for the different locations depending on which platform you are using (Linux, Windows, etc)

``` bash
cd plover_vim
plover -s plover_plugins install -e .
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Josiah-tan/plover-vim",
    "name": "plover-vim",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "plover plover_plugin vim",
    "author": "Josiah Tan",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/0d/29/316a43680c272a0a032ea7429a87e8d8e9ea8e63e42c68fba34df09ab68a/plover_vim-0.12.0.tar.gz",
    "platform": null,
    "description": "# Plover_vim\n\n- This is an ambitious project that aims to make vim faster and more ergonomic for plover users\n- A Python library to create custom dictionaries for generating (mostly) single stroke vim commands\n\t- e.g. ciw, gcip, ya}\n\n# Quick links\n\n- See [speedrun video](https://www.youtube.com/watch?v=8-oDPhmpN9g) (2:50 min).\n- For interactive learning (`highly recommended`) see [plover-vim-tutor](https://github.com/Josiah-tan/plover-vim-tutor).\n\n# Aims:\n- highly extensible and customisable commands and translations\n- (mostly) single chords for virtually every vim command combination\n- Ability to do everything in insert mode (doesn't matter if you are in normal mode)\n\n# Motivation\n- Slowness of changing between insert and normal mode\n- slowness of fingerspelling everything\n- Emily's [modifiers](https://github.com/EPLHREU/emily-modifiers)\n\t- contains all control, alt, windows, etc. combined with every symbol possible\n- Emily's [symbols](https://github.com/EPLHREU/emily-symbols)\n\t- symbols with full control over spacing, capitalization, and repetition\n- User202729's [python dictionary library](https://github.com/user202729/plover-python-dictionary-lib)\n\t- makes coding a python dictionary significantly easier\n\t- highly recommend you check this out if you want to create your own dictionaries from scratch\n\n# Prerequisites\n- Download plover and find the executable\n\t- see this [website](https://plover.readthedocs.io/en/latest/cli_reference.html) for finding the location of plover depending on which platform you are using (Linux, Windows, etc.)\n\n# Installation\n\n- Now run this command to install the library\n``` bash\n<plover_executable> -s plover_plugins install plover_vim\n```\n\n# Modules\n- This repository shows you how you can import different modules from the plover_vim package to use\n- This provides you with control over which modules to include for your plover + vim experience!\n\n## Summary\n| Module           | # Strokes | Short Description                                       | Examples                           |\n|------------------|-----------|---------------------------------------------------------|------------------------------------|\n| relative number  | 1         | jump to different lines (1 to 100)                      | 14j, 31k                           |\n| easy motion      | 2         | command letter, but another stroke required for jumping | <leader><leader>fp st              |\n| Josiah modifier  | 1         | Emily's modifiers but only left hand fingerspelling     | ctrl-w ctrl-w (change vim window), |\n|                  |           |                                                         | ctrl-b w (tmux)                    |\n| command letter 2 | 1         | any command followed by any text object                 | ciw, gcip, yii,                    |\n|                  |           | (characters same as Josiah's modifiers)                 | vif, dt(, zz, viwp                 |\n| command letter   | 1         | any command followed by any character                   | fu, T?, @q, gv                     |\n| (deprecated)     |           | (characters same as Emily's modifiers)                  |                                    |\n| command object   | 1         | any command followed by any text object                 | ciw, gcip, yi(                     |\n| (deprecated)     |           | (characters same as Emily's symbols)                    |                                    |\n| emily modifier   | 1         | Emily's modifiers but for vim                           | esc ctrl ^                         |\n| (deprecated)     |           |                                                         |                                    |\n\n## Relative-number\n\n### What is relative numbering in vim?\n\n- relative numbering is a numbering system that allows you to move quickly between any line in the code\n- I recommend checking out the help menu in vim to learn more with it:\n``` \n:help relativenumber\n```\n- it is good stuff\n\n### How does this module improve vim?\n\n- You can jump to different lines (up and down) in a single stroke\n- this is achieved by stroking a number like usual in addition to another chord\n    -   \\'-7R\\' =\\> down 7 times\n    -   \\'1-6B\\' =\\> up 16 times\n    -   \\'1EUR7\\' =\\> down 71 times\n- note that \"R\" and \"B\" are the same keys as what you'd use in Qwerty for up and down\n- By default, the values for relative numbers do not go past 99 lines at a time\n\n### Usage\n\n- First, make sure to install plover_vim into plover\n\t- see [Installation](#Installation) for more instructions\n- It is recommended to remap top left S key as #\n- For a simple configuration see [templates/relative_number/customised.py](templates/relative_number/customised.py).\n- For my configuration see [templates/Josiah/customised.py](templates/Josiah/customised.py)\n\n## Easy_motion\n\n### what is easy_motion in vim?\n\n-   easy motion is a\n    [plugin](https://github.com/easymotion/vim-easymotion) that enables\n    \\\"vim motions on speed!\\\"\n-   Aims to optimise text navigation\n\n### How does this module improve vim?\n\n-   You can perform a search for a letter h as follows\n    -   \\<leader\\>\\<leader\\>fhtk =\\> H-FBLTDZ/T-BG\n    -   breaking it down:\n        -   H =\\> h, using Josiah\\'s modifier symbols for the left hand\n        -   -FB =\\> \\<leader\\>\\<leader\\>f\n        -   -LTDZ =\\> unique ender for finders\n        -   T-BG =\\> tk, this is the second stroke that takes you to the\n            location\n\n| Unique Ender | Modifiers | Command           | How To Memorize   |\n|--------------|-----------|-------------------|-------------------|\n| -LTDZ        | -EU       | <leader><leader>f | Forward Backwards |\n\n### How does the double sided fingerspelling work?\n\n- This plugin activates double sided fingerspelling after you stroke the starter, for a single stroke\n- Here are some examples (see [plover_vim/easy_motion/defaults.py](plover_vim/easy_motion/defaults.py) for the full list):\n\n| letter | right hand | left hand |\n|--------|------------|-----------|\n| b      | PW         | -B        |\n| x      | KP         | -BGS      |\n| j      | SKWR       | -PBLG     |\n\n### Usage:\n- put this line of code somewhere in your vimrc\n\n``` vim\nlet g:EasyMotion_keys = 'bdfgjklmnprstxz'\n```\n\n- copy [templates/easy_motion/simple.py](templates/easy_motion/simple.py) and add it to your dictionaries for a simple configuration\n- copy [templates/easy_motion/customised.py](templates/easy_motion/customised.py) and add it to your dictionaries for a customisable configuration\n- see note on [Control(j)](#Control(J))\n\n\n### Easy_motion (Advanced):\n\n- You can use the left hand versions of the right hand vowels as follows:\n- (Recommended by Abby)\n\n| Letter | Old Version | New Remapped |\n|--------|-------------|--------------|\n| e      | E           | SK           |\n| i      | EU          | SKW          |\n| u      | U           | WR           |\n\n- You can also use right hand fingerspelling\n- This will require some time to memorize\n- (ideas originate from realtime/realwrite and Magnum)\n\n| Letter | Map   |\n|--------|-------|\n| a      | -RB   |\n| c      | -SZ   |\n| h      | -FD   |\n| o      | -GS   |\n| q      | -LGTS |\n| v      | -FB   |\n| w      | -FRP  |\n| y      | -FPL  |\n\n### Usage (Advanced)\n\n- Put this line of code somewhere in your vimrc \n\t- If you want to take advantage of the full alphabet\n\n``` vim\nlet g:EasyMotion_keys = 'abcdefghijklmnopqrstuvwxyz'\n```\n\n\n## Josiah_modifier\n\n### how does this module work?\n\n- This is basically Emily modifiers, but it supports extra functionality\n- The main idea is to remap these right hand fingerspelling commands to the left hand versions:\n\n| Letter | Old Version | New Remapped |\n|--------|-------------|--------------|\n| e      | E           | SK           |\n| i      | EU          | SKW          |\n| u      | U           | WR           |\n\n- This leaves more space for commands using the E and U keys\n- The number key is also used to create more space for more options (8 altogether)\n\n### Some ideas of what you can do with this extra space\n\n- So you can prepend a command before an Emily modifier command:\n\t- ctrl-w ctrl-o = OULTZ\n\t- breaking it down:\n\t\t- OF = ctrl-o\n\t\t- U = ctrl-w\n\t\t- -LTZ = unique Emily modifier ender (ring finger on LT and pinky on Z)\n- the table below shows default settings\n\n| Chord | Prefix Command        | How To Memorize                  |\n|-------|-----------------------|----------------------------------|\n| #     | control(j)            |                                  |\n| E     | escape                | EscapE                           |\n| EU    | control(j) control(w) | vim splIt or wIndow              |\n| #EU   | control(r)            | regIster                         |\n| U     | control(b)            | tmUx                             |\n| #E    | control(x)            | Ex command                       |\n| NA    | NA                    | (used in a normal Emily command) |\n| #U    | NA                    |                                  |\n\n### Usage\n\n- copy [templates/Josiah_modifier/simple.py](templates/Josiah_modifier/simple.py) and add it to your dictionaries for a simple configuration\n- copy [templates/Josiah_modifier/customised.py](templates/Josiah_modifier/customised.py) and add it to your dictionaries for a customisable configuration\n- see note on [Control(j)](#Control(j))\n\n## Command_letter_2\n\n### How does this module improve on command_letter and command_object?\n\n- Basically it replaces the need for either of them using Josiah's modifiers as a base.\n-   It can perform a complex finder operation:\n    -   df) = KWR\\*UBLTDZ\n    -   breaking it down:\n        -   KWR\\* = ), using Josiah\\'s / Emily's modifier for the left hand\n        -   U = f (because it is the right key for the right thumb)\n        -   B = c (B -> \"blot\", and hence delete)\n        -   -LTDZ = unique ender for finders (ring finger on LT and\n            pinky on DZ)\n-   It can perform a miscellaneous operation:\n    -   \\[m = PHUTZ\n    -   Breaking it down:\n        -   PH = m, using Josiah\\'s modifier for the left hand\n        -   U = \\[, idea from tpope\\'s unimpaired\n        -   -TZ = unique ender for miscellaneous (ring finger on T and\n            pinky on Z)\n-   It can perform a \\\"command-object\\\" operation:\n    -   caw = WUBTDZ\n    -   Breaking it down:\n        -   W = w, using Josiah\\'s modifier for the left hand\n        -   U = a, U is more \\\"outside\\\" in position than E, so we use E\n            = i cause it is more \\\"inner\\\" in position\n        -   B = c, \\\"blot\\\" hence delete\n        -   TDZ = unique ender for command object (ring finger on T,\n            pinky on DZ)\n-   The table below shows default settings\n    -   \\\"Customisable\\\" commands can be filled in for personal useage\n\n| category         | Unique Ender   | Modifiers   | Command        | How To Memorise          |\n| ---------------- | -------------- | ----------- | -------------- | ------------------------ |\n| finders          | -LTDZ          | -FPB        | customisable   |                          |\n|                  |                | -FP         | customisable   |                          |\n|                  |                | -FB         | customisable   |                          |\n|                  |                | -PB         | customisable   |                          |\n|                  |                | -F          | v              | Visualize                |\n|                  |                | -P          | y              | coPy                     |\n|                  |                | -B          | c              | Blot                     |\n|                  | U              |             | f              | the right key            |\n|                  | E              |             | shift(F)       | the left key             |\n|                  | EU             |             | customisable   |                          |\n|                  | #E             |             | shift(T)       | the left key with #      |\n|                  | #U             |             | t              | the right key with #     |\n|                  | #EU            |             | customisable   |                          |\n|                  | #              |             | customisable   |                          |\n| miscallaneous    | -TZ            | -FP         | shift(at)      | macros                   |\n|                  |                | #-FP        | q              | record macros            |\n|                  |                | -FB         | cs             | blot Furround            |\n|                  |                | #-FB        | ds             | blot Furround            |\n|                  |                | -FPB        | z              | zeN                      |\n|                  |                | -PB         | gl             | lioN                     |\n|                  |                | #-PB        | gL             | lioN                     |\n|                  |                | -F          | g              | the good Spot            |\n|                  |                | #-F         | shift(S)       | Furround                 |\n|                  |                | -P          | r              | rePlace                  |\n|                  |                | -B          | apostrophe     | go marBg                    |\n|                  |                |             | customisable   |                          |\n|                  |                | #-B         | m              | similar to mark          |\n|                  |                | #-P         | repeat         | rePeat                   |\n|                  |                | -EFP        | [              | E is to the left of U    |\n|                  |                | -UFP        | ]              | U is to the right of E   |\n|                  |                | #EU         | \"              | register                 |\n| command object   | -LTSZ          | -FPB        | equal          |                          |\n|                  |                | -FP         | ys             | coPy Furround            |\n|                  |                | -FB         | customisable   |                          |\n|                  |                | -PB         | gc             | commeNt                  |\n|                  |                | -F          | v              | Fisualize                |\n|                  |                | -P          | y              | coPy                     |\n|                  |                | -B          | c              | Blot                     |\n|                  |                | \"\"          | gU             |                          |\n|                  |                | #-FPB       | v~             |                          |\n|                  |                | #-FP        | customisable   |                          |\n|                  |                | #-FB        | customisable   |                          |\n|                  |                | #-PB        | gb             |                          |\n|                  |                | #-F         | vp             | visualize and paste!     |\n|                  |                | #-P         | \"              | y                        |\n|                  |                | #-B         | customisable   |                          |\n|                  |                | #           | gu             |                          |\n|                  | E              |             | i              | Inner                    |\n|                  | EU             |             | O              |                          |\n|                  | U              |             | a              | Around                   |\n|                  |                |             | \"\"             |                          |\n\n### Usage\n- First, make sure to install plover_vim into plover\n\t- see [Installation](#Installation) for more instructions\n- copy [templates/command_letter_2/simple.py](templates/command_letter_2/simple.py) and add it to your dictionaries for a simple configuration\n- copy [templates/command_letter_2/customised.py](templates/command_letter_2/customised.py) and add it to your dictionaries for a customisable configuration\n- It is recommended to remap top left S key as #\n\n## Command-letter (deprecated)\n\n### How does this module improve vim?\n\n-   You can perform any command followed by a letter in a single stroke\n    for example:\n    -   f\\) = KWR\\*FLTDZ\n    -   breaking it down:\n        -   KWR\\* = ), using emily\\'s modifier symbols for the left hand\n        -   F = f\n        -   -LTDZ = unique ender for finders (ring finger on LT and\n            pinky on DZ)\n-   The table below shows default settings\n    -   \\\"Customisable\\\" commands can be filled in for personal useage\n\n| category        | Unique Ender   | Modifiers   | Command        | How To Memorise        |\n| --------------- | -------------- | ----------- | -------------- | ---------------------- |\n| finders         | -LTDZ          | -FPB        | customisable   |                        |\n|                 |                | -FP         | customisable   |                        |\n|                 |                | -FB         |                | (used in easymotion)   |\n|                 |                | -PB         | shift(t)       | Previous Backwards     |\n|                 |                | -F          | f              | Forwards               |\n|                 |                | -P          | t              | Previous               |\n|                 |                | -B          | shift(f)       | Backwards              |\n|                 |                |             | \"\"             | escaped commands       |\n| miscallaneous   | -TZ            | -FPB        | q              | liSeN                  |\n|                 |                | -FP         | shift(at)      | macros                 |\n|                 |                | -FB         | customisable   |                        |\n|                 |                | -PB         | z              | zeN                    |\n|                 |                | -F          | g              | the good Spot          |\n|                 |                | -P          | r              | rePlace                |\n|                 |                | -B          | m              | marBg                  |\n|                 |                |             | customisable   |                        |\n\n### Usage\n\n-   copy templates/command_letter/simple.py and add it to your\n    dictionaries for default configuration\n-   copy templates/command_letter/customised.py for a more\n    customised experience\n    -   note that (shift(at)) is required to output @ because raw\n        keyboard input is\n        [weird](https://github.com/openstenoproject/plover/issues/1465)\n    -   See note on [control(j)](#Control(j))\n\n## command-object (deprecated)\n\n### How does this module improve vim?\n\n-   You can perform any command followed by a text \\\"object\\\" in a\n    single stroke for example:\n    -   daw = STPRARLD\n    -   breaking it down:\n        -   STPR = unique starter\n        -   A = a\n        -   -RL = w, (see \\\"objects\\\" in\n            command_object/defaults.py)\n        -   -D = d\n    -   yi( = STPROFPLZ\n        -   STPR = unique starter\n        -   O = i\n        -   -FPL = (, using emily\\'s symbols for the right hand\n        -   -Z = y\n-   The table below shows the default mappings\n    -   \\\"Customisable\\\" commands can be filled in for personal useage\n    -   note: AO combinations can be combined with other modifiers\n\n| Unique starter | Modifiers | Command      | How To Memorise | Plugin Requirements   |\n|----------------|-----------|--------------|-----------------|-----------------------|\n| STPR           | -T        | g c          | commenTary      | tpope/vim-commentary  |\n|                | -D        | d            | Delete          |                       |\n|                | -S        | y s          | Surround        | tpope/vim-surround    |\n|                | -Z        | y            | xyZ             |                       |\n|                | -TD       | customisable |                 |                       |\n|                | -DZ       | d s          | Delete Surround | tpope/vim-surround    |\n|                | -SZ       | v            | viSualiZe       |                       |\n|                | -TS       | customisable |                 |                       |\n|                | *T        | g b          | commenTary      | numToStr/Comment.nvim |\n|                | *D        | customisable |                 |                       |\n|                | *S        | shift(s)     | Surround        | tpope/vim-surround    |\n|                | *Z        | customisable |                 |                       |\n|                | *TD       | customisable |                 |                       |\n|                | *DZ       | customisable |                 |                       |\n|                | *SZ       | customisable |                 |                       |\n|                | *TS       | customisable |                 |                       |\n|                |           | customisable |                 |                       |\n|                | A         | a            | around          |                       |\n|                | O         | i            |                 |                       |\n|                | AO        | customisable |                 |                       |\n|                |           | \"\"           |                 |                       |\n\n\n### Limitations\n\n-   some command + motion combinations must be stroked in two, for\n    example:\n    -   ct=\n\n### Usage\n\n-   copy templates/command_object/simple.py and add it to your\n    dictionaries for default configuration\n-   copy templates/command_object/customised.py for a more\n    customised experience\n    -   note that (shift(s)) is required to output S because raw\n        keyboard input is\n        [weird](https://github.com/openstenoproject/plover/issues/1465)\n    -   See note on [control(j)](#Controlj)\n\n## Emily-modifier (deprecated)\n\n### How does this module improve upon the [original](https://github.com/EPLHREU/emily-modifiers)?\n\n-   You can prepend an escape to the command\n-   Commands like ctrl\\^ no longer require shift to be pressed [related\n    issue](https://github.com/openstenoproject/plover/issues/1465)\n\n### Usage\n\n-   copy templates/Emily_modifier/simple.py and add it to your\n    dictionaries for a simple configuration\n-   copy templates/Emily_modifier/customised.py for a more\n    customised experience\n    -   see note on [control(j)](#Control(J))\n\n\n# Control(J)\n-   Allows you to execute any (most) commands as if you are from normal\n    mode\n-   Sample .vimrc config (thanks\n    [User202729](https://github.com/openstenoproject/plover/discussions/1350#discussioncomment-1905781))!\n\n``` vim\n\"do nothing in normal mode\nnore <c-j> <nop> \n\"escape insert mode, then return to insert mode afterwards\ninore <c-j> <c-\\><c-o>\n\"escape command mode\ncnoremap <c-j> <esc>\n\nif !has('nvim')\n    \" escape terminal mode, then return to terminal mode\n    set termwinkey=<c-j>\nelse\n    \" escape terminal mode, does not return to terminal mode :<\n    tnoremap <c-j> <C-\\><C-n>\nendif\n```\n\n# Developers\n\n- This section shows how you can have an editable version of this project\n- Firstly, fork this repository (in GitHub), then clone it:\n\n``` bash\ngit clone https://github.com/your_user_name/plover_vim\n```\n\n- cd into this repo\n- Then install for use!\n\t- Note that \"plover\" is the executable that you downloaded to make Plover work in the first place\n\t- See this [[https://plover.readthedocs.io/en/latest/cli_reference.html][website]] for the different locations depending on which platform you are using (Linux, Windows, etc)\n\n``` bash\ncd plover_vim\nplover -s plover_plugins install -e .\n```\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3 (GPLv3)",
    "summary": "(mostly) single stroke vim commands",
    "version": "0.12.0",
    "project_urls": {
        "Homepage": "https://github.com/Josiah-tan/plover-vim"
    },
    "split_keywords": [
        "plover",
        "plover_plugin",
        "vim"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6de2a0ad11eb2d18b2b06cafc8392121e631400a5b27d2dded949805ac69548a",
                "md5": "6fb7d84e0b47c524f26d988b7c81c6c3",
                "sha256": "aae91931a516e14a8bf9d4800d871d7f51aa53426bdf469a0aeb606420907244"
            },
            "downloads": -1,
            "filename": "plover_vim-0.12.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6fb7d84e0b47c524f26d988b7c81c6c3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 50727,
            "upload_time": "2024-01-16T09:26:06",
            "upload_time_iso_8601": "2024-01-16T09:26:06.223464Z",
            "url": "https://files.pythonhosted.org/packages/6d/e2/a0ad11eb2d18b2b06cafc8392121e631400a5b27d2dded949805ac69548a/plover_vim-0.12.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d29316a43680c272a0a032ea7429a87e8d8e9ea8e63e42c68fba34df09ab68a",
                "md5": "0f81e2b2ff8550782cc95661e70ac873",
                "sha256": "cd892bff5b29bf8dbc7b622b8ac131b88958e7912f27d9bd6b3afa494622dff3"
            },
            "downloads": -1,
            "filename": "plover_vim-0.12.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0f81e2b2ff8550782cc95661e70ac873",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 39376,
            "upload_time": "2024-01-16T09:26:08",
            "upload_time_iso_8601": "2024-01-16T09:26:08.783461Z",
            "url": "https://files.pythonhosted.org/packages/0d/29/316a43680c272a0a032ea7429a87e8d8e9ea8e63e42c68fba34df09ab68a/plover_vim-0.12.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-16 09:26:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Josiah-tan",
    "github_project": "plover-vim",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "tox": true,
    "lcname": "plover-vim"
}
        
Elapsed time: 0.16980s