{"id":21215042,"url":"https://github.com/jamescherti/vim-hjklmode","last_synced_at":"2025-03-15T00:22:46.528Z","repository":{"id":144196343,"uuid":"430874317","full_name":"jamescherti/vim-hjklmode","owner":"jamescherti","description":" Add hjkl navigation to all Vim modes. This Vim plugin will help you to break the habit of using the keys that make you move your hand away from the touch type position. ","archived":false,"fork":false,"pushed_at":"2024-06-23T18:18:01.000Z","size":40,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-21T16:27:00.881Z","etag":null,"topics":["hjkl","plugin","productivity","touch-typing","vim","vim-plugin","vim-plugins"],"latest_commit_sha":null,"homepage":"https://github.com/jamescherti/vim-hjklmode","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamescherti.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":"2021-11-22T21:46:21.000Z","updated_at":"2024-09-13T16:51:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"7e4544bb-c12f-41f7-b1e8-c90a0be99d3b","html_url":"https://github.com/jamescherti/vim-hjklmode","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/jamescherti%2Fvim-hjklmode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fvim-hjklmode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fvim-hjklmode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fvim-hjklmode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamescherti","download_url":"https://codeload.github.com/jamescherti/vim-hjklmode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243664105,"owners_count":20327423,"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":["hjkl","plugin","productivity","touch-typing","vim","vim-plugin","vim-plugins"],"created_at":"2024-11-20T21:33:13.723Z","updated_at":"2025-03-15T00:22:46.521Z","avatar_url":"https://github.com/jamescherti.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hjklmode.vim - Add HJKL navigation to all Vim modes!\n\nCopyright (C) 2021-2025 [James Cherti](https://www.jamescherti.com). Distributed under terms of the MIT license.\n\n## Introduction\n\n### HJKL navigation?\n\nVim’s popularity is largely due to its ability to increase productivity through efficient navigation and editing techniques. One such technique is HJKL navigation, which allows using the H, J, K, and L keys to move the cursor left, down, up, and right. This method of navigation may seem strange at first, but it is actually a very efficient way to navigate through text and can greatly increase productivity when using Vim.\n\n### The Vim plugin Hjklmode\n\nThe Vim plugin **Hjklmode** can be used to:\n- **Learn HJKL navigation:** Hjklmode forces you to learn HJKL navigation as it disables certain keys that require moving the hand away from the Touch Typing position, which can disrupt typing flow. These keys include: Backspace, Arrows, Insert, Delete, Home, End, Page Up and Page Down.\n- **Add HJKL navigation to other modes than Normal Mode:** Hjklmode adds the key mappings \\\u003cAlt\u003e+hjkl to Insert Mode, Command Mode, and Terminal Mode.\n\nHjklmode does not disable the Escape key by default. It can be disabled with the option `let g:hjklmode_disable_escape = 1` . It is important to note that Hjklmode ignores the option `g:hjklmode_disable_escape` when Vim is executed in a terminal or on the Windows operating system.\n\n### How to make Alt+hjkl work in Terminal Mode?\n\nHjklmode adds key mappings for \\\u003cAlt\u003e+hjkl which allows using HJKL navigation Insert Mode, Command Mode, and Terminal Mode.\n\nIt works well in Vim GUI mode (gvim), but **does not always work when Vim is executed in a terminal**.\n\nYou can make the key mappings \\\u003cAlt\u003e+hjkl work by making sure that the terminal does not grab the \\\u003cAlt\u003e key and by installing the Vim plugin: [vim-fixkey](https://github.com/drmikehenry/vim-fixkey).\n\n## Do you like Hjklmode?\n\nPlease [star vim-hjklmode on GitHub](https://github.com/jamescherti/vim-hjklmode).\n\n## Installation\n\n### Installation with Vim's built-in package manager (Vim 8 and above)\n\n```shell\nmkdir -p ~/.vim/pack/jamescherti/start\ncd ~/.vim/pack/jamescherti/start\ngit clone --depth 1 https://github.com/jamescherti/vim-hjklmode\nvim -u NONE -c \"helptags vim-hjklmode/doc\" -c q\n```\n\n### Installation with a third-party plugin manager\n\nYou can also install this Vim plugin with any third-party plugin manager such as Pathogen or Vundle.\n\n## How to enable Hjklmode by default?\nAdd the following variable to \"~/.vimrc\":\n```viml\n\" Disable the menu bar because it may prevent you from using the Alt key\nset guioptions-=m\n\n\" Enable Hjklmode by default\nlet g:hjklmode_enabled = 1\n\n\" It is recommended to not disable the Escape key.\n\" Disabling the Escape can cause issues with macros.\nlet g:hjklmode_disable_escape = 0\n```\n\n## How to enable Hjklmode manually?\n```viml\n:HjklmodeEnable\n```\n\n## How can I move the cursor, press Escape or Backspace when Hjklmode is enabled?\n\nVim key mappings:\n| Key mapping  | Equivalent to\n|--------------|---------------------------------------------------\n| Ctrl-[       | Escape (if you have an American English keyboard)\n| Ctrl-C       | Similar to Escape (check *:help i_CTRL-C*)\n| Ctrl-h       | Backspace\n| Ctrl-j       | Enter\n| Ctrl-m       | Enter\n| Ctrl-i       | Tab\n| Ctrl-f       | Page down\n| Ctrl-b       | Page up\n| h            | Left\n| j            | Down\n| k            | Up\n| l            | Right\n| 0 (zero)     | Home\n| $            | End\n\nFor more information:\n- :help motion.txt\n- :help search-commands\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescherti%2Fvim-hjklmode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamescherti%2Fvim-hjklmode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescherti%2Fvim-hjklmode/lists"}