{"id":15700522,"url":"https://github.com/luffah/vim-accessibility","last_synced_at":"2025-04-30T09:22:03.902Z","repository":{"id":93289885,"uuid":"126801305","full_name":"luffah/vim-accessibility","owner":"luffah","description":"This project group all the things needed to make Vim more accessible for people. ","archived":false,"fork":false,"pushed_at":"2025-04-19T22:49:47.000Z","size":70,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T23:27:31.027Z","etag":null,"topics":["accessibility","aliases","keybindings","remanent","screenreader","vim-plugin"],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luffah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-26T08:58:17.000Z","updated_at":"2025-04-19T22:49:50.000Z","dependencies_parsed_at":"2023-08-25T10:45:22.604Z","dependency_job_id":null,"html_url":"https://github.com/luffah/vim-accessibility","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luffah%2Fvim-accessibility","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luffah%2Fvim-accessibility/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luffah%2Fvim-accessibility/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luffah%2Fvim-accessibility/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luffah","download_url":"https://codeload.github.com/luffah/vim-accessibility/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251674996,"owners_count":21625718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","aliases","keybindings","remanent","screenreader","vim-plugin"],"created_at":"2024-10-03T19:49:25.767Z","updated_at":"2025-04-30T09:22:03.896Z","avatar_url":"https://github.com/luffah.png","language":"Vim Script","readme":"\n\u003ca rel=\"license\" href=\"https://creativecommons.org/licenses/by-sa/4.0/\"\u003e\n\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\"\u003e\u003c/a\u003e\n\u003ca rel=\"license\" href=\"./LICENSE\"\u003e\u003cimg src=\"https://www.gnu.org/graphics/gplv3-88x31.png\" alt=\"License GPLv3\"\u003e\u003c/a\u003e\n\n# Set of scripts attempting to implement accessibility features\n\nThis project group things intended to make Vim more accessible for people.\n* Remanent keys : for keeping your pinkies safe\u003cbr\u003e\n  ```vim\n    \" Map `\u003cSpace\u003e` to be the remanent key for Shift, and `\u003cSpace\u003e\u003cSpace\u003e` to be the remanent key for Ctrl.\n    \" ['n'] is for normal mode\n     let g:sticky_map = {\n      \\'shift': { '\u003cSpace\u003e':['n'] },\n      \\'ctrl': { '\u003cSpace\u003e\u003cSpace\u003e':['n'] },\n      \\})\n  ```\n* Documented keymapping : to force yourself to document your keybind and allow to create tutorials\u003cbr\u003e\n    In short, it can be written like that :\u003cbr\u003e\n    ```vim\n    \" Here 8 simples mapping in 2 lines\n    \" Keys     ''Description ''        Vim action                      % modes\n    \u003cC-l\u003e \u003cA-l\u003e \"Enter command line\"   :                               % I n v\n    \u003cA-Right\u003e   \"Compl. filename \" pumvisible()?\"\u003cCr\u003e\":\"%1%\u003cC-x\u003e\u003cC-f\u003e\" % i -n-%i%\n    \n    \" Want more ? you forgot your shortcuts ? do you want to see the list.\n    \" You can ':call KeyMap#PrintCurrentLayer()',\n    \" But why not grouping shortcuts by categories ?\n    \" -\u003e a tutorial mode for \u003cC-w\u003e\n    \u003cC-w\u003e       \"C-w\"                  \u003cOneShot=wincmd\u003e                %  n\n    T           \":Move to a new tab\"   T                               %\n    \" -\u003e an emacs like layer\n    \u003cC-x\u003e       \"~Emacs C-x\"           \u003cLayer\u003e                         % n\n    \u003cC-f\u003e       \":Search file\"         \u003cExitLayer\u003e:e! %:p:h/*          % n\n    ```\n    \u003cdetails\u003e\n    \u003csummary\u003eSee the details about keymapping\u003c/summary\u003e\n    Every lines above are a short format the following lines:\u003cbr\u003e\n\n    ```vim\n    \" \u003cC-l\u003e enter in command line mode from insert, normal, and visual mode\n    \" cal ..Map('Description', keys, action, modes_and_things_related_to_the_mode)\n    cal KeyMap#Map('Enter command line' , ['\u003cC-l\u003e','\u003cA-l\u003e']   , ':' , ['I','n','v'])\n    \" I is for insert mode, to use a one-shot normal mode key. (equivalent to '\u003cC-o\u003e:')\n    \n    \" \u003cA-Right\u003e complete filename in insert and normal mode\n    \" 'i' is for insert mode \n    \" '-n-%i%'  is for normal mode; but force the use of \u003cC-x\u003e\u003cC-f\u003e in insert mode\n    \"           another way to say it : '%1%\u003cC-x\u003e\u003cC-f\u003e' is replaced by 'i\u003cC-x\u003e\u003cC-f\u003e'\n    cal KeyMap#Map('Complete filename' , '\u003cA-Right\u003e' , 'pumvisible()? \"\u003cCr\u003e\":\"%1%\u003cC-x\u003e\u003cC-f\u003e\"'   , ['i' , '-n-%i%'])\n    \n    \" Following example is usefull for re-discovering keys\n    \" When you hit \u003cC-w\u003e, a window with 'T -\u003e Move to a new tab' is shown\n    \" If you hit 'T' then ':wincmd T' is applied\n    \" Too, if you hit 'w' then ':wincmd w' is applied (no need to document everything)\n    cal KeyMap#Map('C-w'            , '\u003cC-w\u003e' , \"\u003cOneShot=wincmd\u003e\"  , ['n'])\n    cal KeyMap#Map(':Move to a new tab' , 'T'       , \"T\" , [])\n\n    \" Here a way to have a thousand of keybinds\n    \" It define a new keybind temporary layer,\n    \" '~' just say to not show the window which shows activated keybinds\n    cal KeyMap#Map('~Emacs C-x'    , '\u003cC-x\u003e' , '\u003cLayer\u003e' , ['n'])\n    cal KeyMap#Map(':Search file'    , '\u003cC-f\u003e' , '\u003cExitLayer\u003e:e! %:p:h/*' , ['n'])\n    ```\n   \u003c/details\u003e\u003cbr\u003e\n\n* Text to Speech dispatcher : keybinds and commands to make Vim speak\u003cbr\u003e\n    (require speech-dispatcher on linux - if you use Orca it shall be already installed)\n    ```vim\n    \"let g:speak_lang = \"fr\" \" automatically set  by detecting the spell lang\n    \"let g:speak_voice_type = \"female1\" \" default\n    ```\n    `:SpeakLine` speak (send text at) the current line (to speech-dispatcher).\u003cbr\u003e\n    `:SpeakWORD` speak the following word in the text; intended to be followed by W in order to read text word by word.\u003cbr\u003e\n    \u003cbr\u003e\n    Anyway, in a GVim just hit `\u003cC-s\u003e` (Ctrl + s) to toggle a screen reader mode.\n\n# Installation\nGet the repository.\n```sh\n# 'ui' is abitrary chosen for 'user interface'\nmkdir -p ~/.vim/pack/ui/start\ngit clone https://github.com/luffah/vim-accessibility.git ~/.vim/pack/ui/start/accessibility\n```\n```vim\npackloadall\n\n\" Examples\nlet mapleader=\",\"\nKeyMap $VIMPLUGINS/vim-accessibility/doc/samples/common.vimkm\nKeyMap $VIMPLUGINS/vim-accessibility/doc/samples/bepo.vimkm\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eMy Vim doesn't support +packages\u003c/summary\u003e\nIf you have an old version of Vim (\u003c 8), it is useless to create `~/.vim/pack/`. Just use the path where you install your plugins.\n\n```vim\n\n\" let $VIMPLUGINS = \u003cPath to directory containing your plugins\u003e\n\"\n\" [Optional]\n\" This allows to access to documentation and some syntax sugar.\n\" Add to runtime path\nset rtp+=$VIMPLUGINS/vim-accessibility\n\" Activate plugins\nfiletype indent plugin on\n\n\" [Required]\n\" Given plugins commands are only usable after initialization\n\" Sourcing the files, ensure KeyMap is known.\nso $VIMPLUGINS/vim-accessibility/loader.vim\n\" Examples\nlet mapleader=\",\"\nKeyMap $VIMPLUGINS/vim-accessibility/doc/samples/common.vimkm\nKeyMap $VIMPLUGINS/vim-accessibility/doc/samples/bepo.vimkm\n```\n\u003c/details\u003e\u003cbr\u003e\n\n# License\n[Vim](https://www.vim.org/) is distributed under [GPL-compatible Charityware License](https://www.gnu.org/licenses/vim-license.txt).\u003cbr\u003e\nThe content of this project itself is licensed under the [Creative Commons Attribution-ShareAlike 4.0](https://creativecommons.org/licenses/by-sa/4.0/) license,\u003cbr\u003e\nand source code contained in this repository is licensed under the [GPLv3 license](./LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluffah%2Fvim-accessibility","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluffah%2Fvim-accessibility","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluffah%2Fvim-accessibility/lists"}