{"id":13496532,"url":"https://github.com/74th/vscode-vim","last_synced_at":"2025-03-28T18:32:11.804Z","repository":{"id":97260870,"uuid":"46557526","full_name":"74th/vscode-vim","owner":"74th","description":"vim emulator for Visual Studio Code","archived":true,"fork":false,"pushed_at":"2020-12-22T02:40:05.000Z","size":2335,"stargazers_count":215,"open_issues_count":26,"forks_count":25,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-23T22:40:15.440Z","etag":null,"topics":["vim-emulator","vim-keybindings","vscode"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/74th.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-11-20T11:13:07.000Z","updated_at":"2024-04-01T13:04:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbd9df8c-cb84-4270-8e5c-f4e5771e04ba","html_url":"https://github.com/74th/vscode-vim","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/74th%2Fvscode-vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/74th%2Fvscode-vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/74th%2Fvscode-vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/74th%2Fvscode-vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/74th","download_url":"https://codeload.github.com/74th/vscode-vim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246080807,"owners_count":20720594,"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":["vim-emulator","vim-keybindings","vscode"],"created_at":"2024-07-31T19:01:50.916Z","updated_at":"2025-03-28T18:32:06.795Z","avatar_url":"https://github.com/74th.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"**There are no plans to update this project.**\r\n\r\n**I recommend using [Neo Vim Extension](https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim).**\r\n\r\n\r\nVim emulator for VSCode\r\n\r\n![vimanimetion](https://raw.githubusercontent.com/74th/vscode-vim/master/tutorial/tutorial1.gif)\r\n\r\n* GitHub https://github.com/74th/vscode-vim\r\n* Visual Studio Marketplace https://marketplace.visualstudio.com/items/74th.vimStyle\r\n\r\n[![Build Status](https://travis-ci.org/74th/vscode-vim.svg?branch=master)](https://travis-ci.org/74th/vscode-vim)\r\n[![Version](https://vsmarketplacebadge.apphb.com/version/74th.vimStyle.svg)](https://marketplace.visualstudio.com/items?itemName=74th.vimStyle)\r\n[![Installs](https://vsmarketplacebadge.apphb.com/installs/74th.vimStyle.svg)](https://marketplace.visualstudio.com/items?itemName=74th.vimStyle)\r\n[![Rating](https://vsmarketplacebadge.apphb.com/rating/74th.vimStyle.svg)](https://marketplace.visualstudio.com/items/74th.vimStyle)\r\n\r\n## Require\r\n\r\n* v0.3 : Visual Studio Code 1.0.0\r\n\r\n## Features\r\n\r\n* pure TypeScript vim engine\r\n* [have tests comparing with original vim](https://github.com/74th/vscode-vim/tree/master/test/vim)\r\n* support complex command\r\n* support visual mode\r\n\r\n![vimanimetion](https://raw.githubusercontent.com/74th/vscode-vim/master/tutorial/tutorial2.gif)\r\n\r\n* support repeat command\r\n\r\n![vimanimetion](https://raw.githubusercontent.com/74th/vscode-vim/master/tutorial/tutorial3.gif)\r\n\r\n## Installation\r\n\r\n```\r\next install vimStyle\r\n```\r\n\r\n## Supported vim commands\r\n\r\n* h j k l 0 $ ^ w W b B e E { } [{ ]} tx fx Tx Fx ; , gg G\r\n* Nh Nj Nk Nl Nw NW Nb NB Ne NE N{ N} N[{ N]} Ntx Nfx NTx NFx N; N, NG\r\n* i a s o x r I A S O X gr J\r\n* Nx Nr Ngr\r\n* d y c dd yy cc D C p P d$ y$ c$ ...\r\n* Ndd Nyy Ncc\r\n* ci[ ca[ ci\" ca\"\r\n* Nci[ Nca[\r\n* v V v..d v..c v..y v..r v..j\r\n* .\r\n\r\n* [quickref function list is here.](https://github.com/74th/vscode-vim/blob/master/quickref.md)\r\n* If you need Ctrl-D and Ctrl-U for scrolling, you can use [additional scroll key entention](https://marketplace.visualstudio.com/items?itemName=74th.scrollkey).\r\n\r\n## Support to call VSCode commands from vim keybind\r\n\r\n* u : / n N \u0026gt; \u0026lt; %\r\n\r\nBut they do not behave exactly as vim command, and their supports may be changed.\r\n\r\n## Settings\r\n\r\nIf you needs optional settings, please copy belong json and paste to your `settings.json`.\r\n\r\n```\r\n// Show mode in status bar (default: true)\r\n\"vimStyle.showMode\": false,\r\n// changing cursor by mode (default: true)\r\n\"vimStyle.changeCursorStyle\": false,\r\n// motion with jkl;(default: false)\r\n\"vimStyle.useErgonomicKeyForMotion\": true,\r\n// default mode (default: \"normal\")\r\n\"vimStyle.defaultMode\": \"insert\",\r\n// disable without to uninstall (default: \"true\")\r\n\"vimStyle.enabled\": \"false\",\r\n// keys go to normal mode from insert mode (default: \"\" disable)\r\n\"vimStyle.imapEsc\": \"jj\",\r\n// some vimrc like settings\r\n\"vimStyle.vimrc\": [\r\n\t\"nmap Y y$\", //\r\n\t\"nnoremapmap Y y$\", //\r\n]\r\n```\r\n\r\nIf you would like to use `ctrl+[` instead of `escape`, please add blong setting to your `keybindings.json`.\r\n\r\n```\r\n{\r\n\t\"key\": \"ctrl+[\",\r\n\t\"command\": \"vim.Esc\",\r\n\t\"when\": \"editorTextFocus\"\r\n}\r\n```\r\n\r\nIf you would like more vim flavor, you can use `vim.inNormalMode`, `vim.inInsertMode` and `vim.inVisualMode` to your keyboard shortcuts. For example,\r\n\r\n```\r\n// in insert mode\r\n{\r\n\t// Ctrl-h : BackSpace\r\n\t\"key\": \"ctrl+h\", \"command\": \"deleteLeft\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inInsertMode\"\r\n},\r\n{\r\n\t// Ctrl-w : delete word\r\n\t\"key\": \"ctrl+w\", \"command\": \"deleteWordLeft\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inInsertMode\"\r\n},\r\n// in visual mode\r\n{\r\n\t// arrow up\r\n\t\"key\": \"up\", \"command\": \"vim.type-\u003cUp\u003e\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inVisualMode\"\r\n},\r\n{\r\n\t// arrow down\r\n\t\"key\": \"down\", \"command\": \"vim.type-\u003cDown\u003e\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inVisualMode\"\r\n},\r\n{\r\n\t// arrow right\r\n\t\"key\": \"right\", \"command\": \"vim.type-\u003cRight\u003e\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inVisualMode\"\r\n},\r\n{\r\n\t// arrow left\r\n\t\"key\": \"left\", \"command\": \"vim.type-\u003cLeft\u003e\",\r\n\t\"when\": \"editorTextFocus \u0026\u0026 vim.inVisualMode\"\r\n},\r\n```\r\n\r\n## Support vimrc settings\r\n\r\n* `nmap Y y$`\r\n* `nnoremap Y y$`\r\n\r\n## Will never be supported\r\n\r\n* Ctrl-x Cmd-x Alt-x Meta-x\r\n\r\n## VimStyle Loadmap\r\n\r\nthe vim emulator written type script\r\n\r\n* [x] basic vim keybinds\r\n* [x] fix word motion bugs\r\n* [x] user keybindings ( nmap )\r\n* [ ] user keybindings ( call vscode function )\r\n* [ ] text object ( diw, di{ ... )\r\n* [ ] resister\r\n* [ ] vim style plugin for chrome browser\r\n* [ ] complete quickref list\r\n\r\n## License\r\n\r\nMIT License\r\n\r\n## Contributing\r\n\r\n[function list](https://github.com/74th/vscode-vim/blob/master/quickref.md)\r\n\r\n```\r\ngit clone https://github.com/74th/vscode-vim.git ~/.vscode/extensions/vscode-vim\r\ncd ~/.vscode/extensions/vscode-vim\r\nnpm install\r\nnpm run-script build\r\n```\r\n\r\n## Updates\r\n\r\n### 0.5.7\r\n\r\n* fix insert mode\r\n\r\n### 0.5.5\r\n\r\n* fix https://github.com/74th/vscode-vim/issues/73\r\n\r\n### 0.5.4\r\n\r\n* fix multi select problem [#64](https://github.com/74th/vscode-vim/issues/64) [#69](https://github.com/74th/vscode-vim/issues/69)\r\n\r\n### 0.5.3\r\n\r\n* #57 support arrow keys in visual mode(need add keybindings)\r\n\r\n### 0.5.2\r\n\r\n* fix #65\r\n\r\n### 0.5.1\r\n\r\n* support J v..J V..J\r\n\r\n### 0.5.0\r\n\r\n* support ci[ ci{ ci( ci\u003c ca[ ca{ ca( ca\u003c\r\n* support ci' ci\" ci` ca' ca\" ca`\r\n* treat `_` as alphabet\r\n\r\n### 0.4.7\r\n\r\n* fix visual mode moves\r\n\r\n### 0.4.6\r\n\r\n* revert 0.4.2\r\n\r\n### 0.4.5\r\n\r\n* some bugfix\r\n\r\n### 0.4.2\r\n\r\n* support `[(`,`[{`,`])`,`]}`\r\n\r\n### 0.4.1\r\n\r\n* support `{`,`}`\r\n\r\n### 0.4.0\r\n\r\n* support nmap nnoremap (use like vimrc setting)\r\n\r\n### 0.3.13\r\n\r\n* support vim mode contexts for keyboard shortcuts #45\r\n* fix word motion bugs #38\r\n\r\n### 0.3.12\r\n\r\n* support imap ESC keybinding\r\n* support enable setting\r\n\r\n### 0.3.11\r\n\r\n* [fix #38](https://github.com/74th/vscode-vim/issues/38)\r\n* [fix #39](https://github.com/74th/vscode-vim/issues/39)\r\n\r\n### 0.3.10\r\n\r\n* [default mode stting #34](https://github.com/74th/vscode-vim/issues/34)\r\n* [fix word motion bug](https://github.com/74th/vscode-vim/issues/35)\r\n\r\n### 0.3.9\r\n\r\n* support ; ,\r\n* [fix #38](https://github.com/74th/vscode-vim/issues/38)\r\n* [support #31](https://github.com/74th/vscode-vim/issues/31)\r\n* [test to fix #32](https://github.com/74th/vscode-vim/issues/32)\r\n\r\n### 0.3.6\r\n\r\n* support r gr v..r\r\n* fix visual mode move bug\r\n\r\n### 0.3.5\r\n\r\n* support VSCode commands from vim keybindings %\r\n* fix some bug\r\n\r\n### 0.3.4\r\n\r\n* support VSCode commands from vim keybindings : / n N \u0026gt; \u0026lt;\r\n\r\n### 0.3.3\r\n\r\n* support ^\r\n* change icon\r\n\r\n![icon](https://raw.githubusercontent.com/74th/vscode-vim/master/vim.png)\r\n\r\n### 0.3.2\r\n\r\n* update for vscode 1.0.0\r\n* support repeat command\r\n* support visual line mode\r\n* support tab size\r\n\r\n### 0.2.4\r\n\r\n* support W B e E\r\n\r\n### 0.2.3\r\n\r\n* support `useErgonomicKeyForMotion` option : move a cursur by `jkl;`\r\n* support visual mode\r\n\r\n### 0.2.2\r\n\r\n* fix #21 CR+LF bug\r\n\r\n### 0.2.1\r\n\r\n* update README\r\n\r\n### 0.2.0\r\n\r\n* more friendly with VSCode functions\r\n* show block sursor\r\n* bug fix : dfx dFx dtx dTx\r\n* append indents by o O\r\n\r\n### 0.1.8\r\n\r\n* JISキーボード向けオプション(support Win and Mac Jis keyboard option)\r\n* show suggestion by only alpabet and .\r\n* fix some bugs\r\n\r\n### 0.1.7\r\n\r\n* gg G\r\n\r\n### 0.1.1\r\n\r\npre release!\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F74th%2Fvscode-vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F74th%2Fvscode-vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F74th%2Fvscode-vim/lists"}