retrovim 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.conda/retrovim.yaml +259 -0
- package/.conda/terax.icns +0 -0
- package/.conda/terax.ico +0 -0
- package/.conda/terax.png +0 -0
- package/.github/workflows/release.yml +95 -0
- package/.gitmodules +3 -0
- package/.npm/kanata_touchcursor.js +28 -0
- package/.npm/nvim.js +26 -0
- package/.npm/yazi.js +26 -0
- package/.npm/zsh.js +17 -0
- package/.pip/kanata_touchcursor/__init__.py +28 -0
- package/.pip/nvim/__init__.py +31 -0
- package/.pip/yazi/__init__.py +31 -0
- package/.pip/zsh/__init__.py +22 -0
- package/CHANGELOG.md +26 -0
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/kanata/touchcursor.kbd +164 -0
- package/nvim/init.lua +813 -0
- package/nvim/plugins/mini.nvim/.github/DISCUSSION_TEMPLATE/q-a.yml +72 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/bug-report.yml +136 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/nvim/plugins/mini.nvim/.github/ISSUE_TEMPLATE/feature-request.yml +75 -0
- package/nvim/plugins/mini.nvim/.github/PULL_REQUEST_TEMPLATE.md +2 -0
- package/nvim/plugins/mini.nvim/.github/workflows/quality-control.yml +150 -0
- package/nvim/plugins/mini.nvim/.pre-commit-config.yaml +20 -0
- package/nvim/plugins/mini.nvim/.stylua.toml +7 -0
- package/nvim/plugins/mini.nvim/.styluaignore +1 -0
- package/nvim/plugins/mini.nvim/CHANGELOG.md +1894 -0
- package/nvim/plugins/mini.nvim/CODE_OF_CONDUCT.md +132 -0
- package/nvim/plugins/mini.nvim/CONTRIBUTING.md +331 -0
- package/nvim/plugins/mini.nvim/LICENSE +21 -0
- package/nvim/plugins/mini.nvim/MAINTAINING.md +330 -0
- package/nvim/plugins/mini.nvim/Makefile +51 -0
- package/nvim/plugins/mini.nvim/README.md +261 -0
- package/nvim/plugins/mini.nvim/TESTING.md +1011 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/README.md +35 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/benchmark.sh +56 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-alpha.lua +21 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-original.lua +17 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_dashboard-starter.lua +18 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_empty.lua +4 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_starter-default.lua +7 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-alpha.lua +10 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-original.lua +7 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/init-files/init_startify-starter.lua +20 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/install.sh +10 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/make_summary.py +68 -0
- package/nvim/plugins/mini.nvim/benchmarks/starter/startup-summary.md +10 -0
- package/nvim/plugins/mini.nvim/colors/miniautumn.lua +55 -0
- package/nvim/plugins/mini.nvim/colors/minicyan.lua +95 -0
- package/nvim/plugins/mini.nvim/colors/minischeme.lua +95 -0
- package/nvim/plugins/mini.nvim/colors/minispring.lua +53 -0
- package/nvim/plugins/mini.nvim/colors/minisummer.lua +49 -0
- package/nvim/plugins/mini.nvim/colors/miniwinter.lua +51 -0
- package/nvim/plugins/mini.nvim/colors/randomhue.lua +16 -0
- package/nvim/plugins/mini.nvim/doc/mini-ai.txt +889 -0
- package/nvim/plugins/mini.nvim/doc/mini-align.txt +923 -0
- package/nvim/plugins/mini.nvim/doc/mini-animate.txt +937 -0
- package/nvim/plugins/mini.nvim/doc/mini-base16.txt +285 -0
- package/nvim/plugins/mini.nvim/doc/mini-basics.txt +359 -0
- package/nvim/plugins/mini.nvim/doc/mini-bracketed.txt +622 -0
- package/nvim/plugins/mini.nvim/doc/mini-bufremove.txt +123 -0
- package/nvim/plugins/mini.nvim/doc/mini-clue.txt +760 -0
- package/nvim/plugins/mini.nvim/doc/mini-cmdline.txt +392 -0
- package/nvim/plugins/mini.nvim/doc/mini-colors.txt +880 -0
- package/nvim/plugins/mini.nvim/doc/mini-comment.txt +230 -0
- package/nvim/plugins/mini.nvim/doc/mini-completion.txt +477 -0
- package/nvim/plugins/mini.nvim/doc/mini-cursorword.txt +105 -0
- package/nvim/plugins/mini.nvim/doc/mini-deps.txt +590 -0
- package/nvim/plugins/mini.nvim/doc/mini-diff.txt +661 -0
- package/nvim/plugins/mini.nvim/doc/mini-doc.txt +434 -0
- package/nvim/plugins/mini.nvim/doc/mini-extra.txt +856 -0
- package/nvim/plugins/mini.nvim/doc/mini-files.txt +1018 -0
- package/nvim/plugins/mini.nvim/doc/mini-fuzzy.txt +160 -0
- package/nvim/plugins/mini.nvim/doc/mini-git.txt +425 -0
- package/nvim/plugins/mini.nvim/doc/mini-hipatterns.txt +489 -0
- package/nvim/plugins/mini.nvim/doc/mini-hues.txt +420 -0
- package/nvim/plugins/mini.nvim/doc/mini-icons.txt +508 -0
- package/nvim/plugins/mini.nvim/doc/mini-indentscope.txt +485 -0
- package/nvim/plugins/mini.nvim/doc/mini-input.txt +932 -0
- package/nvim/plugins/mini.nvim/doc/mini-jump.txt +202 -0
- package/nvim/plugins/mini.nvim/doc/mini-jump2d.txt +525 -0
- package/nvim/plugins/mini.nvim/doc/mini-keymap.txt +449 -0
- package/nvim/plugins/mini.nvim/doc/mini-map.txt +717 -0
- package/nvim/plugins/mini.nvim/doc/mini-misc.txt +431 -0
- package/nvim/plugins/mini.nvim/doc/mini-move.txt +181 -0
- package/nvim/plugins/mini.nvim/doc/mini-notify.txt +434 -0
- package/nvim/plugins/mini.nvim/doc/mini-nvim.txt +431 -0
- package/nvim/plugins/mini.nvim/doc/mini-operators.txt +472 -0
- package/nvim/plugins/mini.nvim/doc/mini-pairs.txt +346 -0
- package/nvim/plugins/mini.nvim/doc/mini-pick.txt +1535 -0
- package/nvim/plugins/mini.nvim/doc/mini-sessions.txt +239 -0
- package/nvim/plugins/mini.nvim/doc/mini-snippets.txt +1291 -0
- package/nvim/plugins/mini.nvim/doc/mini-splitjoin.txt +536 -0
- package/nvim/plugins/mini.nvim/doc/mini-starter.txt +618 -0
- package/nvim/plugins/mini.nvim/doc/mini-statusline.txt +361 -0
- package/nvim/plugins/mini.nvim/doc/mini-surround.txt +863 -0
- package/nvim/plugins/mini.nvim/doc/mini-tabline.txt +151 -0
- package/nvim/plugins/mini.nvim/doc/mini-test.txt +966 -0
- package/nvim/plugins/mini.nvim/doc/mini-trailspace.txt +91 -0
- package/nvim/plugins/mini.nvim/doc/mini-visits.txt +937 -0
- package/nvim/plugins/mini.nvim/logo.png +0 -0
- package/nvim/plugins/mini.nvim/lua/mini/ai.lua +2244 -0
- package/nvim/plugins/mini.nvim/lua/mini/align.lua +2076 -0
- package/nvim/plugins/mini.nvim/lua/mini/animate.lua +2127 -0
- package/nvim/plugins/mini.nvim/lua/mini/base16.lua +1752 -0
- package/nvim/plugins/mini.nvim/lua/mini/basics.lua +772 -0
- package/nvim/plugins/mini.nvim/lua/mini/bracketed.lua +2013 -0
- package/nvim/plugins/mini.nvim/lua/mini/bufremove.lua +283 -0
- package/nvim/plugins/mini.nvim/lua/mini/clue.lua +2096 -0
- package/nvim/plugins/mini.nvim/lua/mini/cmdline.lua +1182 -0
- package/nvim/plugins/mini.nvim/lua/mini/colors.lua +2483 -0
- package/nvim/plugins/mini.nvim/lua/mini/comment.lua +586 -0
- package/nvim/plugins/mini.nvim/lua/mini/completion.lua +2094 -0
- package/nvim/plugins/mini.nvim/lua/mini/cursorword.lua +311 -0
- package/nvim/plugins/mini.nvim/lua/mini/deps.lua +1660 -0
- package/nvim/plugins/mini.nvim/lua/mini/diff.lua +1938 -0
- package/nvim/plugins/mini.nvim/lua/mini/doc.lua +1371 -0
- package/nvim/plugins/mini.nvim/lua/mini/extra.lua +2290 -0
- package/nvim/plugins/mini.nvim/lua/mini/files.lua +3145 -0
- package/nvim/plugins/mini.nvim/lua/mini/fuzzy.lua +356 -0
- package/nvim/plugins/mini.nvim/lua/mini/git.lua +1737 -0
- package/nvim/plugins/mini.nvim/lua/mini/hipatterns.lua +1042 -0
- package/nvim/plugins/mini.nvim/lua/mini/hues.lua +2088 -0
- package/nvim/plugins/mini.nvim/lua/mini/icons.lua +2254 -0
- package/nvim/plugins/mini.nvim/lua/mini/indentscope.lua +1158 -0
- package/nvim/plugins/mini.nvim/lua/mini/init.lua +427 -0
- package/nvim/plugins/mini.nvim/lua/mini/input.lua +2183 -0
- package/nvim/plugins/mini.nvim/lua/mini/jump.lua +609 -0
- package/nvim/plugins/mini.nvim/lua/mini/jump2d.lua +1244 -0
- package/nvim/plugins/mini.nvim/lua/mini/keymap.lua +880 -0
- package/nvim/plugins/mini.nvim/lua/mini/map.lua +1709 -0
- package/nvim/plugins/mini.nvim/lua/mini/misc.lua +969 -0
- package/nvim/plugins/mini.nvim/lua/mini/move.lua +509 -0
- package/nvim/plugins/mini.nvim/lua/mini/notify.lua +938 -0
- package/nvim/plugins/mini.nvim/lua/mini/operators.lua +1349 -0
- package/nvim/plugins/mini.nvim/lua/mini/pairs.lua +657 -0
- package/nvim/plugins/mini.nvim/lua/mini/pick.lua +3876 -0
- package/nvim/plugins/mini.nvim/lua/mini/sessions.lua +689 -0
- package/nvim/plugins/mini.nvim/lua/mini/snippets.lua +2828 -0
- package/nvim/plugins/mini.nvim/lua/mini/splitjoin.lua +1132 -0
- package/nvim/plugins/mini.nvim/lua/mini/starter.lua +1599 -0
- package/nvim/plugins/mini.nvim/lua/mini/statusline.lua +686 -0
- package/nvim/plugins/mini.nvim/lua/mini/surround.lua +2388 -0
- package/nvim/plugins/mini.nvim/lua/mini/tabline.lua +564 -0
- package/nvim/plugins/mini.nvim/lua/mini/test.lua +2516 -0
- package/nvim/plugins/mini.nvim/lua/mini/trailspace.lua +215 -0
- package/nvim/plugins/mini.nvim/lua/mini/visits.lua +1577 -0
- package/nvim/plugins/mini.nvim/readmes/mini-ai.md +190 -0
- package/nvim/plugins/mini.nvim/readmes/mini-align.md +203 -0
- package/nvim/plugins/mini.nvim/readmes/mini-animate.md +214 -0
- package/nvim/plugins/mini.nvim/readmes/mini-base16.md +198 -0
- package/nvim/plugins/mini.nvim/readmes/mini-basics.md +184 -0
- package/nvim/plugins/mini.nvim/readmes/mini-bracketed.md +193 -0
- package/nvim/plugins/mini.nvim/readmes/mini-bufremove.md +139 -0
- package/nvim/plugins/mini.nvim/readmes/mini-clue.md +260 -0
- package/nvim/plugins/mini.nvim/readmes/mini-cmdline.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-colors.md +169 -0
- package/nvim/plugins/mini.nvim/readmes/mini-comment.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-completion.md +217 -0
- package/nvim/plugins/mini.nvim/readmes/mini-cursorword.md +137 -0
- package/nvim/plugins/mini.nvim/readmes/mini-deps.md +271 -0
- package/nvim/plugins/mini.nvim/readmes/mini-diff.md +289 -0
- package/nvim/plugins/mini.nvim/readmes/mini-doc.md +198 -0
- package/nvim/plugins/mini.nvim/readmes/mini-extra.md +158 -0
- package/nvim/plugins/mini.nvim/readmes/mini-files.md +247 -0
- package/nvim/plugins/mini.nvim/readmes/mini-fuzzy.md +134 -0
- package/nvim/plugins/mini.nvim/readmes/mini-git.md +168 -0
- package/nvim/plugins/mini.nvim/readmes/mini-hipatterns.md +176 -0
- package/nvim/plugins/mini.nvim/readmes/mini-hues.md +285 -0
- package/nvim/plugins/mini.nvim/readmes/mini-icons.md +183 -0
- package/nvim/plugins/mini.nvim/readmes/mini-indentscope.md +191 -0
- package/nvim/plugins/mini.nvim/readmes/mini-input.md +163 -0
- package/nvim/plugins/mini.nvim/readmes/mini-jump.md +161 -0
- package/nvim/plugins/mini.nvim/readmes/mini-jump2d.md +197 -0
- package/nvim/plugins/mini.nvim/readmes/mini-keymap.md +205 -0
- package/nvim/plugins/mini.nvim/readmes/mini-map.md +191 -0
- package/nvim/plugins/mini.nvim/readmes/mini-misc.md +145 -0
- package/nvim/plugins/mini.nvim/readmes/mini-move.md +163 -0
- package/nvim/plugins/mini.nvim/readmes/mini-notify.md +175 -0
- package/nvim/plugins/mini.nvim/readmes/mini-operators.md +193 -0
- package/nvim/plugins/mini.nvim/readmes/mini-pairs.md +158 -0
- package/nvim/plugins/mini.nvim/readmes/mini-pick.md +340 -0
- package/nvim/plugins/mini.nvim/readmes/mini-sessions.md +164 -0
- package/nvim/plugins/mini.nvim/readmes/mini-snippets.md +373 -0
- package/nvim/plugins/mini.nvim/readmes/mini-splitjoin.md +194 -0
- package/nvim/plugins/mini.nvim/readmes/mini-starter.md +176 -0
- package/nvim/plugins/mini.nvim/readmes/mini-statusline.md +155 -0
- package/nvim/plugins/mini.nvim/readmes/mini-surround.md +190 -0
- package/nvim/plugins/mini.nvim/readmes/mini-tabline.md +156 -0
- package/nvim/plugins/mini.nvim/readmes/mini-test.md +175 -0
- package/nvim/plugins/mini.nvim/readmes/mini-trailspace.md +137 -0
- package/nvim/plugins/mini.nvim/readmes/mini-visits.md +243 -0
- package/nvim/plugins/mini.nvim/scripts/dual_log.sh +13 -0
- package/nvim/plugins/mini.nvim/scripts/dual_push.sh +15 -0
- package/nvim/plugins/mini.nvim/scripts/dual_release.sh +102 -0
- package/nvim/plugins/mini.nvim/scripts/dual_sync.sh +115 -0
- package/nvim/plugins/mini.nvim/scripts/init-deps-example.lua +59 -0
- package/nvim/plugins/mini.nvim/scripts/lint-filename-length.sh +16 -0
- package/nvim/plugins/mini.nvim/scripts/lintcommit-ci.sh +18 -0
- package/nvim/plugins/mini.nvim/scripts/lintcommit.lua +393 -0
- package/nvim/plugins/mini.nvim/scripts/minidoc.lua +57 -0
- package/nvim/plugins/mini.nvim/scripts/minimal_init.lua +28 -0
- package/nvim/plugins/mini.nvim/scripts/minitest.lua +4 -0
- package/package.json +16 -0
- package/pyproject.toml +43 -0
- package/yazi/init.lua +12 -0
- package/yazi/keymap.toml +114 -0
- package/yazi/lesskey +5 -0
- package/yazi/plugins/bookmarks.yazi/main.lua +86 -0
- package/yazi/plugins/cd-git-root.yazi/main.lua +31 -0
- package/yazi/plugins/smart-enter.yazi/main.lua +11 -0
- package/yazi/theme.toml +26 -0
- package/yazi/yazi.toml +15 -0
- package/zsh/.zshrc +145 -0
- package/zsh/starship.toml +20 -0
- package/zsh/zsh-patina.toml +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
<img width="1366" height="768" alt="screenshot" src="https://github.com/user-attachments/assets/72895442-cdaa-445c-aefe-6c487d89ba13" />
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
terax-terminal preconfigured with neovim IDE + yazi builtin plugins + zsh builtin plugins + kanata keyboard layout
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**[<kbd> <br> Install <br> </kbd>][Install]**
|
|
10
|
+
**[<kbd> <br> Zsh Keymaps <br> </kbd>][Zsh Keymaps]**
|
|
11
|
+
**[<kbd> <br> Keyboard-Layout <br> </kbd>][Keyboard-Layout]**
|
|
12
|
+
|
|
13
|
+
[Install]: #installation
|
|
14
|
+
[Zsh Keymaps]: #zsh-keymaps
|
|
15
|
+
[Keyboard-Layout]: #if-touchcursor-keyboard-layout-started
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<details open><summary>Table of Contents</summary>
|
|
22
|
+
|
|
23
|
+
1. Neovim keymaps
|
|
24
|
+
- [Neovim text object that starts with a/i](#neovim-text-object-that-starts-with-ai)
|
|
25
|
+
- [Neovim text-object/motions/operators that starts with g](#neovim-text-objectmotionsoperators-that-starts-with-g)
|
|
26
|
+
2. Terminal
|
|
27
|
+
- [zsh keymaps](#zsh-keymaps)
|
|
28
|
+
3. [If Touchcursor Keyboard Layout Started](#if-touchcursor-keyboard-layout-started)
|
|
29
|
+
4. Installation
|
|
30
|
+
- [Install](#installation)
|
|
31
|
+
5. [Related projects](#related-projects)
|
|
32
|
+
|
|
33
|
+
</details>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Neovim text object that starts with `a`/`i`
|
|
38
|
+
|
|
39
|
+
<details open><summary></summary>
|
|
40
|
+
|
|
41
|
+
| text-object keymap | repeat action key | finds and autojumps? | text-object name | description | inner / outer |
|
|
42
|
+
| :--------------------------------: | :---------------: | :------------------: | :--------------- | :---------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------- |
|
|
43
|
+
| `ia`, `aa` | `.` | yes | \_argument | whole argument/parameter of a function | outer includes comma |
|
|
44
|
+
| `ib`, `ab` | `.` | yes | \_braces | find the nearest inside of `()` `[]` `{}` | outer includes braces |
|
|
45
|
+
| `iB`, `aB` | `.` | yes | \_brackets | find the nearest inside of `{}` `:help iB` | outer includes brackets |
|
|
46
|
+
| `id`, `ad` | `.` | yes | diagnostic | find errors, warnings, info or hints (only works inside neovim and requires LSP) | outer same as inner |
|
|
47
|
+
| `ie`, `ae` | `.` | | line | from start to end of line without beginning whitespaces (line wise) | outer includes begining whitespaces |
|
|
48
|
+
| `if`, `af` | `.` | yes | \_function_call | like `function args` but only when a function is called | outer includes the function called |
|
|
49
|
+
| `ih`, `ah` | `.` | yes | \_html_attribute | attribute in html/xml like `href="foobar.com"` | inner is only the value inside the quotes trailing comma and space |
|
|
50
|
+
| `ii`, `ai` | `.` | | indent_noblanks | surrounding lines with same or higher indentation delimited by blanklines | outer includes line above |
|
|
51
|
+
| `iI`, `aI` | `.` | | indent | surrounding lines with same or higher indentation | outer includes line above and below |
|
|
52
|
+
| `ik`, `ak` | `.` | yes | \_key | key of key-value pair, or left side of a assignment | outer includes spaces |
|
|
53
|
+
| `il`, `al` | `.` | yes | +last | go to last mini.ai text-object (which start with `_`) | requires `i`/`a` example `vilk` |
|
|
54
|
+
| `im`, `am` | `.` | yes | \_number | numbers, similar to `<C-a>` | inner: only pure digits, outer: number including minus sign and decimal point |
|
|
55
|
+
| `in`, `an` | `.` | yes | +next | go to Next mini.ai text-object (which start with `_`) | requires `i`/`a` example `viNk` |
|
|
56
|
+
| `io`, `ao` | `.` | yes | \_whitespaces | whitespace beetween characters | outer includes surroundings |
|
|
57
|
+
| `ip`, `ap` | `.` | | paragraph | blanklines can also be treat as paragraphs when focused on a blankline | outer includes below lines |
|
|
58
|
+
| `iq`, `aq` | `.` | yes | \_quotes | inside of `` ` ` `` or `' '` or `" "` | outer includes openning and closing quotes |
|
|
59
|
+
| `is`, `as` | `.` | | sentence | sentence delimited by dots of blanklines `:help sentence` | outer includes spaces |
|
|
60
|
+
| `it`, `at` | `.` | yes | \_tag | inside of a html/jsx tag | outer includes openning and closing tags |
|
|
61
|
+
| `iu`, `au` | `.` | | \_subword | like `iw`, but treating `-`, `_`, and `.` as word delimiters _and_ only part of camelCase | outer includes trailing `_`,`-`, or space |
|
|
62
|
+
| `iv`, `av` | `.` | yes | \_value | value of key-value pair, or right side of a assignment | outer includes trailing commas or semicolons or spaces |
|
|
63
|
+
| `iw`, `aw` | `.` | | word | from cursor to end of word (delimited by punctuation or space) | outer includes whitespace ending |
|
|
64
|
+
| `iW`, `aW` | `.` | | WORD | from cursor to end of WORD (includes punctuation) | outer includes whitespace ending |
|
|
65
|
+
| `ix`, `ax` | `.` | yes | \_Hex | hexadecimal number or color | outer includes hash `#` |
|
|
66
|
+
| `i?`, `a?` | `.` | yes | \_user_prompt | will ask you for enter the delimiters of a text object (useful for dot repeteability) | outer includes surroundings |
|
|
67
|
+
| `i(`, `i)`, `a(`, `a)` | `.` | yes | `(` or `)` | inside `()` | outer includes surroundings |
|
|
68
|
+
| `i[`, `i]`, `a[`, `a]` | `.` | yes | `[` or `]` | inside `[]` | outer includes surroundings |
|
|
69
|
+
| `i{`, `i}`, `a{`, `a}` | `.` | yes | `{` or `}` | inside `{}` | outer includes surroundings |
|
|
70
|
+
| `i<`, `i>`, `a<`, `a>` | `.` | yes | `<` or `>` | inside `<>` | outer includes surroundings |
|
|
71
|
+
| `` i` ``, `` a` `` | `.` | yes | apostrophe | inside `` ` ` `` | outer includes surroundings |
|
|
72
|
+
| `i<punctuation>`, `a<punctuation>` | `.` | yes | `<punctuation>` | inside `<punctuation><punctuation>` | outer includes surroundings |
|
|
73
|
+
|
|
74
|
+
</details>
|
|
75
|
+
|
|
76
|
+
## Neovim text-object/motions/operators that starts with `g`
|
|
77
|
+
|
|
78
|
+
<details open><summary></summary>
|
|
79
|
+
|
|
80
|
+
| keymap | mode | repeat action key | repeat jump key | text-object description | `n`ormal mode = `n` = operator | `o`perating-pending mode = `o` = text-object | `v`isual mode = `v` = `x` = motion | examples in normal mode |
|
|
81
|
+
| :---------------: | :---------: | :---------------: | :--------------------: | :------------------------------------------------------------------------ | :--------------------------------------- | :------------------------------------------- | :-------------------------------------- | :---------------------------------------------------------------------------------- |
|
|
82
|
+
| `[c` / `]c` | `n`,`o`,`x` | `.` | | previous/next comment | finds and jumps | jumps | uses selection | `v]c` selects from cursor position until next comment |
|
|
83
|
+
| `[d` / `]d` | `n`,`o`,`x` | `.` | | previous/next diagnostic | finds and jumps | jumps | uses selection | `v]d` selects from cursor position until next diagnostic |
|
|
84
|
+
| `[h` / `]h` | `n`,`o`,`x` | `.` | | previous/next git hunk | finds and jumps | jumps | uses selection | `v]h` selects from cursor position until next git hunk |
|
|
85
|
+
| `[i` / `]i` | `n`,`o`,`x` | `.` | | previous/next indent | finds and jumps | jumps | uses selection | `v]i` selects from cursor position until next indent |
|
|
86
|
+
| `g[`/`g]` | `n`,`o`,`x` | `.` | | +prev/+next textobj (only textobj with `_` prefix) | followed by text-object | finds and jumps | uses selection | `g]q` next end of quotation |
|
|
87
|
+
| `g\` / `g\|` | `n`,`o`,`x` | `.` | `\` / `\|` | +end/+start of textobj (any inner/outer textobj) | followed by text-object | finds and jumps | uses selection (`\` / `\|` to reselect) | `dg\iq` delete until inner end of quotation (`.` to repeat) |
|
|
88
|
+
| `qq ... q` | `n`,`x` | `.` | `\` or `@q` + `@@` | repeats ... macro | followed by text-object | | selects from cursor position | `qqviqq` selects quotation (`\` to repeat) |
|
|
89
|
+
| `qw ... q` | `n`,`x` | `.` | `\|` or `@w` + `@@` | repeats ... macro | followed by text-object | | selects from cursor position | `qwdiqq` delete inner quotation (`\| ` to repeat) |
|
|
90
|
+
| `g;`/`g,` | `n` | | | go backward/forward in `:changes` | jumps | | | `g;` go to last change |
|
|
91
|
+
| `g.` | `n`,`o`,`x` | | | jump to last change | jumps | won't jump | uses selection | `vg.` selects from cursor position until last change |
|
|
92
|
+
| `ga` | `n`,`x` | | | +align | followed by textobject/motion | | uses selected region | `gaip=` or `vipga=` aligns a paragraph by `=` |
|
|
93
|
+
| `gb` | `n`,`x` | `.` | | +blackhole register | followed by textobject/motion | | deletes selection | `gbip` or `vipgb` deletes a paragraph without copying |
|
|
94
|
+
| `gB` | `n`,`x` | `.` | | blackhole linewise | text-object not required | | deletes line | `gB.` deletes two lines without saving it in the register |
|
|
95
|
+
| `gc` | `n`,`o`,`x` | `.` | | +comment (`vgc` in normal mode will select a block comment) | followed by textobject/motion | won't jump | uses selection | `gcip` or `vipgc` comments a paragraph |
|
|
96
|
+
| `gC` | `n`,`o`,`x` | `.` | | block comment (supports selection `vgC` or just `gC`) | select text-object under cursor | won't jump | reselects | `vgC` selects current block of comment |
|
|
97
|
+
| `gd` | `n` | | | go to definition | jumps | | | `gd` go to definition of word under cursor |
|
|
98
|
+
| `gD` | `x` | | | git diff/hunk (vscode selects from cursor position to end of diff) | | won't jump | reselects | `vgD` selects modified code |
|
|
99
|
+
| `ge`/`gE` | `n`,`o`,`x` | | | previous end of word/WORD (`WORD` omits punctuation) | jumps | uses cursor position | uses selection | `vge` selects from cursor position until previous end of word |
|
|
100
|
+
| `gf` | `n`,`x` | | | go to file under cursor | jumps | | uses selection | `gf` open in a tab the path under cursor |
|
|
101
|
+
| `gg`/`G` | `n`,`o`,`x` | `.` | | first/last line | jumps | uses cursor position | uses selection | `vgg` selects until first line |
|
|
102
|
+
| `gi` | `n`,`x` | | | last position of cursor in insert mode | finds and jumps | | uses selection | `vgi` selects until last insertion |
|
|
103
|
+
| `gj`/`gk` | `n`,`o`,`x` | `.` | | go down/up when wrapped | jumps | uses cursor position | uses selection | `vgj` selects one line down |
|
|
104
|
+
| `gJ` | `n`,`x` | `.` | | join below lines | joins | | uses selection | `vgJ` joins selected lines into one line |
|
|
105
|
+
| `gm` | `n`,`x` | | | +multiply (duplicate text) operator | | won't jump | uses selection | `gmap` or `vapgm` duplicates paragraph without replacing clipboard |
|
|
106
|
+
| `gM` | `n`,`x` | | | go to middle line | jumps | | uses selection | `vgM` selects until middle of the line |
|
|
107
|
+
| `gp`/`gn` | `n`,`o`,`x` | `.` | | prev/next find | text-object not required | finds and jumps | uses selection | `cgn???` replaces last search with `???` forwardly |
|
|
108
|
+
| `go` | `x` | | | jsx/tsx comment (only inside neovim) | | | uses selection | `vipgt` comments out a paragraph with `{/* */}` |
|
|
109
|
+
| `gq` | `n`,`x` | `.` | | +format selection/comments 80chars (LSP overrides it) | requires a textobject | | applies to selection | `gqip` or `vipgq` formats a paragraph |
|
|
110
|
+
| `gr` | `n`,`x` | `.` | | +replace (with register) operator | followed by text-object/motion | | applies to selection | `griw` or `viwgr` replaces word with register (yanked text) |
|
|
111
|
+
| `gs` | `n`,`x` | `.` | | +sort Operator | followed by text-object/motion | | uses selection | `gsip` or `vipgs` sorts a paragraph |
|
|
112
|
+
| `gS` | `n`,`x` | `.` | | split/join arguments | toggles inside `{}`,`[]`,`()` | | followed by operator | `vipgS` joins selected lines in one line |
|
|
113
|
+
| `gu`/`gU` | `n`,`x` | `.` | | +to lowercase/uppercase | requires a text-object | | applies to selection | `gUiw` (neovim and cvim only) or `viwgU` uppercase a word |
|
|
114
|
+
| `gv` | `n`,`x` | | | last selected | finds and jumps | | reselects | `vgv` selects last selection |
|
|
115
|
+
| `gw` | `n`,`x` | `.` | | split/join comments/lines 80chars (keeps cursor position) | requires a text-object | | applies to selection | `gwip` or `vipgw` split/join a paragraph limited by 80 characters |
|
|
116
|
+
| `gx` | `n`,`x` | `.` | | +exchange (text) Operator | followed by text-object/motion | | uses selection | `gxiw` or `viwgx` exchanges word with another `gxiw` or `viwgx` or `.` |
|
|
117
|
+
| `gy`/`gY` | `n` | `.` | | redo register (dot to paste forward/bacward) | paste | | | `gy.....` paste deleted lines by history |
|
|
118
|
+
| `g-`/`g+` | `n`,`x` | `.` | | decrement/increment number | selects number under cursor | | uses selected number | `g+..` or `3g+` increments by 3 |
|
|
119
|
+
| `g<Up>`/`g<Down>` | `n`,`x` | | | numbers ascending/descending | selects number under cursor | | uses selected number | `g<Up>` increases selected numbers ascendingly |
|
|
120
|
+
| `=` | `n`,`x` | `.` | | +autoindent | followed by text-object | | uses selection | `==` autoindents line |
|
|
121
|
+
| `<`/`>` | `n`,`x` | `.` | | +indent left/right | followed by text-object | | uses selection | `<<` indents to left a line |
|
|
122
|
+
| `0`/`$` | `n`,`o`,`x` | `.` | | start/end of line | jumps | | uses selection | `d$j.` deletes two end-of-lines |
|
|
123
|
+
| `^` | `n`,`o`,`x` | `.` | | start of line (non-blankline) | jumps | | uses selection | `d^` deletes until start of line (after whitespace) |
|
|
124
|
+
| `%` | `n`,`o`,`x` | | | matching character: '()', '{}', '[]' | finds and jumps | | finds and jumps | `d%` deletes until bracket |
|
|
125
|
+
| `(`/`)` | `n`,`o`,`x` | `.` | | prev/next sentence | jumps | | uses selection | `d(.` deletes until start of sentence (two times) |
|
|
126
|
+
| `{`/`}` | `n`,`o`,`x` | `.` | | prev/next empty line (before a paragraph) | jumps | | uses selection | `d{.` deletes until next empty line (two times) |
|
|
127
|
+
| `[[`/`]]` | `n`,`o`,`x` | `.` | | prev/next section | jumps | | uses selection | `d[[` deletes until start of section |
|
|
128
|
+
| `b`/`w` | `n`,`o`,`x` | `.` | | prev/next word | jumps | | uses selection | `db` deletes until start of word |
|
|
129
|
+
| `B`/`W` | `n`,`o`,`x` | `.` | | prev/next WORD | jumps | | uses selection | `dW.` deletes 2 WORDS |
|
|
130
|
+
| `e`/`E` | `n`,`o`,`x` | `.` | | end of word/WORD | jumps | | uses selection | `de` deletes until end of word |
|
|
131
|
+
| `/` | `n`,`o`,`x` | `.` | | search with labels like [flash.nvim](https://github.com/folke/flash.nvim) | jumps | finds and jumps | uses selection | `d/` then `search` then `label` to delete `c/` to change `v/` to select `/` to jump |
|
|
132
|
+
| `f`/`F` | `n`,`o`,`x` | `.` | `;`forward `,`backward | move to next/prev char (`f` forward, `F` backward for vscode-neovim) | jumps | | uses selection | `df,` deletes until a next `,` |
|
|
133
|
+
| `t`/`T` | `n`,`o`,`x` | `.` | `;`forward `,`backward | move before next/prev char (`t` forward, `T` backward for vscode-neovim) | jumps | | uses selection | `dt,` deletes before next `,` |
|
|
134
|
+
| `s` | `n`,`x` | `.` | | +surround (followed by a=add, d=delete, r=replace) | followed by textobject/motion (only add) | | uses selection (only add) | `saiw"` or `viwsa"` adds `"` to word, `sd"` deletes `"`, `sr"'` replaces `"` |
|
|
135
|
+
| `U` | `n`,`x` | | `U` | whichkey repeater (inside neovim repeats `:<command>` like macros) | | | | `<s-space>gjUUU` repeats next-git-change (`:normal A,jkj` end of line comma) |
|
|
136
|
+
| `Y` | `n`,`x` | | | yank until end of line | | | uses selection | `v^Y` yanks line |
|
|
137
|
+
| `<space><space>p` | `n`,`x` | `.` | | Paste after (secondary clipboard) | | | uses selection | `viw<space><space>p` replaces word with a second clipboard |
|
|
138
|
+
| `<space><space>P` | `n`,`x` | `.` | | Paste before (secondary clipboard) | | | uses selection | `viw<space><space>P` replaces word with a second clipboard |
|
|
139
|
+
| `<space><space>y` | `n`,`x` | | | yank (secondary clipboard) | | | uses selection | `viw<space><space>y` yanks word using the second clipboard |
|
|
140
|
+
| `<space><space>Y` | `n`,`x` | | | yank until end of line (secondary clipboard) | | | uses selection | `v<space><space>Y` yanks until end of line using the second clipboard |
|
|
141
|
+
|
|
142
|
+
</details>
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## zsh keymaps
|
|
147
|
+
|
|
148
|
+
<details open><summary></summary>
|
|
149
|
+
|
|
150
|
+
| keymap | description |
|
|
151
|
+
| :-----------------: | :--------------------------------------------------------- |
|
|
152
|
+
| `<tab>` | show (dash/path) options or complete path |
|
|
153
|
+
| `<tab><tab>` | enter completion menu |
|
|
154
|
+
| `<esc><esc>` | tmux-copy-mode-like / normal-mode (inside neovim terminal) |
|
|
155
|
+
| `shift+escape` | tmux-copy-mode-like / normal-mode (inside neovim terminal) |
|
|
156
|
+
| `nvim<enter>` | open retronvim's neovim IDE (`<space>` to open whichkey) |
|
|
157
|
+
| `y<enter>` | open yazi (changes directory on exit) |
|
|
158
|
+
| `alt+o` or `<esc>o` | open yazi (even while writing commands) |
|
|
159
|
+
| `alt+h` or `<esc>` | enter vim-mode |
|
|
160
|
+
| `alt+l` | complete inline/ghost suggestion and enter vim-mode |
|
|
161
|
+
| `alt+j` | prev shell history and enter vim-mode |
|
|
162
|
+
| `alt+k` | next shell history and enter vim-mode |
|
|
163
|
+
| `Up` | prev shell history |
|
|
164
|
+
| `Down` | next shell history |
|
|
165
|
+
| `ctrl+r` | search history with fzf |
|
|
166
|
+
| `ctrl+l` | clear screen |
|
|
167
|
+
| `ctrl+alt+l` | clear screen (inside neovim terminal or vscode terminal) |
|
|
168
|
+
| `ctrl+d` | exit signal |
|
|
169
|
+
| `ctrl+c` | cancel signal |
|
|
170
|
+
|
|
171
|
+
</details>
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## If Touchcursor Keyboard Layout Started
|
|
176
|
+
|
|
177
|
+
<details open><summary></summary>
|
|
178
|
+
|
|
179
|
+
**layer qwerty**
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
@grl 1 2 3 4 5 6 7 8 9 0 - = @bsp
|
|
183
|
+
tab q w @e r t y u i o p [ ] ret
|
|
184
|
+
@cap a @s @d f g @h @j @k @l @; ' \
|
|
185
|
+
lsft ret z x c v b n m , . / rsft
|
|
186
|
+
lctl lmet @alt @spc @sft rmet rctl
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**layer touchcursor** (press and hold space to enter the layer)
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
_ f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 _
|
|
193
|
+
_ @M↑ del @m↑ @clr @m🡠 _ _ _ _ _ _ _ _
|
|
194
|
+
_ @M↓ @bsp @m↓ spc @m🡪 @🡠 @↓ @↑ @🡪 @yaz _ _
|
|
195
|
+
_ _ _ _ caps @¿ @ñ pgup home end pgdn _ _
|
|
196
|
+
_ _ _ _ _ _ _
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
| key | description | example / keymap |
|
|
200
|
+
| :--: | :---------------------------------------------------------------------------------------- | :--------------------------------: |
|
|
201
|
+
| @grl | tap: backtick/grave, hold and press `1` = qwerty layer, hold and press `2` = dvorak layer | `` `+2 = dvorak `` |
|
|
202
|
+
| @cap | tap for escape, hold for LeftCtrl | `cap+l = ctrl+l` |
|
|
203
|
+
| @sft | tap for backspace, hold for LeftShift | `RAlt+l = shift+l` |
|
|
204
|
+
| @alt | tap for middle click, hold for LeftAlt | `LAlt+l = LAlt+l` |
|
|
205
|
+
| @spc | tap for space, hold for touchcursor layer, release for qwerty layer | `space+jj = DownArrow + DownArrow` |
|
|
206
|
+
| @; | tap for semicolon, hold for ctrl | `;+click = OpenInNewTab (chrome)` |
|
|
207
|
+
| @clr | clear screen on any shell | `space+r` |
|
|
208
|
+
| @¿ | unicode ¿ | `space+v` |
|
|
209
|
+
| @ñ | unicode ñ | `space+b` |
|
|
210
|
+
| @m🡠 | mouse scrolling left | `space+t` |
|
|
211
|
+
| @m🡪 | mouse scrolling right | `space+g` |
|
|
212
|
+
| @m↑ | mouse scrolling up | `space+e` |
|
|
213
|
+
| @m↓ | mouse scrolling down | `space+d` |
|
|
214
|
+
| @M↑ | mouse fast scrolling up | `space+q` |
|
|
215
|
+
| @M↓ | mouse fast scrolling down | `space+a` |
|
|
216
|
+
| spc | space key | `space+f` |
|
|
217
|
+
| bspc | backspace key | `space+s` |
|
|
218
|
+
| home | home key | `space+m` |
|
|
219
|
+
| end | end key | `space+,` |
|
|
220
|
+
| pgup | pageup key | `space+n` |
|
|
221
|
+
| pgdn | pagedown key | `space+.` |
|
|
222
|
+
| @🡠 | left arrow key | `space+h` |
|
|
223
|
+
| @↓ | down arrow key | `space+j` |
|
|
224
|
+
| @↑ | up arrow key | `space+k` |
|
|
225
|
+
| @🡪 | right arrow key | `space+l` |
|
|
226
|
+
| caps | toggles capslock | `space+c` |
|
|
227
|
+
|
|
228
|
+
</details>
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Installation
|
|
233
|
+
|
|
234
|
+
<details open><summary></summary>
|
|
235
|
+
|
|
236
|
+
**Install RetroVim on any terminal or shell**
|
|
237
|
+
|
|
238
|
+
- Powershell (windows):
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
irm pixi.sh/install.ps1 | iex
|
|
242
|
+
pixi g install retrovim -c retronvim -c conda-forge
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
- SSH/Bash/Zsh (linux/macos):
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
sh <(curl https://pkgx.sh) pixi g install retrovim -c retronvim -c conda-forge --with pixi
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
- npm + any package manager:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# brew install bat eza fzf git kanata lazygit mise neovim ripgrep starship yazi zsh zsh-patina
|
|
255
|
+
# pixi g install bat eza fzf git kanata lazygit mise nvim ripgrep starship yazi zsh zsh-patina -c retronvim -c conda-forge
|
|
256
|
+
|
|
257
|
+
npm install -g retronvim
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
- pip + any package manager:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# brew install bat eza fzf git kanata lazygit mise neovim ripgrep starship yazi zsh zsh-patina
|
|
264
|
+
# pixi g install bat eza fzf git kanata lazygit mise nvim ripgrep starship yazi zsh zsh-patina -c retronvim -c conda-forge
|
|
265
|
+
|
|
266
|
+
pip install retronvim
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
**Plugins**
|
|
270
|
+
|
|
271
|
+
- RetroVim.conda is shipped with
|
|
272
|
+
- [`bat`](https://github.com/sharkdp/bat)
|
|
273
|
+
- [`eza`](https://github.com/eza-community/eza)
|
|
274
|
+
- [`firacode_nerd_font`](https://github.com/ryanoasis/nerd-fonts)
|
|
275
|
+
- [`fd`](https://github.com/sharkdp/fd)
|
|
276
|
+
- [`fzf`](https://github.com/junegunn/fzf)
|
|
277
|
+
- [`git`](https://github.com/git-for-windows/git)
|
|
278
|
+
- [`kanata`](https://github.com/jtroo/kanata)
|
|
279
|
+
- [`lazygit`](https://github.com/jesseduffield/lazygit)
|
|
280
|
+
- [`mise`](https://github.com/jdx/mise)
|
|
281
|
+
- [`neovim`](https://neovim.io)
|
|
282
|
+
- [`pixi`](https://github.com/prefix-dev/pixi)
|
|
283
|
+
- [`ripgrep`](https://github.com/BurntSushi/ripgrep)
|
|
284
|
+
- [`starship`](https://github.com/starship/starship)
|
|
285
|
+
- [`terax`](https://github.com/crynta/terax-ai)
|
|
286
|
+
- [`yazi`](https://github.com/sxyazi/yazi)
|
|
287
|
+
- [`zerobrew`](https://github.com/lucasgelfond/zerobrew)
|
|
288
|
+
- [`zsh`](https://github.com/zsh-users/zsh)
|
|
289
|
+
- [`zsh-patina`](https://github.com/michel-kraemer/zsh-patina)
|
|
290
|
+
- [`7zip`](https://github.com/ip7z/7zip)
|
|
291
|
+
|
|
292
|
+
- RetroVim/nvim comes with an installer for
|
|
293
|
+
- [`mini.nvim`](https://github.com/echasnovski/mini.nvim) (shipped as git-submodule)
|
|
294
|
+
- [`copilot`](https://github.com/github/copilot-language-server-release) (shipped with sidekick.nvim)
|
|
295
|
+
- [`flash.nvim`](https://github.com/folke/flash.nvim)
|
|
296
|
+
- [`neotype`](https://github.com/rodolfo-arg/neotype)
|
|
297
|
+
- [`nvim-lspconfig`](https://github.com/neovim/nvim-lspconfig)
|
|
298
|
+
- [`sidekick.nvim`](https://github.com/folke/sidekick.nvim) (free copilot nes + agents integration like gemini-cli)
|
|
299
|
+
- [`supermaven`](https://github.com/supermaven-inc/supermaven-nvim) (free copilot)
|
|
300
|
+
|
|
301
|
+
- RetroVim/nvim searches for vscode extensions's snippets in `~/.*/extensions/*/snippets/*code-snippets`
|
|
302
|
+
(alphabetically first `~/.antigravity` otherwise `~/.cursor` otherwise `~/.vscode` otherwise `~/.windsurf`)
|
|
303
|
+
and automatically adds them to `mini.completion`
|
|
304
|
+
|
|
305
|
+
- if you see: `No contains a valid JSON object` then to fix it use biome linter usually it is extras commas or comments
|
|
306
|
+
- if you see: `File is absent or not readable` then delete the file to make `mini.snippet` work
|
|
307
|
+
|
|
308
|
+
- `Touchcursor Keyboard Layout` on `MacOs` requires `zb install karabiner`
|
|
309
|
+
|
|
310
|
+
- `terax` on `archlinux` requires `pacman -S webkit2gtk-4.1`
|
|
311
|
+
|
|
312
|
+
- `terax` on `debian` requires `apt install webkit2gtk-4.1-dev`
|
|
313
|
+
|
|
314
|
+
- `terax` on `linux` requires `chsh --shell /bin/zsh` (sets zsh as default shell)
|
|
315
|
+
|
|
316
|
+
- `terax` requires the setting `Font family: FiraCode Nerd Font` for icons support (`pixi exec --channel retronvim -- firacode-nerdfont-installer` to install firacode font)
|
|
317
|
+
|
|
318
|
+
</details>
|
|
319
|
+
|
|
320
|
+
## Related projects
|
|
321
|
+
|
|
322
|
+
<details open><summary></summary>
|
|
323
|
+
|
|
324
|
+
- [yeferyv/RetroNvim](https://github.com/yeferyv/retronvim)
|
|
325
|
+
vscode extension with minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup
|
|
326
|
+
|
|
327
|
+
- [yeferyv/dotfiles](https://github.com/yeferyv/dotfiles)
|
|
328
|
+
retronvim + [hyprland](https://hypr.land) setup
|
|
329
|
+
|
|
330
|
+
- [binvim](https://github.com/bgunnarsson/binvim/)
|
|
331
|
+
neovim IDE written in rust (with copilot, agents, text-objects, whichkey ...)
|
|
332
|
+
|
|
333
|
+
- [terax](https://github.com/crynta/terax-ai)
|
|
334
|
+
agentic terminal + neovim-like IDE
|
|
335
|
+
|
|
336
|
+
</details>
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
;; vim:ft=lisp
|
|
2
|
+
|
|
3
|
+
;; Comments are prefixed by double-semicolon. A single semicolon is parsed as the
|
|
4
|
+
;; keyboard key. Comments are ignored for the configuration file.
|
|
5
|
+
;;
|
|
6
|
+
;; This configuration language is Lisp-like. If you're unfamiliar with Lisp,
|
|
7
|
+
;; don't be alarmed. The maintainer jtroo is also unfamiliar with Lisp. You
|
|
8
|
+
;; don't need to know Lisp in-depth to be able to configure kanata.
|
|
9
|
+
;;
|
|
10
|
+
;; If you follow along with the examples, you should be fine. Kanata should
|
|
11
|
+
;; also hopefully have helpful error messages in case something goes wrong.
|
|
12
|
+
;; If you need help, you are welcome to ask.
|
|
13
|
+
|
|
14
|
+
;; testing: map `a` as `A`
|
|
15
|
+
;; (defcfg process-unmapped-keys yes) (defsrc) (deflayer mylayer) (defoverrides (a) (lsft a))
|
|
16
|
+
;; (defcfg process-unmapped-keys yes) (defsrc) (deflayermap (mylayer) a (multi lsft a))
|
|
17
|
+
|
|
18
|
+
(defcfg
|
|
19
|
+
linux-x11-repeat-delay-rate 300,50
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
;; Only one defsrc is allowed.
|
|
23
|
+
;;
|
|
24
|
+
;; defsrc defines the keys that will be intercepted by kanata. The order of the
|
|
25
|
+
;; keys matches with deflayer declarations and all deflayer declarations must
|
|
26
|
+
;; have the same number of keys as defsrc. Any keys not listed in defsrc will
|
|
27
|
+
;; be passed straight to the operating system.
|
|
28
|
+
(defsrc
|
|
29
|
+
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
|
30
|
+
tab q w e r t y u i o p [ ] ret
|
|
31
|
+
caps a s d f g h j k l ; ' \
|
|
32
|
+
lsft < z x c v b n m , . / rsft
|
|
33
|
+
lctl lmet lalt spc ralt comp rctl
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
;; The first layer defined is the layer that will be active by default when
|
|
37
|
+
;; kanata starts up. This layer is the standard QWERTY layout except for the
|
|
38
|
+
;; backtick/grave key (@grl) which is an alias for a tap-hold key.
|
|
39
|
+
;;
|
|
40
|
+
;; There are currently a maximum of 25 layers allowed.
|
|
41
|
+
(deflayer qwerty
|
|
42
|
+
@grl 1 2 3 4 5 6 7 8 9 0 - = @bsp
|
|
43
|
+
tab q w @e r t y u i o p [ ] ret
|
|
44
|
+
@cap a @s @d f g @h @j @k @l @; ' \
|
|
45
|
+
lsft ret z x c v b n m , . / rsft
|
|
46
|
+
lctl lmet @alt @spc @sft rmet rctl
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
;; The dvorak layer remaps the keys to the dvorak layout. In addition there is
|
|
50
|
+
;; another tap-hold key: @cap. This key retains caps lock functionality when
|
|
51
|
+
;; quickly tapped but is read as left-control when held.
|
|
52
|
+
(deflayer dvorak
|
|
53
|
+
@grl 1 2 3 4 5 6 7 8 9 0 [ ] bspc
|
|
54
|
+
tab ' , . p y f g c r l / = ret
|
|
55
|
+
@cap a o e u i d h t n s - \
|
|
56
|
+
lsft ret ; q j k x b m w v z rsft
|
|
57
|
+
lctl lmet lalt spc ralt rmet rctl
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
;; (deflayermap (altspace)
|
|
61
|
+
;; spc (multi (release-key lalt) lsft spc)
|
|
62
|
+
;; )
|
|
63
|
+
|
|
64
|
+
(deflayer touchcursor
|
|
65
|
+
_ f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 _
|
|
66
|
+
_ @M↑ del @m↑ @clr @m🡠 _ _ _ _ _ _ _ _
|
|
67
|
+
_ @M↓ @bsp @m↓ spc @m🡪 @🡠 @↓ @↑ @🡪 @yaz _ _
|
|
68
|
+
_ _ _ _ caps @¿ @ñ pgup home end pgdn _ _
|
|
69
|
+
_ _ _ _ _ _ _
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
;; defalias is used to declare a shortcut for a more complicated action to keep
|
|
73
|
+
;; the deflayer declarations clean and aligned. The alignment in deflayers is not
|
|
74
|
+
;; necessary, but is strongly recommended for ease of understanding visually.
|
|
75
|
+
;;
|
|
76
|
+
;; Aliases are referred to by `@<alias_name>`.
|
|
77
|
+
(defalias
|
|
78
|
+
;; tap: backtick (grave), hold: toggle layer-switching layer while held
|
|
79
|
+
grl (tap-hold 200 200 grv (layer-toggle layers))
|
|
80
|
+
|
|
81
|
+
;; layer-switch changes the base layer.
|
|
82
|
+
dvk (layer-switch dvorak)
|
|
83
|
+
qwr (layer-switch qwerty)
|
|
84
|
+
|
|
85
|
+
;; tap for esc, hold for lctl
|
|
86
|
+
cap (tap-hold 200 200 esc lctl)
|
|
87
|
+
|
|
88
|
+
;; tap for backspace, hold for lshift
|
|
89
|
+
sft (tap-hold 200 200 bspc rsft)
|
|
90
|
+
|
|
91
|
+
;; tap for middle click, hold for lalt
|
|
92
|
+
alt (tap-hold 200 200 mmid lalt)
|
|
93
|
+
|
|
94
|
+
;; tap for semicolon, hold for ctrl
|
|
95
|
+
; (tap-hold 200 200 ; lctl)
|
|
96
|
+
|
|
97
|
+
;; tap for middle click, hold for altspace layout
|
|
98
|
+
;; alt (tap-hold 200 200 mmid (multi lalt (layer-while-held altspace)))
|
|
99
|
+
|
|
100
|
+
;; tap for space, hold for oneshot in touchcursor layout
|
|
101
|
+
spc (tap-hold 200 200 spc (one-shot 500 (layer-while-held touchcursor)))
|
|
102
|
+
|
|
103
|
+
;; fast keyboard repeat rate emulation
|
|
104
|
+
;; (multi f24) fixes fast typing `vh`, `vj`, `vk` and `vl` not entering visual mode on neovim
|
|
105
|
+
e (tap-hold 200 200 e (macro-repeat e 20))
|
|
106
|
+
d (tap-hold 200 200 d (macro-repeat d 20))
|
|
107
|
+
s (tap-hold 200 200 s (macro-repeat s 20))
|
|
108
|
+
h (tap-hold 200 200 h (macro-repeat h 20))
|
|
109
|
+
j (tap-hold 200 200 j (macro-repeat j 20))
|
|
110
|
+
k (tap-hold 200 200 k (macro-repeat k 20))
|
|
111
|
+
l (tap-hold 200 200 l (macro-repeat l 20))
|
|
112
|
+
🡠 (tap-hold 200 200 left (macro-repeat left 20))
|
|
113
|
+
↓ (tap-hold 200 200 down (macro-repeat down 20))
|
|
114
|
+
↑ (tap-hold 200 200 up (macro-repeat up 20))
|
|
115
|
+
🡪 (tap-hold 200 200 right (macro-repeat right 20))
|
|
116
|
+
bsp (tap-hold 200 200 bspc (macro-repeat bspc 20))
|
|
117
|
+
|
|
118
|
+
;; open yazi_cd on any shell
|
|
119
|
+
yaz (macro S-` / . p i x i / b i n / y a z i spc S-4 S-(p w d) spc - - c w d - f i l e spc S-4 S-(h o m e) / . y a z i ; spc c d spc S-' S-4 S-9 c a t spc S-4 S-( h o m e) / . y a z i S-0 S-' ret)
|
|
120
|
+
|
|
121
|
+
;; clear screen on any shell
|
|
122
|
+
clr (macro c l e a r ret)
|
|
123
|
+
|
|
124
|
+
;; unicode outputs
|
|
125
|
+
¿ (unicode ¿)
|
|
126
|
+
|
|
127
|
+
;; unicode outputs
|
|
128
|
+
ñ (unicode ñ)
|
|
129
|
+
|
|
130
|
+
;; mouse scrolling <intervale> <distance>
|
|
131
|
+
m↑ (mwheel-up 50 40)
|
|
132
|
+
m↓ (mwheel-down 50 40)
|
|
133
|
+
|
|
134
|
+
;; mouse scrolling <intervale> <distance>
|
|
135
|
+
m🡠 (mwheel-left 50 40)
|
|
136
|
+
m🡪 (mwheel-right 50 40)
|
|
137
|
+
|
|
138
|
+
;; mouse scrolling <intervale> <distance>
|
|
139
|
+
M↑ (mwheel-up 25 60)
|
|
140
|
+
M↓ (mwheel-down 25 60)
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
;; The `lrld` action stands for "live reload". This will re-parse everything
|
|
144
|
+
;; except for linux-dev, meaning you cannot live reload and switch keyboard
|
|
145
|
+
;; devices.
|
|
146
|
+
;;
|
|
147
|
+
;; The keys 1 and 2 switch the base layer to qwerty and dvorak respectively.
|
|
148
|
+
;;
|
|
149
|
+
;; Apart from the layer switching and live reload, all other keys are the
|
|
150
|
+
;; underscore _ which means "transparent". Transparent means the base layer
|
|
151
|
+
;; behaviour is used when pressing that key.
|
|
152
|
+
(deflayer layers
|
|
153
|
+
_ @qwr @dvk lrld _ _ _ _ _ _ _ _ _ _
|
|
154
|
+
_ _ _ _ _ _ _ _ _ _ _ _ _ _
|
|
155
|
+
_ _ _ _ _ _ _ _ _ _ _ _ _
|
|
156
|
+
_ _ _ _ _ _ _ _ _ _ _ _ _
|
|
157
|
+
_ _ _ _ _ _ _
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
;; RetroNvim uses alt+space to open whichkey but Windows uses alt+space to open minimize/maximize menu
|
|
161
|
+
(defoverrides
|
|
162
|
+
(lalt spc) (lsft spc)
|
|
163
|
+
(rsft spc) (ralt spc)
|
|
164
|
+
)
|