From a236c5132995584162b9067599dd89f67329f912 Mon Sep 17 00:00:00 2001 From: Augusto Monteiro Date: Wed, 25 Jul 2018 12:56:07 -0400 Subject: [PATCH 01/21] Updating README FAQ To use native functions for Ctrl the vim.useCtrlKeys needs to be false --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d64b74470e2..d9696c508c9 100644 --- a/README.md +++ b/README.md @@ -626,7 +626,7 @@ Vim has a lot of nifty tricks and we try to preserve some of them: ### None of the vim `ctrl` (e.g. `ctrl+f`, `ctrl+v`) commands work -Set the [`useCtrlKeys` setting](#vimusectrlkeys) to `true`. +Set the [`useCtrlKeys` setting](#vimusectrlkeys) to `false`. ### Moving `j`/`k` over folds opens up the folds From bf2f93fff8413345d9a6d4d995a7b0e708803a82 Mon Sep 17 00:00:00 2001 From: Augusto Monteiro Date: Wed, 25 Jul 2018 15:12:54 -0400 Subject: [PATCH 02/21] Update wording --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d9696c508c9..036a5bff94c 100644 --- a/README.md +++ b/README.md @@ -624,7 +624,7 @@ Vim has a lot of nifty tricks and we try to preserve some of them: ## 📚 F.A.Q. -### None of the vim `ctrl` (e.g. `ctrl+f`, `ctrl+v`) commands work +### None of the IDE `ctrl` (e.g. `ctrl+f`, `ctrl+v`) commands work Set the [`useCtrlKeys` setting](#vimusectrlkeys) to `false`. From 5d0d6833df32d1154eaa3e54edb74defab321ca1 Mon Sep 17 00:00:00 2001 From: xconverge Date: Thu, 26 Jul 2018 18:11:02 -0700 Subject: [PATCH 03/21] Revert "Merge pull request #2812 from xconverge/fix-gt" This reverts commit bd39e6b2247583d5248d0042d03c46236290a402, reversing changes made to 0751dba444061e97ec305a86842cd97d0f5cacf0. --- src/actions/commands/actions.ts | 2 +- src/cmd_line/commands/tab.ts | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/actions/commands/actions.ts b/src/actions/commands/actions.ts index 2bf9d891c1b..3cc959529a1 100644 --- a/src/actions/commands/actions.ts +++ b/src/actions/commands/actions.ts @@ -3015,7 +3015,7 @@ class CommandTabNext extends BaseTabCommand { public async exec(position: Position, vimState: VimState): Promise { new TabCommand({ tab: Tab.Next, - count: 1, + count: vimState.recordedState.count, }).execute(); return vimState; diff --git a/src/cmd_line/commands/tab.ts b/src/cmd_line/commands/tab.ts index b4db72fbbcc..73974329415 100644 --- a/src/cmd_line/commands/tab.ts +++ b/src/cmd_line/commands/tab.ts @@ -46,14 +46,15 @@ export class TabCommand extends node.CommandBase { async execute(): Promise { switch (this._arguments.tab) { case Tab.Next: - if (this._arguments.count !== undefined && this._arguments.count <= 0) { - break; + if (this._arguments.count /** not undefined or 0 */) { + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); + await this.executeCommandWithCount( + this._arguments.count! - 1, + 'workbench.action.nextEditorInGroup' + ); + } else { + await vscode.commands.executeCommand('workbench.action.nextEditorInGroup'); } - - await this.executeCommandWithCount( - this._arguments.count || 1, - 'workbench.action.nextEditorInGroup' - ); break; case Tab.Previous: if (this._arguments.count !== undefined && this._arguments.count <= 0) { From 182b9d5a2f93eda9d6421f8670f9df595ee7f61d Mon Sep 17 00:00:00 2001 From: xconverge Date: Thu, 26 Jul 2018 19:34:39 -0700 Subject: [PATCH 04/21] fixes #2789 --- src/actions/commands/actions.ts | 19 ++++++++--- src/cmd_line/commands/tab.ts | 60 ++++++++++++++++++++++++++++----- 2 files changed, 66 insertions(+), 13 deletions(-) diff --git a/src/actions/commands/actions.ts b/src/actions/commands/actions.ts index 3cc959529a1..b1c4e84eccd 100644 --- a/src/actions/commands/actions.ts +++ b/src/actions/commands/actions.ts @@ -3010,13 +3010,22 @@ class EvenPaneWidths extends BaseCommand { @RegisterAction class CommandTabNext extends BaseTabCommand { keys = [['g', 't'], ['']]; - runsOnceForEachCountPrefix = true; + runsOnceForEachCountPrefix = false; public async exec(position: Position, vimState: VimState): Promise { - new TabCommand({ - tab: Tab.Next, - count: vimState.recordedState.count, - }).execute(); + // gt behaves differently than gT and goes to an absolute index tab, it does + // NOT iterate over next tabs + if (vimState.recordedState.count > 0) { + new TabCommand({ + tab: Tab.Absolute, + count: vimState.recordedState.count, + }).execute(); + } else { + new TabCommand({ + tab: Tab.Next, + count: 1, + }).execute(); + } return vimState; } diff --git a/src/cmd_line/commands/tab.ts b/src/cmd_line/commands/tab.ts index 73974329415..640e914a33b 100644 --- a/src/cmd_line/commands/tab.ts +++ b/src/cmd_line/commands/tab.ts @@ -8,6 +8,7 @@ export enum Tab { Previous, First, Last, + Absolute, New, Close, Only, @@ -45,16 +46,59 @@ export class TabCommand extends node.CommandBase { async execute(): Promise { switch (this._arguments.tab) { - case Tab.Next: + case Tab.Absolute: if (this._arguments.count /** not undefined or 0 */) { - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); - await this.executeCommandWithCount( - this._arguments.count! - 1, - 'workbench.action.nextEditorInGroup' - ); - } else { - await vscode.commands.executeCommand('workbench.action.nextEditorInGroup'); + // This is ridiculous, but vscode does not currently have an api for + // openEditorAtIndex with an argument, so if 1-9, use the "efficient" + // call, otherwise compute it by going to tab 1 and move x number of + // times + switch (this._arguments.count) { + case 1: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); + break; + case 2: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex2'); + break; + case 3: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex3'); + break; + case 4: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex4'); + break; + case 5: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex5'); + break; + case 6: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex6'); + break; + case 7: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex7'); + break; + case 8: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex8'); + break; + case 9: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex9'); + break; + default: + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); + await this.executeCommandWithCount( + this._arguments.count! - 1, + 'workbench.action.nextEditorInGroup' + ); + break; + } + } + break; + case Tab.Next: + if (this._arguments.count !== undefined && this._arguments.count <= 0) { + break; } + + await this.executeCommandWithCount( + this._arguments.count || 1, + 'workbench.action.nextEditorInGroup' + ); break; case Tab.Previous: if (this._arguments.count !== undefined && this._arguments.count <= 0) { From 3d32625ad9be74b8ef76594b2997be045656f063 Mon Sep 17 00:00:00 2001 From: xconverge Date: Thu, 26 Jul 2018 19:39:32 -0700 Subject: [PATCH 05/21] Cleanup --- src/cmd_line/commands/tab.ts | 43 +++--------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/src/cmd_line/commands/tab.ts b/src/cmd_line/commands/tab.ts index 640e914a33b..d603455db43 100644 --- a/src/cmd_line/commands/tab.ts +++ b/src/cmd_line/commands/tab.ts @@ -48,46 +48,9 @@ export class TabCommand extends node.CommandBase { switch (this._arguments.tab) { case Tab.Absolute: if (this._arguments.count /** not undefined or 0 */) { - // This is ridiculous, but vscode does not currently have an api for - // openEditorAtIndex with an argument, so if 1-9, use the "efficient" - // call, otherwise compute it by going to tab 1 and move x number of - // times - switch (this._arguments.count) { - case 1: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); - break; - case 2: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex2'); - break; - case 3: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex3'); - break; - case 4: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex4'); - break; - case 5: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex5'); - break; - case 6: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex6'); - break; - case 7: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex7'); - break; - case 8: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex8'); - break; - case 9: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex9'); - break; - default: - await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); - await this.executeCommandWithCount( - this._arguments.count! - 1, - 'workbench.action.nextEditorInGroup' - ); - break; - } + await vscode.commands.executeCommand( + 'workbench.action.openEditorAtIndex' + this._arguments.count + ); } break; case Tab.Next: From 34107c66d9f274e69f4dd412eb73af455be5087e Mon Sep 17 00:00:00 2001 From: xconverge Date: Thu, 26 Jul 2018 20:01:59 -0700 Subject: [PATCH 06/21] Add a hack for navigating to a tab that is more than index 9 --- src/cmd_line/commands/tab.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/cmd_line/commands/tab.ts b/src/cmd_line/commands/tab.ts index d603455db43..f55bea882c1 100644 --- a/src/cmd_line/commands/tab.ts +++ b/src/cmd_line/commands/tab.ts @@ -48,9 +48,20 @@ export class TabCommand extends node.CommandBase { switch (this._arguments.tab) { case Tab.Absolute: if (this._arguments.count /** not undefined or 0 */) { - await vscode.commands.executeCommand( - 'workbench.action.openEditorAtIndex' + this._arguments.count - ); + if (this._arguments.count <= 9) { + await vscode.commands.executeCommand( + 'workbench.action.openEditorAtIndex' + this._arguments.count + ); + } else { + // VScode only allows up to 9, here is a hack that might work ok + // sometimes but will wrap around if you go too far + // https://github.com/Microsoft/vscode/issues/55205 + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex9'); + await this.executeCommandWithCount( + this._arguments.count - 9, + 'workbench.action.nextEditorInGroup' + ); + } } break; case Tab.Next: From 4d3fa343291f0a1d569f084fbdfd0b8cfc330175 Mon Sep 17 00:00:00 2001 From: xconverge Date: Thu, 26 Jul 2018 20:38:30 -0700 Subject: [PATCH 07/21] Revert "Merge pull request #2880 from VSCodeVim/revert-2861-minor-performance-improvement" This reverts commit d12e5d781bc0bf489855c156fe33e9e8547d8228, reversing changes made to b1bed1866891f0280ee23105ced332fff4197fc2. --- extension.ts | 14 +++++++++++--- src/mode/modeHandler.ts | 24 +++++++++++++++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/extension.ts b/extension.ts index 082598d1425..46e94942894 100644 --- a/extension.ts +++ b/extension.ts @@ -58,7 +58,11 @@ export async function getAndUpdateModeHandler(): Promise { } } else { previousActiveEditorId = activeEditorId; - await curHandler.updateView(curHandler.vimState, { drawSelection: false, revealRange: false }); + await curHandler.updateView(curHandler.vimState, { + drawSelection: false, + revealRange: false, + forceSetContext: false, + }); } if (prevHandler && curHandler.vimState.focusChanged) { @@ -238,7 +242,7 @@ export async function activate(context: vscode.ExtensionContext) { // Initialize mode handler for current active Text Editor at startup. if (vscode.window.activeTextEditor) { let mh = await getAndUpdateModeHandler(); - mh.updateView(mh.vimState, { drawSelection: false, revealRange: false }); + mh.updateView(mh.vimState, { drawSelection: false, revealRange: false, forceSetContext: true }); } // This is called last because getAndUpdateModeHandler() will change cursor @@ -337,7 +341,11 @@ async function handleActiveEditorChange(): Promise { if (vscode.window.activeTextEditor !== undefined) { const mh = await getAndUpdateModeHandler(); - mh.updateView(mh.vimState, { drawSelection: false, revealRange: false }); + mh.updateView(mh.vimState, { + drawSelection: false, + revealRange: false, + forceSetContext: true, + }); } }); } diff --git a/src/mode/modeHandler.ts b/src/mode/modeHandler.ts index 3debfb95f93..6ca5d961ae8 100644 --- a/src/mode/modeHandler.ts +++ b/src/mode/modeHandler.ts @@ -36,6 +36,7 @@ export class ModeHandler implements vscode.Disposable { private _disposables: vscode.Disposable[] = []; private _modes: Mode[]; private _remappers: Remappers; + private _prevMode: ModeName; public vimState: VimState; @@ -256,7 +257,11 @@ export class ModeHandler implements vscode.Disposable { } } - await this.updateView(this.vimState, { drawSelection: toDraw, revealRange: true }); + await this.updateView(this.vimState, { + drawSelection: toDraw, + revealRange: true, + forceSetContext: false, + }); } } @@ -1179,9 +1184,10 @@ export class ModeHandler implements vscode.Disposable { public async updateView( vimState: VimState, - args: { drawSelection: boolean; revealRange: boolean } = { + args: { drawSelection: boolean; revealRange: boolean; forceSetContext: boolean } = { drawSelection: true, revealRange: true, + forceSetContext: false, } ): Promise { // Draw selection (or cursor) @@ -1396,11 +1402,15 @@ export class ModeHandler implements vscode.Disposable { this._renderStatusBar(); - await vscode.commands.executeCommand( - 'setContext', - 'vim.mode', - ModeName[this.vimState.currentMode] - ); + // Only update the context if the mode has changed for performance reasons + if (args.forceSetContext || this._prevMode !== this.vimState.currentMode) { + this._prevMode = this.vimState.currentMode; + await vscode.commands.executeCommand( + 'setContext', + 'vim.mode', + ModeName[this.vimState.currentMode] + ); + } } private _renderStatusBar(): void { From d21fce2e33dfe86b662c7cc621dce6dfc0f2df9c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Jul 2018 04:02:27 +0000 Subject: [PATCH 08/21] Update dependency @types/lodash to v4.14.114 --- package-lock.json | 28 ++++++++++++++++++---------- package.json | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index b119a33646a..5c49cd092d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,9 +58,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.113", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.113.tgz", - "integrity": "sha512-CINMgfKUnif7fWBqPuGUsZrkER8jGU+ufyhD7FuotPqC1rRViHOJVgPuanN2Y8Vv1TqRnHDKlMnyEQLNq9eMjA==", + "version": "4.14.114", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.114.tgz", + "integrity": "sha512-0yfTOvQd1ePadg9jAd/6sbE8+iFQOCGZe4Biyob0UeDTtXg0XafnRpIA0G9Zawj6OuvW2tw3CWH4hEoTZcJiEQ==", "dev": true }, "@types/mocha": { @@ -169,6 +169,11 @@ "normalize-path": "^2.1.1" } }, + "appdirectory": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/appdirectory/-/appdirectory-0.1.0.tgz", + "integrity": "sha1-62yBYyDnsqsW9e2ZfyjYIF31Y3U=" + }, "append-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", @@ -1795,7 +1800,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2210,7 +2216,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2266,6 +2273,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2309,12 +2317,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -4804,7 +4814,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -4812,8 +4821,7 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, diff --git a/package.json b/package.json index 0f0cc4f049f..1eeaa19f842 100644 --- a/package.json +++ b/package.json @@ -616,7 +616,7 @@ "@types/copy-paste": "1.1.30", "@types/diff": "3.5.1", "@types/diff-match-patch": "1.0.32", - "@types/lodash": "4.14.113", + "@types/lodash": "4.14.114", "@types/mocha": "5.2.5", "@types/node": "9.6.23", "gulp": "4.0.0", From 1cf8dc70d1e0542dd4a0ab7b33b68405994beb3a Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 15:23:52 -0400 Subject: [PATCH 09/21] Add --grep flag to gulp test task (passed to mocha --grep) --- gulpfile.js | 26 ++++++++++++++++++++++---- test/index.ts | 8 ++++++-- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index d996d51a93f..8911cc7b9da 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -178,6 +178,12 @@ gulp.task('forceprettier', function(done) { // test gulp.task('test', function(done) { + var knownOptions = { + string: 'grep', + default: { grep: '' }, + }; + var options = minimist(process.argv.slice(2), knownOptions); + var spawn = require('child_process').spawn; const dockerTag = 'vscodevim'; @@ -201,10 +207,22 @@ gulp.task('test', function(done) { } console.log('Running tests inside container...'); - var dockerRunCmd = spawn('docker', ['run', '-it', '-v', process.cwd() + ':/app', dockerTag], { - cwd: process.cwd(), - stdio: 'inherit', - }); + var dockerRunCmd = spawn( + 'docker', + [ + 'run', + '-it', + '--env', + `MOCHA_GREP=${options.grep}`, + '-v', + process.cwd() + ':/app', + dockerTag, + ], + { + cwd: process.cwd(), + stdio: 'inherit', + } + ); dockerRunCmd.on('exit', function(exitCode) { done(exitCode); diff --git a/test/index.ts b/test/index.ts index 261bed507e8..fd58d2f7135 100644 --- a/test/index.ts +++ b/test/index.ts @@ -17,10 +17,14 @@ Globals.mockConfiguration = new Configuration(); // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info var testRunner = require('vscode/lib/testrunner'); -testRunner.configure({ +const mochaGrep = new RegExp(process.env.MOCHA_GREP || ''); +const testRunnerConfiguration = { ui: 'tdd', useColors: true, timeout: 10000, -}); + grep: mochaGrep, +}; + +testRunner.configure(testRunnerConfiguration); module.exports = testRunner; From 9f3ab3e5413252dff089ec1202ab92fdc5de9cd9 Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 15:29:21 -0400 Subject: [PATCH 10/21] Add gulp test --grep instructions to CONTRIBUTING.md --- .github/CONTRIBUTING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 55ce1563cda..b1863305d00 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -45,9 +45,10 @@ When submitting a PR, please fill out the template that is presented by GitHub w # Or run tests by selecting the appropriate drop down option # Alternatively, build and run tests through gulp and npm scripts - gulp build # build - npm test # test - gulp test # run tests inside Docker container + gulp build # build + npm test # test + gulp test # run tests inside Docker container + gulp test --grep testSuite # grep string to filter tests with ``` ## Code Architecture From 3c2f0b3aa5760cfc3aa17da0108b148af177de64 Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 15:37:20 -0400 Subject: [PATCH 11/21] Add comment describing --grep flag for gulp test task --- gulpfile.js | 1 + 1 file changed, 1 insertion(+) diff --git a/gulpfile.js b/gulpfile.js index 8911cc7b9da..4aab4886732 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -178,6 +178,7 @@ gulp.task('forceprettier', function(done) { // test gulp.task('test', function(done) { + // the flag --grep takes js regex as a string and filters by test and test suite names var knownOptions = { string: 'grep', default: { grep: '' }, From e6d91ba8a70b5fdbadd907bc9220d06759451039 Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 15:49:36 -0400 Subject: [PATCH 12/21] Reword gulp test --grep instructions in CONTRIBUTING.md --- .github/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b1863305d00..c3c65e42b28 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -48,7 +48,7 @@ When submitting a PR, please fill out the template that is presented by GitHub w gulp build # build npm test # test gulp test # run tests inside Docker container - gulp test --grep testSuite # grep string to filter tests with + gulp test --grep testSuite # run only tests/suites filtered by js regex inside container ``` ## Code Architecture From eba1464fac421303913e9814044bdf6007843500 Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 16:22:40 -0400 Subject: [PATCH 13/21] Add types to ./test/index.ts --- test/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/index.ts b/test/index.ts index fd58d2f7135..b3ba08365e5 100644 --- a/test/index.ts +++ b/test/index.ts @@ -17,8 +17,9 @@ Globals.mockConfiguration = new Configuration(); // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info var testRunner = require('vscode/lib/testrunner'); +// create new RegExp to catch error early, ie before passing it to mocha const mochaGrep = new RegExp(process.env.MOCHA_GREP || ''); -const testRunnerConfiguration = { +const testRunnerConfiguration: MochaSetupOptions = { ui: 'tdd', useColors: true, timeout: 10000, From 2844ccde92411d4d52a39156113fa314e5664e2d Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 16:29:39 -0400 Subject: [PATCH 14/21] Fix minor typo --- test/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/index.ts b/test/index.ts index b3ba08365e5..ff1e3909a37 100644 --- a/test/index.ts +++ b/test/index.ts @@ -17,7 +17,7 @@ Globals.mockConfiguration = new Configuration(); // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info var testRunner = require('vscode/lib/testrunner'); -// create new RegExp to catch error early, ie before passing it to mocha +// create new RegExp to catch errors early, ie before passing it to mocha const mochaGrep = new RegExp(process.env.MOCHA_GREP || ''); const testRunnerConfiguration: MochaSetupOptions = { ui: 'tdd', From 1cac605efc44a3ecbefd08ddd244767e3ad34291 Mon Sep 17 00:00:00 2001 From: manishb Date: Fri, 27 Jul 2018 16:47:15 -0400 Subject: [PATCH 15/21] Minor refactor --- gulpfile.js | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4aab4886732..e1ff9d40b01 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -207,23 +207,20 @@ gulp.task('test', function(done) { ); } + const dockerRunArgs = [ + 'run', + '-it', + '--env', + `MOCHA_GREP=${options.grep}`, + '-v', + process.cwd() + ':/app', + dockerTag, + ]; console.log('Running tests inside container...'); - var dockerRunCmd = spawn( - 'docker', - [ - 'run', - '-it', - '--env', - `MOCHA_GREP=${options.grep}`, - '-v', - process.cwd() + ':/app', - dockerTag, - ], - { - cwd: process.cwd(), - stdio: 'inherit', - } - ); + var dockerRunCmd = spawn('docker', dockerRunArgs, { + cwd: process.cwd(), + stdio: 'inherit', + }); dockerRunCmd.on('exit', function(exitCode) { done(exitCode); From 718de93a64a176a751e529476e4e787a0f96d219 Mon Sep 17 00:00:00 2001 From: Augusto Monteiro Date: Fri, 27 Jul 2018 17:57:58 -0400 Subject: [PATCH 16/21] Updating texting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 036a5bff94c..028b6de4f4b 100644 --- a/README.md +++ b/README.md @@ -624,7 +624,7 @@ Vim has a lot of nifty tricks and we try to preserve some of them: ## 📚 F.A.Q. -### None of the IDE `ctrl` (e.g. `ctrl+f`, `ctrl+v`) commands work +### None of the native Visual Studio Code `ctrl` (e.g. `ctrl+f`, `ctrl+v`) commands work Set the [`useCtrlKeys` setting](#vimusectrlkeys) to `false`. From 34c4b5ee148a64b61da0eeee8792bbc42ce221ce Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 28 Jul 2018 02:02:41 +0000 Subject: [PATCH 17/21] Update dependency @types/lodash to v4.14.115 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c49cd092d1..0fc21a97aca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,9 +58,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.114", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.114.tgz", - "integrity": "sha512-0yfTOvQd1ePadg9jAd/6sbE8+iFQOCGZe4Biyob0UeDTtXg0XafnRpIA0G9Zawj6OuvW2tw3CWH4hEoTZcJiEQ==", + "version": "4.14.115", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.115.tgz", + "integrity": "sha512-9K/P4XMQxk61omAzQh3bbbFiqnG17eLcFysjlAYz0aPcYrVo8T+ujaCeIeY0Gpzux7x1YbxtEtLKB7ZWf79qdg==", "dev": true }, "@types/mocha": { diff --git a/package.json b/package.json index 1eeaa19f842..ac3d3227f25 100644 --- a/package.json +++ b/package.json @@ -616,7 +616,7 @@ "@types/copy-paste": "1.1.30", "@types/diff": "3.5.1", "@types/diff-match-patch": "1.0.32", - "@types/lodash": "4.14.114", + "@types/lodash": "4.14.115", "@types/mocha": "5.2.5", "@types/node": "9.6.23", "gulp": "4.0.0", From ce66a455565b5d31747ceb3a88c2c0959d4478d7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 28 Jul 2018 02:03:07 +0000 Subject: [PATCH 18/21] Update dependency @types/node to v9.6.24 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c49cd092d1..3af975a2bb8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,9 +70,9 @@ "dev": true }, "@types/node": { - "version": "9.6.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.23.tgz", - "integrity": "sha512-d2SJJpwkiPudEQ3+9ysANN2Nvz4QJKUPoe/WL5zyQzI0RaEeZWH5K5xjvUIGszTItHQpFPdH+u51f6G/LkS8Cg==", + "version": "9.6.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.24.tgz", + "integrity": "sha512-o5K0mt8x735EaqS7F2x+5AG0b1Mt3V9jgV5SeW8SD6RNhE++dvwqLf2R2e4c8FmhNLaogz2oXrsiXnqnsBSSIQ==", "dev": true }, "acorn": { diff --git a/package.json b/package.json index 1eeaa19f842..093056d55c8 100644 --- a/package.json +++ b/package.json @@ -618,7 +618,7 @@ "@types/diff-match-patch": "1.0.32", "@types/lodash": "4.14.114", "@types/mocha": "5.2.5", - "@types/node": "9.6.23", + "@types/node": "9.6.24", "gulp": "4.0.0", "gulp-bump": "3.1.1", "gulp-git": "2.7.0", From f1e464a69c17946f7c8cfada0f2ba289da319338 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 29 Jul 2018 07:49:03 +0000 Subject: [PATCH 19/21] Update dependency prettier to v1.14.0 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0668445bc0c..181cb881458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5427,9 +5427,9 @@ "dev": true }, "prettier": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", - "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", + "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", "dev": true }, "pretty-hrtime": { diff --git a/package.json b/package.json index 845acc8017b..ae403802061 100644 --- a/package.json +++ b/package.json @@ -629,7 +629,7 @@ "minimist": "1.2.0", "mocha": "5.2.0", "plugin-error": "1.0.1", - "prettier": "1.13.7", + "prettier": "1.14.0", "tslint": "5.11.0", "typescript": "2.9.2", "vscode": "1.1.18" From 4b5835fea422b0eae126cb665f8f44a09f785a04 Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Sun, 29 Jul 2018 02:27:28 -0700 Subject: [PATCH 20/21] fix: enable prettier for md --- .github/CONTRIBUTING.md | 62 +- .github/ISSUE_TEMPLATE/bug_report.md | 10 +- .github/ISSUE_TEMPLATE/feature_request.md | 1 - .github/PULL_REQUEST_TEMPLATE.md | 2 +- .travis.yml | 4 +- CHANGELOG.md | 150 +++- CODE_OF_CONDUCT.md | 3 +- README.md | 443 ++++++----- ROADMAP.md | 906 +++++++++++----------- STYLE.md | 9 +- build/CHANGELOG.base.md | 146 +++- gulpfile.js | 2 +- src/util/util.ts | 2 +- 13 files changed, 991 insertions(+), 749 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c3c65e42b28..c1df1a906a0 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,12 +11,12 @@ Thanks for helping us in making VSCodeVim better! :clap: The [GitHub issue tracker](https://github.com/VSCodeVim/Vim/issues) is the preferred channel for tracking bugs and enhancement suggestions. When creating a new bug report do: -* Search against existing issues to check if somebody else has already reported your problem or requested your idea -* Fill out the issue template. +- Search against existing issues to check if somebody else has already reported your problem or requested your idea +- Fill out the issue template. ## Submitting Pull Requests -Pull requests are *awesome*. +Pull requests are _awesome_. If you're looking to raise a PR for something which doesn't have an open issue, consider creating an issue first. When submitting a PR, please fill out the template that is presented by GitHub when a PR is opened. @@ -24,47 +24,47 @@ When submitting a PR, please fill out the template that is presented by GitHub w ## First Time Setup 1. Install prerequisites: - * latest [Visual Studio Code](https://code.visualstudio.com/) - * [Node.js](https://nodejs.org/) v8.0.0 or higher + - latest [Visual Studio Code](https://code.visualstudio.com/) + - [Node.js](https://nodejs.org/) v8.0.0 or higher 1. In a terminal: - ```bash - # fork and clone the repository - git clone git@github.com:/Vim.git - cd Vim + ```bash + # fork and clone the repository + git clone git@github.com:/Vim.git + cd Vim - # Install the dependencies - npm install -g gulp-cli - npm install + # Install the dependencies + npm install -g gulp-cli + npm install - # Open in VSCode - code . + # Open in VSCode + code . - # Choose the "Build, Run Extension" in the dropdown of VSCode's - # debug tab to build and run the extension. - # Or run tests by selecting the appropriate drop down option + # Choose the "Build, Run Extension" in the dropdown of VSCode's + # debug tab to build and run the extension. + # Or run tests by selecting the appropriate drop down option - # Alternatively, build and run tests through gulp and npm scripts - gulp build # build - npm test # test - gulp test # run tests inside Docker container - gulp test --grep testSuite # run only tests/suites filtered by js regex inside container - ``` + # Alternatively, build and run tests through gulp and npm scripts + gulp build # build + npm test # test + gulp test # run tests inside Docker container + gulp test --grep testSuite # run only tests/suites filtered by js regex inside container + ``` ## Code Architecture The code is split into two parts: -* ModeHandler - Vim state machine -* Actions - 'actions' which modify the state +- ModeHandler - Vim state machine +- Actions - 'actions' which modify the state ### Actions Actions are all currently stuffed into actions.ts (sorry!). There are: -* `BaseAction` - the base Action type that all Actions derive from. -* `BaseMovement` - A movement (e.g.`w`, `h`, `{`, etc.) *ONLY* updates the cursor position or returns an `IMovement`, which indicates a start and stop. This is used for movements like `aw` which may actually start before the cursor. -* `BaseCommand` - Anything which is not just a movement is a Command. That includes motions which also update the state of Vim in some way, like `*`. +- `BaseAction` - the base Action type that all Actions derive from. +- `BaseMovement` - A movement (e.g.`w`, `h`, `{`, etc.) _ONLY_ updates the cursor position or returns an `IMovement`, which indicates a start and stop. This is used for movements like `aw` which may actually start before the cursor. +- `BaseCommand` - Anything which is not just a movement is a Command. That includes motions which also update the state of Vim in some way, like `*`. At one point, I wanted to have actions.ts be completely pure (no side effects whatsoever), so commands would just return objects indicating what side effects on the editor they would have. This explains the giant switch in handleCommand in ModeHandler. I now believe this to be a dumb idea and someone should get rid of it. @@ -72,8 +72,8 @@ At one point, I wanted to have actions.ts be completely pure (no side effects wh Consists of two data structures: -* `VimState` - this is the state of Vim. It's what actions update. -* `RecordedState` - this is temporary state that will reset at the end of a change. +- `VimState` - this is the state of Vim. It's what actions update. +- `RecordedState` - this is temporary state that will reset at the end of a change. #### How it works @@ -84,7 +84,7 @@ Consists of two data structures: #### vscode.window.onDidChangeTextEditorSelection -This is my hack to simulate a click event based API in an IDE that doesn't have them (yet?). I check the selection that just came in to see if it's the same as what I thought I previously set the selection to the last time the state machine updated. If it's not, the user *probably* clicked. (But she also could have tab completed!) +This is my hack to simulate a click event based API in an IDE that doesn't have them (yet?). I check the selection that just came in to see if it's the same as what I thought I previously set the selection to the last time the state machine updated. If it's not, the user _probably_ clicked. (But she also could have tab completed!) ## Release diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 19143139e6c..b6cd2041aba 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,6 @@ --- name: Bug report about: Create a report to help us improve - --- **Describe the bug** @@ -9,6 +8,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: + 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -21,13 +21,15 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Environment (please complete the following information):** + - - Extension (VsCodeVim) version: - - VSCode version: - - OS: + +- Extension (VsCodeVim) version: +- VSCode version: +- OS: **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 066b2d920a2..a09db44fb0b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,6 @@ --- name: Feature request about: Suggest an idea for this project - --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f73e650e4ac..b193d4533ce 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,4 +16,4 @@ Please ensure your PR adheres to: Commits in `fixes #(, fixes #, ...)` format, will close the issue(s) when PR gets merged) --> -**Special notes for your reviewer**: \ No newline at end of file +**Special notes for your reviewer**: diff --git a/.travis.yml b/.travis.yml index 5b3d42d37bf..b1fa12338ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,9 +37,9 @@ before_install: script: - npm run forceprettier -- if [[ $(git diff-index HEAD -- *.js *.ts) ]]; then +- if [[ $(git diff-index HEAD -- *.js *.ts *.md) ]]; then git diff; - echo "Prettier Failed. Run `gulp` or `gulp forceprettier`"; + echo "Prettier Failed. Run `gulp forceprettier` and commit changes to resolve."; exit 1; fi - npm run build diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b75bf521fe..b2c971ba25d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ **Enhancements:** -- Please use vscode's config folder for .cmdline\_history [\#2799](https://github.com/VSCodeVim/Vim/issues/2799) +- Please use vscode's config folder for .cmdline_history [\#2799](https://github.com/VSCodeVim/Vim/issues/2799) - Improve neovim command execution status reporting in status bar [\#2878](https://github.com/VSCodeVim/Vim/pull/2878) ([xconverge](https://github.com/xconverge)) **Fixed Bugs:** @@ -21,7 +21,7 @@ **Merged pull requests:** - Fix issue with incorrectly finding and triggering certain remappings [\#2890](https://github.com/VSCodeVim/Vim/pull/2890) ([xconverge](https://github.com/xconverge)) -- Move commandline history to XDG\_CACHE\_HOME or %APPDATA% [\#2889](https://github.com/VSCodeVim/Vim/pull/2889) ([xconverge](https://github.com/xconverge)) +- Move commandline history to XDG_CACHE_HOME or %APPDATA% [\#2889](https://github.com/VSCodeVim/Vim/pull/2889) ([xconverge](https://github.com/xconverge)) - fix: use ferrarimarco's image instead of my fork to generate changelog [\#2884](https://github.com/VSCodeVim/Vim/pull/2884) ([jpoon](https://github.com/jpoon)) - fix: use map to search for relevant actions. \#2021 [\#2883](https://github.com/VSCodeVim/Vim/pull/2883) ([jpoon](https://github.com/jpoon)) - fix: handle non-string remapped key. closes \#2873 [\#2881](https://github.com/VSCodeVim/Vim/pull/2881) ([jpoon](https://github.com/jpoon)) @@ -155,7 +155,7 @@ **Enhancements:** - \ doesn't behave as expected in insert mode [\#2804](https://github.com/VSCodeVim/Vim/issues/2804) -- \(feature\) Add an option to bring commandline back to old place [\#2773](https://github.com/VSCodeVim/Vim/issues/2773) +- \(feature\) Add an option to bring commandline back to old place [\#2773](https://github.com/VSCodeVim/Vim/issues/2773) **Fixed Bugs:** @@ -246,7 +246,7 @@ **Merged pull requests:** - fix: closes \#1472. insertModeKeyBindings apply to insert and replace modes [\#2749](https://github.com/VSCodeVim/Vim/pull/2749) ([jpoon](https://github.com/jpoon)) -- fix: closes \#2390. enables remapping using '\' [\#2748](https://github.com/VSCodeVim/Vim/pull/2748) ([jpoon](https://github.com/jpoon)) +- fix: closes \#2390. enables remapping using '\' [\#2748](https://github.com/VSCodeVim/Vim/pull/2748) ([jpoon](https://github.com/jpoon)) - chore\(deps\): update dependency @types/lodash to v4.14.110 [\#2745](https://github.com/VSCodeVim/Vim/pull/2745) ([renovate-bot](https://github.com/renovate-bot)) - Update visualModeKeyBindingsNonRecursive example [\#2744](https://github.com/VSCodeVim/Vim/pull/2744) ([chibicode](https://github.com/chibicode)) - Fix \#1348. ctrl+D/U correct position [\#2723](https://github.com/VSCodeVim/Vim/pull/2723) ([rebornix](https://github.com/rebornix)) @@ -319,6 +319,7 @@ - chore\(deps\): update dependency @types/node to v9.6.16 [\#2644](https://github.com/VSCodeVim/Vim/pull/2644) ([renovate-bot](https://github.com/renovate-bot)) ## [v0.12.0](https://github.com/vscodevim/vim/tree/v0.12.0) (2018-05-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.6...v0.12.0) - Fix development problems on win [\#2651](https://github.com/VSCodeVim/Vim/pull/2651) ([KamikazeZirou](https://github.com/KamikazeZirou)) @@ -334,6 +335,7 @@ - Implement "q:" command [\#2618](https://github.com/VSCodeVim/Vim/pull/2618) ([KamikazeZirou](https://github.com/KamikazeZirou)) ## [v0.11.6](https://github.com/vscodevim/vim/tree/v0.11.6) (2018-05-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.5...v0.11.6) - chore\(deps\): update dependency @types/node to v9.6.12 [\#2615](https://github.com/VSCodeVim/Vim/pull/2615) ([renovate-bot](https://github.com/renovate-bot)) @@ -362,6 +364,7 @@ - Hopefully fixing the rest of our undo issues [\#2559](https://github.com/VSCodeVim/Vim/pull/2559) ([Chillee](https://github.com/Chillee)) ## [v0.11.5](https://github.com/vscodevim/vim/tree/v0.11.5) (2018-04-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.4...v0.11.5) - chore\(deps\): update dependency gulp-bump to v3.1.1 [\#2556](https://github.com/VSCodeVim/Vim/pull/2556) ([renovate-bot](https://github.com/renovate-bot)) @@ -374,6 +377,7 @@ - chore\(deps\): update dependency @types/lodash to v4.14.107 [\#2540](https://github.com/VSCodeVim/Vim/pull/2540) ([renovate-bot](https://github.com/renovate-bot)) ## [v0.11.4](https://github.com/vscodevim/vim/tree/v0.11.4) (2018-04-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.3...v0.11.4) - fix: don't call prettier when no files updated [\#2539](https://github.com/VSCodeVim/Vim/pull/2539) ([jpoon](https://github.com/jpoon)) @@ -396,6 +400,7 @@ - Add jumptoanywhere command for easymotion [\#2454](https://github.com/VSCodeVim/Vim/pull/2454) ([jsonMartin](https://github.com/jsonMartin)) ## [v0.11.3](https://github.com/vscodevim/vim/tree/v0.11.3) (2018-03-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.2...v0.11.3) - docs: add documentation for installing xsel. fixes \#2071 [\#2476](https://github.com/VSCodeVim/Vim/pull/2476) ([jpoon](https://github.com/jpoon)) @@ -405,12 +410,14 @@ - await openEditorAtIndex1 command [\#2442](https://github.com/VSCodeVim/Vim/pull/2442) ([arussellk](https://github.com/arussellk)) ## [v0.11.2](https://github.com/vscodevim/vim/tree/v0.11.2) (2018-03-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.1...v0.11.2) - Readds vimState.lastClickWasPastEOL. Fixes \#2404 [\#2433](https://github.com/VSCodeVim/Vim/pull/2433) ([Chillee](https://github.com/Chillee)) - fix: selection in search in visual mode \#2406 [\#2418](https://github.com/VSCodeVim/Vim/pull/2418) ([shortheron](https://github.com/shortheron)) ## [v0.11.1](https://github.com/vscodevim/vim/tree/v0.11.1) (2018-03-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.0...v0.11.1) - Set the timeout to 0 for waitforcursorupdatestopropagate [\#2428](https://github.com/VSCodeVim/Vim/pull/2428) ([Chillee](https://github.com/Chillee)) @@ -419,6 +426,7 @@ - Fix :tabm to use moveActiveEditor command [\#2405](https://github.com/VSCodeVim/Vim/pull/2405) ([arussellk](https://github.com/arussellk)) ## [v0.11.0](https://github.com/vscodevim/vim/tree/v0.11.0) (2018-02-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.13...v0.11.0) - Fix :tabe {file} only relative to current file \(\#1162\) [\#2400](https://github.com/VSCodeVim/Vim/pull/2400) ([arussellk](https://github.com/arussellk)) @@ -437,11 +445,13 @@ - Sneak plugin [\#2307](https://github.com/VSCodeVim/Vim/pull/2307) ([jpotterm](https://github.com/jpotterm)) ## [v0.10.13](https://github.com/vscodevim/vim/tree/v0.10.13) (2018-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.12...v0.10.13) -- fix: bad jason. fix bad release. [\#2324](https://github.com/VSCodeVim/Vim/pull/2324) ([jpoon](https://github.com/jpoon)) +- fix: bad jason. fix bad release. [\#2324](https://github.com/VSCodeVim/Vim/pull/2324) ([jpoon](https://github.com/jpoon)) ## [v0.10.12](https://github.com/vscodevim/vim/tree/v0.10.12) (2018-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.11...v0.10.12) - fix: closes \#730. setcontext when switching active text editors [\#2320](https://github.com/VSCodeVim/Vim/pull/2320) ([jpoon](https://github.com/jpoon)) @@ -450,11 +460,13 @@ - Left shift fix 2299 [\#2300](https://github.com/VSCodeVim/Vim/pull/2300) ([jessewmc](https://github.com/jessewmc)) ## [v0.10.11](https://github.com/vscodevim/vim/tree/v0.10.11) (2018-01-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.10...v0.10.11) -- fix: status bar not updating properly when recording macros. fixes \#2296. [\#2304](https://github.com/VSCodeVim/Vim/pull/2304) ([jpoon](https://github.com/jpoon)) +- fix: status bar not updating properly when recording macros. fixes \#2296. [\#2304](https://github.com/VSCodeVim/Vim/pull/2304) ([jpoon](https://github.com/jpoon)) ## [v0.10.10](https://github.com/vscodevim/vim/tree/v0.10.10) (2018-01-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.9...v0.10.10) - fix: add tests for compareKeyPressSequence [\#2289](https://github.com/VSCodeVim/Vim/pull/2289) ([jpoon](https://github.com/jpoon)) @@ -465,6 +477,7 @@ - fix: \ remapping disabled by default. functionality controlled by "handleKeys" [\#2269](https://github.com/VSCodeVim/Vim/pull/2269) ([Arxzin](https://github.com/Arxzin)) ## [v0.10.9](https://github.com/vscodevim/vim/tree/v0.10.9) (2018-01-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.8...v0.10.9) - feature: "h", "l" keybindings for sidebar [\#2290](https://github.com/VSCodeVim/Vim/pull/2290) ([Nodman](https://github.com/Nodman)) @@ -474,6 +487,7 @@ - refactor: normalize keys when loading configuration [\#2268](https://github.com/VSCodeVim/Vim/pull/2268) ([jpoon](https://github.com/jpoon)) ## [v0.10.8](https://github.com/vscodevim/vim/tree/v0.10.8) (2018-01-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.7...v0.10.8) - fix\(2162\): handleKeys was previously only handling negation [\#2267](https://github.com/VSCodeVim/Vim/pull/2267) ([jpoon](https://github.com/jpoon)) @@ -482,6 +496,7 @@ - fix\(2261\): fix regression. show search string in status bar [\#2262](https://github.com/VSCodeVim/Vim/pull/2262) ([jpoon](https://github.com/jpoon)) ## [v0.10.7](https://github.com/vscodevim/vim/tree/v0.10.7) (2018-01-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.6...v0.10.7) - Stop Silently Failing [\#2250](https://github.com/VSCodeVim/Vim/pull/2250) ([jpoon](https://github.com/jpoon)) @@ -489,6 +504,7 @@ - fix\(2184\): handle situation when no document is opened [\#2237](https://github.com/VSCodeVim/Vim/pull/2237) ([jpoon](https://github.com/jpoon)) ## [v0.10.6](https://github.com/vscodevim/vim/tree/v0.10.6) (2017-12-15) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.5...v0.10.6) - update\(package.json\) [\#2225](https://github.com/VSCodeVim/Vim/pull/2225) ([jpoon](https://github.com/jpoon)) @@ -503,6 +519,7 @@ - Fix \#1945 $ in VisualBlock works on ragged lines [\#2096](https://github.com/VSCodeVim/Vim/pull/2096) ([Strafos](https://github.com/Strafos)) ## [v0.10.5](https://github.com/vscodevim/vim/tree/v0.10.5) (2017-11-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.4...v0.10.5) - Fixed incorrect styling of 'fake' cursors [\#2161](https://github.com/VSCodeVim/Vim/pull/2161) ([Chillee](https://github.com/Chillee)) @@ -512,11 +529,13 @@ - keep workbench color customizations when using status bar color [\#2122](https://github.com/VSCodeVim/Vim/pull/2122) ([rodrigo-garcia-leon](https://github.com/rodrigo-garcia-leon)) ## [v0.10.4](https://github.com/vscodevim/vim/tree/v0.10.4) (2017-11-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.3...v0.10.4) - fix\(2145\): reverse logic [\#2147](https://github.com/VSCodeVim/Vim/pull/2147) ([jpoon](https://github.com/jpoon)) ## [v0.10.3](https://github.com/vscodevim/vim/tree/v0.10.3) (2017-11-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.2...v0.10.3) - Fix release [\#2142](https://github.com/VSCodeVim/Vim/pull/2142) ([jpoon](https://github.com/jpoon)) @@ -541,6 +560,7 @@ - Fix gj/gk in visual block mode [\#2046](https://github.com/VSCodeVim/Vim/pull/2046) ([orn688](https://github.com/orn688)) ## [v0.10.2](https://github.com/vscodevim/vim/tree/v0.10.2) (2017-10-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.1...v0.10.2) - Update ROADMAP.md [\#2073](https://github.com/VSCodeVim/Vim/pull/2073) ([xconverge](https://github.com/xconverge)) @@ -558,6 +578,7 @@ - Fix a typo [\#2028](https://github.com/VSCodeVim/Vim/pull/2028) ([joonro](https://github.com/joonro)) ## [v0.10.1](https://github.com/vscodevim/vim/tree/v0.10.1) (2017-09-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.0...v0.10.1) - Fixing travis issues [\#2024](https://github.com/VSCodeVim/Vim/pull/2024) ([Chillee](https://github.com/Chillee)) @@ -571,6 +592,7 @@ - Implement '' and ``. [\#1993](https://github.com/VSCodeVim/Vim/pull/1993) ([brandonbloom](https://github.com/brandonbloom)) ## [v0.10.0](https://github.com/vscodevim/vim/tree/v0.10.0) (2017-08-30) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.9.0...v0.10.0) - Make prettier work on Windows [\#1987](https://github.com/VSCodeVim/Vim/pull/1987) ([MaxfieldWalker](https://github.com/MaxfieldWalker)) @@ -591,12 +613,14 @@ - Formattted everything with prettier [\#1879](https://github.com/VSCodeVim/Vim/pull/1879) ([Chillee](https://github.com/Chillee)) ## [v0.9.0](https://github.com/vscodevim/vim/tree/v0.9.0) (2017-06-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.7...v0.9.0) - fixes \#1861 [\#1868](https://github.com/VSCodeVim/Vim/pull/1868) ([xconverge](https://github.com/xconverge)) - Fix off by one error in visual mode [\#1862](https://github.com/VSCodeVim/Vim/pull/1862) ([Chillee](https://github.com/Chillee)) ## [v0.8.7](https://github.com/vscodevim/vim/tree/v0.8.7) (2017-06-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.6...v0.8.7) - Added :only command and corresponding shortcuts [\#1882](https://github.com/VSCodeVim/Vim/pull/1882) ([LeonB](https://github.com/LeonB)) @@ -608,6 +632,7 @@ - WIP Fixes \#754: Adds j,k,o,\, gg, G, ctrl+d, and ctrl+u commands for navigating inside the file explorer [\#1718](https://github.com/VSCodeVim/Vim/pull/1718) ([Chillee](https://github.com/Chillee)) ## [v0.8.6](https://github.com/vscodevim/vim/tree/v0.8.6) (2017-06-15) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.5...v0.8.6) - Removed solid block cursor [\#1842](https://github.com/VSCodeVim/Vim/pull/1842) ([Chillee](https://github.com/Chillee)) @@ -617,6 +642,7 @@ - Fixes \#1826: Jump to line with neovim disabled doesn't work [\#1831](https://github.com/VSCodeVim/Vim/pull/1831) ([Chillee](https://github.com/Chillee)) ## [v0.8.5](https://github.com/vscodevim/vim/tree/v0.8.5) (2017-06-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.4...v0.8.5) - Fixes \#1814: Undo history getting deleted when file changes [\#1820](https://github.com/VSCodeVim/Vim/pull/1820) ([Chillee](https://github.com/Chillee)) @@ -626,6 +652,7 @@ - Vertical split shortcut keys [\#1795](https://github.com/VSCodeVim/Vim/pull/1795) ([beefsack](https://github.com/beefsack)) ## [v0.8.4](https://github.com/vscodevim/vim/tree/v0.8.4) (2017-05-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.3...v0.8.4) - Fixes \#1743: Fixed pasting over visual mode with named register overwriting the named register [\#1777](https://github.com/VSCodeVim/Vim/pull/1777) ([Chillee](https://github.com/Chillee)) @@ -635,20 +662,24 @@ - fixed \#1027 maybe? [\#1740](https://github.com/VSCodeVim/Vim/pull/1740) ([Chillee](https://github.com/Chillee)) ## [v0.8.3](https://github.com/vscodevim/vim/tree/v0.8.3) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.2...v0.8.3) ## [v0.8.2](https://github.com/vscodevim/vim/tree/v0.8.2) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.1...v0.8.2) - Fixes \#1750: gq doesn't work for JSDoc type comments [\#1759](https://github.com/VSCodeVim/Vim/pull/1759) ([Chillee](https://github.com/Chillee)) - Some patches for v0.8.0 [\#1757](https://github.com/VSCodeVim/Vim/pull/1757) ([Chillee](https://github.com/Chillee)) ## [v0.8.1](https://github.com/vscodevim/vim/tree/v0.8.1) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.0...v0.8.1) - Fixes \#1752: Tab Completion [\#1753](https://github.com/VSCodeVim/Vim/pull/1753) ([Chillee](https://github.com/Chillee)) ## [v0.8.0](https://github.com/vscodevim/vim/tree/v0.8.0) (2017-05-25) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.7.1...v0.8.0) - Fixes \#1749: \ in insert mode doesn't work when the word isn't by itself [\#1748](https://github.com/VSCodeVim/Vim/pull/1748) ([Chillee](https://github.com/Chillee)) @@ -680,6 +711,7 @@ - Fix visual mode bugs\#1304to\#1308 [\#1322](https://github.com/VSCodeVim/Vim/pull/1322) ([xlaech](https://github.com/xlaech)) ## [v0.7.1](https://github.com/vscodevim/vim/tree/v0.7.1) (2017-05-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.7.0...v0.7.1) - Changes tabs to navigate inside the same split [\#1677](https://github.com/VSCodeVim/Vim/pull/1677) ([vinicio](https://github.com/vinicio)) @@ -690,6 +722,7 @@ - Fixes \#1535, \#1467, \#1311: D-d doesn't work in insert mode [\#1631](https://github.com/VSCodeVim/Vim/pull/1631) ([Chillee](https://github.com/Chillee)) ## [v0.7.0](https://github.com/vscodevim/vim/tree/v0.7.0) (2017-05-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.20...v0.7.0) - Join HTML on single line to prevent extraneous \s [\#1643](https://github.com/VSCodeVim/Vim/pull/1643) ([cobbweb](https://github.com/cobbweb)) @@ -721,9 +754,11 @@ - Navigate between view [\#1504](https://github.com/VSCodeVim/Vim/pull/1504) ([lyup](https://github.com/lyup)) ## [v0.6.20](https://github.com/vscodevim/vim/tree/v0.6.20) (2017-04-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.19...v0.6.20) ## [v0.6.19](https://github.com/vscodevim/vim/tree/v0.6.19) (2017-04-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.18...v0.6.19) - Fixes \#1573: Backspace at beginning of file causes subsequent operation to nop [\#1577](https://github.com/VSCodeVim/Vim/pull/1577) ([Chillee](https://github.com/Chillee)) @@ -735,6 +770,7 @@ - Fix surround aliases [\#1564](https://github.com/VSCodeVim/Vim/pull/1564) ([xconverge](https://github.com/xconverge)) ## [v0.6.18](https://github.com/vscodevim/vim/tree/v0.6.18) (2017-04-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.17...v0.6.18) - update clipboardy library with windows utf-8 fix [\#1559](https://github.com/VSCodeVim/Vim/pull/1559) ([xconverge](https://github.com/xconverge)) @@ -749,6 +785,7 @@ - Fixes \#1513: Backspace on middle of whitespace only line fails [\#1514](https://github.com/VSCodeVim/Vim/pull/1514) ([Chillee](https://github.com/Chillee)) ## [v0.6.17](https://github.com/vscodevim/vim/tree/v0.6.17) (2017-04-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.16...v0.6.17) - Allow user to change status bar color based on mode [\#1529](https://github.com/VSCodeVim/Vim/pull/1529) ([xconverge](https://github.com/xconverge)) @@ -758,9 +795,10 @@ - \[WIP\] change system clipboard library to a newer more maintained library [\#1487](https://github.com/VSCodeVim/Vim/pull/1487) ([xconverge](https://github.com/xconverge)) ## [v0.6.16](https://github.com/vscodevim/vim/tree/v0.6.16) (2017-04-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.15...v0.6.16) -- added cmd\_line commands to remapper [\#1516](https://github.com/VSCodeVim/Vim/pull/1516) ([xconverge](https://github.com/xconverge)) +- added cmd_line commands to remapper [\#1516](https://github.com/VSCodeVim/Vim/pull/1516) ([xconverge](https://github.com/xconverge)) - fixes \#1507 and removes workspace settings that should not be there [\#1509](https://github.com/VSCodeVim/Vim/pull/1509) ([xconverge](https://github.com/xconverge)) - Add line comment operator [\#1506](https://github.com/VSCodeVim/Vim/pull/1506) ([fiedler](https://github.com/fiedler)) - Add 5i= or 4a- so that the previously inserted text is repeated upon exiting to normal mode [\#1495](https://github.com/VSCodeVim/Vim/pull/1495) ([xconverge](https://github.com/xconverge)) @@ -771,9 +809,11 @@ - fix easymotion j and k [\#1474](https://github.com/VSCodeVim/Vim/pull/1474) ([xconverge](https://github.com/xconverge)) ## [0.6.15](https://github.com/vscodevim/vim/tree/0.6.15) (2017-04-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.14...0.6.15) ## [0.6.14](https://github.com/vscodevim/vim/tree/0.6.14) (2017-04-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.13...0.6.14) - Fix tables in roadmap [\#1469](https://github.com/VSCodeVim/Vim/pull/1469) ([xconverge](https://github.com/xconverge)) @@ -781,12 +821,14 @@ - Fix type suggestion for handleKeys object [\#1465](https://github.com/VSCodeVim/Vim/pull/1465) ([abhiranjankumar00](https://github.com/abhiranjankumar00)) ## [v0.6.13](https://github.com/vscodevim/vim/tree/v0.6.13) (2017-04-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.12...v0.6.13) - fixes \#1448 [\#1462](https://github.com/VSCodeVim/Vim/pull/1462) ([xconverge](https://github.com/xconverge)) - fix multi line in 'at' and 'it' commands [\#1454](https://github.com/VSCodeVim/Vim/pull/1454) ([jrenton](https://github.com/jrenton)) ## [0.6.12](https://github.com/vscodevim/vim/tree/0.6.12) (2017-04-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.11...0.6.12) - fixes \#1432 [\#1434](https://github.com/VSCodeVim/Vim/pull/1434) ([xconverge](https://github.com/xconverge)) @@ -801,36 +843,44 @@ - Allow users to use their own cursor style for insert from editor.cursorStyle [\#1399](https://github.com/VSCodeVim/Vim/pull/1399) ([xconverge](https://github.com/xconverge)) ## [v0.6.11](https://github.com/vscodevim/vim/tree/v0.6.11) (2017-03-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.10...v0.6.11) - Fix comment syntax for shell commands. [\#1408](https://github.com/VSCodeVim/Vim/pull/1408) ([frewsxcv](https://github.com/frewsxcv)) - Increase timeout for some test cases in mocha [\#1379](https://github.com/VSCodeVim/Vim/pull/1379) ([xconverge](https://github.com/xconverge)) ## [v0.6.10](https://github.com/vscodevim/vim/tree/v0.6.10) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.9...v0.6.10) ## [v0.6.9](https://github.com/vscodevim/vim/tree/v0.6.9) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.8...v0.6.9) ## [v0.6.8](https://github.com/vscodevim/vim/tree/v0.6.8) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.7...v0.6.8) ## [v0.6.7](https://github.com/vscodevim/vim/tree/v0.6.7) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.6...v0.6.7) - fix bracket motion behavior for use with % and a count, or \[\( and a c… [\#1406](https://github.com/VSCodeVim/Vim/pull/1406) ([xconverge](https://github.com/xconverge)) - fix for cursor not changing correctly, workaround for vscode issue [\#1402](https://github.com/VSCodeVim/Vim/pull/1402) ([xconverge](https://github.com/xconverge)) ## [v0.6.6](https://github.com/vscodevim/vim/tree/v0.6.6) (2017-03-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.5...v0.6.6) - Use block cursor in visual & underline in replace [\#1394](https://github.com/VSCodeVim/Vim/pull/1394) ([net](https://github.com/net)) - Perform remapped commands when prefix by a number [\#1359](https://github.com/VSCodeVim/Vim/pull/1359) ([bdauria](https://github.com/bdauria)) ## [v0.6.5](https://github.com/vscodevim/vim/tree/v0.6.5) (2017-03-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.4...v0.6.5) ## [v0.6.4](https://github.com/vscodevim/vim/tree/v0.6.4) (2017-03-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.3...v0.6.4) - Update README.md [\#1390](https://github.com/VSCodeVim/Vim/pull/1390) ([xconverge](https://github.com/xconverge)) @@ -838,6 +888,7 @@ - fixes \#1382 [\#1386](https://github.com/VSCodeVim/Vim/pull/1386) ([xconverge](https://github.com/xconverge)) ## [v0.6.3](https://github.com/vscodevim/vim/tree/v0.6.3) (2017-03-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.0...v0.6.3) - fixes \#1373 [\#1374](https://github.com/VSCodeVim/Vim/pull/1374) ([xconverge](https://github.com/xconverge)) @@ -849,6 +900,7 @@ - Index fixes [\#1190](https://github.com/VSCodeVim/Vim/pull/1190) ([xconverge](https://github.com/xconverge)) ## [v0.6.0](https://github.com/vscodevim/vim/tree/v0.6.0) (2017-03-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.3...v0.6.0) - Fix clipboard copy [\#1349](https://github.com/VSCodeVim/Vim/pull/1349) ([johnfn](https://github.com/johnfn)) @@ -871,6 +923,7 @@ - More surround fixes [\#1289](https://github.com/VSCodeVim/Vim/pull/1289) ([xconverge](https://github.com/xconverge)) ## [v0.5.3](https://github.com/vscodevim/vim/tree/v0.5.3) (2017-02-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.0...v0.5.3) - fixes \#1258 [\#1286](https://github.com/VSCodeVim/Vim/pull/1286) ([xconverge](https://github.com/xconverge)) @@ -886,9 +939,11 @@ - Fixes README spelling mistake [\#1246](https://github.com/VSCodeVim/Vim/pull/1246) ([eastwood](https://github.com/eastwood)) ## [v0.5.0](https://github.com/vscodevim/vim/tree/v0.5.0) (2017-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.1...v0.5.0) ## [v0.5.1](https://github.com/vscodevim/vim/tree/v0.5.1) (2017-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.10...v0.5.1) - Surround [\#1238](https://github.com/VSCodeVim/Vim/pull/1238) ([johnfn](https://github.com/johnfn)) @@ -896,6 +951,7 @@ - fixes \#1214 [\#1217](https://github.com/VSCodeVim/Vim/pull/1217) ([Platzer](https://github.com/Platzer)) ## [v0.4.10](https://github.com/vscodevim/vim/tree/v0.4.10) (2016-12-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.9...v0.4.10) - fixes \#1132 [\#1187](https://github.com/VSCodeVim/Vim/pull/1187) ([xconverge](https://github.com/xconverge)) @@ -919,14 +975,17 @@ - Fixed "d" and "D" in multicursor mode [\#1029](https://github.com/VSCodeVim/Vim/pull/1029) ([Platzer](https://github.com/Platzer)) ## [v0.4.9](https://github.com/vscodevim/vim/tree/v0.4.9) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.8...v0.4.9) ## [v0.4.8](https://github.com/vscodevim/vim/tree/v0.4.8) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.7...v0.4.8) - Update readme for easymotion [\#1114](https://github.com/VSCodeVim/Vim/pull/1114) ([xconverge](https://github.com/xconverge)) ## [v0.4.7](https://github.com/vscodevim/vim/tree/v0.4.7) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.6...v0.4.7) - Fix minor typo [\#1113](https://github.com/VSCodeVim/Vim/pull/1113) ([xconverge](https://github.com/xconverge)) @@ -935,14 +994,17 @@ - Turns highlighting back on after nohl if you try to go to a new searc… [\#1110](https://github.com/VSCodeVim/Vim/pull/1110) ([xconverge](https://github.com/xconverge)) ## [v0.4.6](https://github.com/vscodevim/vim/tree/v0.4.6) (2016-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.4.5...v0.4.6) ## [0.4.5](https://github.com/vscodevim/vim/tree/0.4.5) (2016-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.5...0.4.5) - \[WIP\] gq [\#1106](https://github.com/VSCodeVim/Vim/pull/1106) ([johnfn](https://github.com/johnfn)) ## [v0.4.5](https://github.com/vscodevim/vim/tree/v0.4.5) (2016-12-02) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.4...v0.4.5) - Override home key \(for pressing home in visual for example\) [\#1100](https://github.com/VSCodeVim/Vim/pull/1100) ([xconverge](https://github.com/xconverge)) @@ -950,6 +1012,7 @@ - Implement open file command - Issue \#801 [\#1098](https://github.com/VSCodeVim/Vim/pull/1098) ([jamirvin](https://github.com/jamirvin)) ## [v0.4.4](https://github.com/vscodevim/vim/tree/v0.4.4) (2016-11-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.3...v0.4.4) - Removed debug print [\#1083](https://github.com/VSCodeVim/Vim/pull/1083) ([xconverge](https://github.com/xconverge)) @@ -960,6 +1023,7 @@ - fixes \#1023 [\#1069](https://github.com/VSCodeVim/Vim/pull/1069) ([xconverge](https://github.com/xconverge)) ## [v0.4.3](https://github.com/vscodevim/vim/tree/v0.4.3) (2016-11-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.2...v0.4.3) - fixes \#1034 [\#1068](https://github.com/VSCodeVim/Vim/pull/1068) ([xconverge](https://github.com/xconverge)) @@ -968,6 +1032,7 @@ - How can I fix travis failure [\#1062](https://github.com/VSCodeVim/Vim/pull/1062) ([rebornix](https://github.com/rebornix)) ## [v0.4.2](https://github.com/vscodevim/vim/tree/v0.4.2) (2016-11-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.1...v0.4.2) - Visual block fixes to cursor position and tests [\#1044](https://github.com/VSCodeVim/Vim/pull/1044) ([xconverge](https://github.com/xconverge)) @@ -975,6 +1040,7 @@ - Implemented EasyMotion plugin functionality [\#993](https://github.com/VSCodeVim/Vim/pull/993) ([Metamist](https://github.com/Metamist)) ## [v0.4.1](https://github.com/vscodevim/vim/tree/v0.4.1) (2016-10-31) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.0...v0.4.1) - fixes \#1013 [\#1014](https://github.com/VSCodeVim/Vim/pull/1014) ([xconverge](https://github.com/xconverge)) @@ -985,7 +1051,7 @@ - fixes \#1000 and a minor replace issue [\#1005](https://github.com/VSCodeVim/Vim/pull/1005) ([xconverge](https://github.com/xconverge)) - Update "r" for visual modes on roadmap [\#1002](https://github.com/VSCodeVim/Vim/pull/1002) ([xconverge](https://github.com/xconverge)) - fixes \#998 [\#1001](https://github.com/VSCodeVim/Vim/pull/1001) ([xconverge](https://github.com/xconverge)) -- Remove fix-whitespace gulp command. [\#999](https://github.com/VSCodeVim/Vim/pull/999) ([jpoon](https://github.com/jpoon)) +- Remove fix-whitespace gulp command. [\#999](https://github.com/VSCodeVim/Vim/pull/999) ([jpoon](https://github.com/jpoon)) - Improved performance of visual block replace by a lot [\#997](https://github.com/VSCodeVim/Vim/pull/997) ([xconverge](https://github.com/xconverge)) - fixes \#663 [\#996](https://github.com/VSCodeVim/Vim/pull/996) ([xconverge](https://github.com/xconverge)) - No need for "i" flag on a numerical only regex [\#995](https://github.com/VSCodeVim/Vim/pull/995) ([stefanoio](https://github.com/stefanoio)) @@ -1003,13 +1069,14 @@ - Add some tests and fix some exceptions during the tests [\#914](https://github.com/VSCodeVim/Vim/pull/914) ([xconverge](https://github.com/xconverge)) ## [v0.4.0](https://github.com/vscodevim/vim/tree/v0.4.0) (2016-10-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.8...v0.4.0) - fix \#528 [\#966](https://github.com/VSCodeVim/Vim/pull/966) ([rebornix](https://github.com/rebornix)) - fix \#693 [\#964](https://github.com/VSCodeVim/Vim/pull/964) ([rebornix](https://github.com/rebornix)) - fix \#922 [\#960](https://github.com/VSCodeVim/Vim/pull/960) ([rebornix](https://github.com/rebornix)) - fix \#939 [\#958](https://github.com/VSCodeVim/Vim/pull/958) ([rebornix](https://github.com/rebornix)) -- Add a command is `D` in visual block mode. [\#957](https://github.com/VSCodeVim/Vim/pull/957) ([Kooooya](https://github.com/Kooooya)) +- Add a command is `D` in visual block mode. [\#957](https://github.com/VSCodeVim/Vim/pull/957) ([Kooooya](https://github.com/Kooooya)) - Add commands is `s` and `S` in visual block mode. [\#954](https://github.com/VSCodeVim/Vim/pull/954) ([Kooooya](https://github.com/Kooooya)) - fix \#808 [\#952](https://github.com/VSCodeVim/Vim/pull/952) ([rebornix](https://github.com/rebornix)) - fix \#484 [\#951](https://github.com/VSCodeVim/Vim/pull/951) ([rebornix](https://github.com/rebornix)) @@ -1025,6 +1092,7 @@ - fix \#845 [\#911](https://github.com/VSCodeVim/Vim/pull/911) ([rebornix](https://github.com/rebornix)) ## [v0.3.8](https://github.com/vscodevim/vim/tree/v0.3.8) (2016-10-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.7...v0.3.8) - fixes \#879 [\#933](https://github.com/VSCodeVim/Vim/pull/933) ([xconverge](https://github.com/xconverge)) @@ -1038,33 +1106,40 @@ - Macro [\#894](https://github.com/VSCodeVim/Vim/pull/894) ([rebornix](https://github.com/rebornix)) ## [0.3.7](https://github.com/vscodevim/vim/tree/0.3.7) (2016-10-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.6...0.3.7) - fixes \#888 [\#902](https://github.com/VSCodeVim/Vim/pull/902) ([xconverge](https://github.com/xconverge)) - fixes \#882 [\#900](https://github.com/VSCodeVim/Vim/pull/900) ([xconverge](https://github.com/xconverge)) ## [0.3.6](https://github.com/vscodevim/vim/tree/0.3.6) (2016-10-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.5...0.3.6) - allow remapping of ctrl-j and ctrl-k in settings.json [\#891](https://github.com/VSCodeVim/Vim/pull/891) ([xwvvvvwx](https://github.com/xwvvvvwx)) - Fix visual block x [\#861](https://github.com/VSCodeVim/Vim/pull/861) ([xconverge](https://github.com/xconverge)) ## [0.3.5](https://github.com/vscodevim/vim/tree/0.3.5) (2016-10-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.4...0.3.5) ## [0.3.4](https://github.com/vscodevim/vim/tree/0.3.4) (2016-10-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.3...0.3.4) - Remove unused modehandlers when tabs are closed [\#865](https://github.com/VSCodeVim/Vim/pull/865) ([xconverge](https://github.com/xconverge)) - Insert Previous text [\#768](https://github.com/VSCodeVim/Vim/pull/768) ([rebornix](https://github.com/rebornix)) ## [0.3.3](https://github.com/vscodevim/vim/tree/0.3.3) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.2...0.3.3) ## [0.3.2](https://github.com/vscodevim/vim/tree/0.3.2) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.1...0.3.2) ## [v0.3.1](https://github.com/vscodevim/vim/tree/v0.3.1) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.0...v0.3.1) - Unnecessary quit check on untitled files [\#855](https://github.com/VSCodeVim/Vim/pull/855) ([xconverge](https://github.com/xconverge)) @@ -1078,6 +1153,7 @@ - fixes \#784 [\#814](https://github.com/VSCodeVim/Vim/pull/814) ([xconverge](https://github.com/xconverge)) ## [v0.3.0](https://github.com/vscodevim/vim/tree/v0.3.0) (2016-10-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.2.0...v0.3.0) - Show debug console when session launches [\#821](https://github.com/VSCodeVim/Vim/pull/821) ([xconverge](https://github.com/xconverge)) @@ -1093,9 +1169,11 @@ - fixes \#739 [\#767](https://github.com/VSCodeVim/Vim/pull/767) ([xconverge](https://github.com/xconverge)) ## [v0.2.0](https://github.com/vscodevim/vim/tree/v0.2.0) (2016-09-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.11...v0.2.0) ## [v0.1.11](https://github.com/vscodevim/vim/tree/v0.1.11) (2016-09-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.10...v0.1.11) - Release Pipeline [\#788](https://github.com/VSCodeVim/Vim/pull/788) ([jpoon](https://github.com/jpoon)) @@ -1118,6 +1196,7 @@ - Special keys in Insert Mode [\#615](https://github.com/VSCodeVim/Vim/pull/615) ([rebornix](https://github.com/rebornix)) ## [v0.1.10](https://github.com/vscodevim/vim/tree/v0.1.10) (2016-09-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.9...v0.1.10) - Align Screen Line commands with latest Code API [\#724](https://github.com/VSCodeVim/Vim/pull/724) ([rebornix](https://github.com/rebornix)) @@ -1128,6 +1207,7 @@ - fix \#690 and other toggle case issues [\#698](https://github.com/VSCodeVim/Vim/pull/698) ([xconverge](https://github.com/xconverge)) ## [v0.1.9](https://github.com/vscodevim/vim/tree/v0.1.9) (2016-09-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.8...v0.1.9) - Update README.md [\#714](https://github.com/VSCodeVim/Vim/pull/714) ([jpoon](https://github.com/jpoon)) @@ -1138,6 +1218,7 @@ - Tiny change to issue template. [\#709](https://github.com/VSCodeVim/Vim/pull/709) ([johnfn](https://github.com/johnfn)) ## [v0.1.8](https://github.com/vscodevim/vim/tree/v0.1.8) (2016-09-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.7...v0.1.8) - Fix race condition with switching active text editor. [\#705](https://github.com/VSCodeVim/Vim/pull/705) ([johnfn](https://github.com/johnfn)) @@ -1171,6 +1252,7 @@ - Implement tag movements [\#619](https://github.com/VSCodeVim/Vim/pull/619) ([sectioneight](https://github.com/sectioneight)) ## [v0.1.7](https://github.com/vscodevim/vim/tree/v0.1.7) (2016-08-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.6...v0.1.7) - Add support Y in visual mode [\#597](https://github.com/VSCodeVim/Vim/pull/597) ([shotaAkasaka](https://github.com/shotaAkasaka)) @@ -1180,14 +1262,17 @@ - Vim Settings [\#508](https://github.com/VSCodeVim/Vim/pull/508) ([rebornix](https://github.com/rebornix)) ## [v0.1.6](https://github.com/vscodevim/vim/tree/v0.1.6) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.5...v0.1.6) - \[WIP\] Visual block mode [\#469](https://github.com/VSCodeVim/Vim/pull/469) ([johnfn](https://github.com/johnfn)) ## [v0.1.5](https://github.com/vscodevim/vim/tree/v0.1.5) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.1.5...v0.1.5) ## [0.1.5](https://github.com/vscodevim/vim/tree/0.1.5) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.4...0.1.5) - Replace mode [\#580](https://github.com/VSCodeVim/Vim/pull/580) ([rebornix](https://github.com/rebornix)) @@ -1210,6 +1295,7 @@ - Screen lines and characters. [\#486](https://github.com/VSCodeVim/Vim/pull/486) ([rebornix](https://github.com/rebornix)) ## [v0.1.4](https://github.com/vscodevim/vim/tree/v0.1.4) (2016-07-28) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.3...v0.1.4) - Implement increment and decrement operators [\#515](https://github.com/VSCodeVim/Vim/pull/515) ([sectioneight](https://github.com/sectioneight)) @@ -1232,6 +1318,7 @@ - Word in visual mode [\#385](https://github.com/VSCodeVim/Vim/pull/385) ([rebornix](https://github.com/rebornix)) ## [v0.1.3](https://github.com/vscodevim/vim/tree/v0.1.3) (2016-07-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.2...v0.1.3) - Fix wrong command for ctrl+f [\#476](https://github.com/VSCodeVim/Vim/pull/476) ([rebornix](https://github.com/rebornix)) @@ -1256,6 +1343,7 @@ - Open file in new window. [\#404](https://github.com/VSCodeVim/Vim/pull/404) ([rebornix](https://github.com/rebornix)) ## [v0.1.2](https://github.com/vscodevim/vim/tree/v0.1.2) (2016-07-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.1...v0.1.2) - Fix spec for otherModesKeyBindings to match insert [\#434](https://github.com/VSCodeVim/Vim/pull/434) ([sectioneight](https://github.com/sectioneight)) @@ -1268,12 +1356,14 @@ - Fix layout mistake in Contributing and gulp typo [\#411](https://github.com/VSCodeVim/Vim/pull/411) ([frederickfogerty](https://github.com/frederickfogerty)) ## [v0.1.1](https://github.com/vscodevim/vim/tree/v0.1.1) (2016-07-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1...v0.1.1) - Fix \#414. [\#415](https://github.com/VSCodeVim/Vim/pull/415) ([rebornix](https://github.com/rebornix)) - Substitute [\#376](https://github.com/VSCodeVim/Vim/pull/376) ([rebornix](https://github.com/rebornix)) ## [v0.1](https://github.com/vscodevim/vim/tree/v0.1) (2016-07-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.28...v0.1) - Fix Roadmap link in Readme [\#405](https://github.com/VSCodeVim/Vim/pull/405) ([frederickfogerty](https://github.com/frederickfogerty)) @@ -1300,6 +1390,7 @@ - WriteQuit [\#354](https://github.com/VSCodeVim/Vim/pull/354) ([srepollock](https://github.com/srepollock)) ## [v0.0.28](https://github.com/vscodevim/vim/tree/v0.0.28) (2016-06-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.27...v0.0.28) - Implement \yy [\#351](https://github.com/VSCodeVim/Vim/pull/351) ([rebornix](https://github.com/rebornix)) @@ -1308,12 +1399,15 @@ - Add format code support. Fix \#308. [\#348](https://github.com/VSCodeVim/Vim/pull/348) ([rebornix](https://github.com/rebornix)) ## [v0.0.27](https://github.com/vscodevim/vim/tree/v0.0.27) (2016-06-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.26...v0.0.27) ## [v0.0.26](https://github.com/vscodevim/vim/tree/v0.0.26) (2016-06-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.26...v0.0.26) ## [0.0.26](https://github.com/vscodevim/vim/tree/0.0.26) (2016-06-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.25...0.0.26) - Star and hash [\#335](https://github.com/VSCodeVim/Vim/pull/335) ([johnfn](https://github.com/johnfn)) @@ -1323,32 +1417,40 @@ - Add support for 'U' uppercase [\#312](https://github.com/VSCodeVim/Vim/pull/312) ([rebornix](https://github.com/rebornix)) ## [0.0.25](https://github.com/vscodevim/vim/tree/0.0.25) (2016-06-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.25...0.0.25) ## [v0.0.25](https://github.com/vscodevim/vim/tree/v0.0.25) (2016-06-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.24...v0.0.25) - Repeated motions [\#321](https://github.com/VSCodeVim/Vim/pull/321) ([johnfn](https://github.com/johnfn)) ## [0.0.24](https://github.com/vscodevim/vim/tree/0.0.24) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.24...0.0.24) ## [v0.0.24](https://github.com/vscodevim/vim/tree/v0.0.24) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.23...v0.0.24) ## [v0.0.23](https://github.com/vscodevim/vim/tree/v0.0.23) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.23...v0.0.23) ## [0.0.23](https://github.com/vscodevim/vim/tree/0.0.23) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.22...0.0.23) - Add %. [\#319](https://github.com/VSCodeVim/Vim/pull/319) ([johnfn](https://github.com/johnfn)) - @darrenweston's test improvements + more work [\#316](https://github.com/VSCodeVim/Vim/pull/316) ([johnfn](https://github.com/johnfn)) ## [v0.0.22](https://github.com/vscodevim/vim/tree/v0.0.22) (2016-06-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.21...v0.0.22) ## [v0.0.21](https://github.com/vscodevim/vim/tree/v0.0.21) (2016-06-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.20...v0.0.21) - Fix visual line selection from bottom to top. [\#307](https://github.com/VSCodeVim/Vim/pull/307) ([johnfn](https://github.com/johnfn)) @@ -1357,6 +1459,7 @@ - Refactor dot [\#294](https://github.com/VSCodeVim/Vim/pull/294) ([johnfn](https://github.com/johnfn)) ## [v0.0.20](https://github.com/vscodevim/vim/tree/v0.0.20) (2016-06-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.19...v0.0.20) - Add simpler test mechanism and convert some tests [\#292](https://github.com/VSCodeVim/Vim/pull/292) ([darrenweston](https://github.com/darrenweston)) @@ -1373,6 +1476,7 @@ - Use vscode built in support for block cursors [\#245](https://github.com/VSCodeVim/Vim/pull/245) ([Paxxi](https://github.com/Paxxi)) ## [v0.0.19](https://github.com/vscodevim/vim/tree/v0.0.19) (2016-06-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.18...v0.0.19) - Add f, F, t and T motions [\#244](https://github.com/VSCodeVim/Vim/pull/244) ([johnfn](https://github.com/johnfn)) @@ -1394,12 +1498,14 @@ - Add yank support for Visual mode [\#217](https://github.com/VSCodeVim/Vim/pull/217) ([pjvds](https://github.com/pjvds)) ## [v0.0.18](https://github.com/vscodevim/vim/tree/v0.0.18) (2016-05-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.17...v0.0.18) - Install Gulp for Travis [\#225](https://github.com/VSCodeVim/Vim/pull/225) ([jpoon](https://github.com/jpoon)) - Update to vscode 0.10.12 APIs [\#224](https://github.com/VSCodeVim/Vim/pull/224) ([jpoon](https://github.com/jpoon)) ## [v0.0.17](https://github.com/vscodevim/vim/tree/v0.0.17) (2016-05-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.16...v0.0.17) - Added basic fold commands zc, zo, zC, zO. [\#222](https://github.com/VSCodeVim/Vim/pull/222) ([geksilla](https://github.com/geksilla)) @@ -1409,6 +1515,7 @@ - Add check mark to D key in README [\#215](https://github.com/VSCodeVim/Vim/pull/215) ([pjvds](https://github.com/pjvds)) ## [v0.0.16](https://github.com/vscodevim/vim/tree/v0.0.16) (2016-05-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.15...v0.0.16) - I think this may fix the build failure. [\#209](https://github.com/VSCodeVim/Vim/pull/209) ([edthedev](https://github.com/edthedev)) @@ -1418,28 +1525,32 @@ - Fixes Issue with Cursor Position After 'dw' [\#200](https://github.com/VSCodeVim/Vim/pull/200) ([dpbackes](https://github.com/dpbackes)) ## [v0.0.15](https://github.com/vscodevim/vim/tree/v0.0.15) (2016-03-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.14...v0.0.15) - Bug fixes [\#192](https://github.com/VSCodeVim/Vim/pull/192) ([jpoon](https://github.com/jpoon)) ## [v0.0.14](https://github.com/vscodevim/vim/tree/v0.0.14) (2016-03-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.13...v0.0.14) - Bug fixes [\#191](https://github.com/VSCodeVim/Vim/pull/191) ([jpoon](https://github.com/jpoon)) - Search '/' in Command Mode [\#190](https://github.com/VSCodeVim/Vim/pull/190) ([jpoon](https://github.com/jpoon)) ## [v0.0.13](https://github.com/vscodevim/vim/tree/v0.0.13) (2016-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.12...v0.0.13) - fix appveyor build [\#189](https://github.com/VSCodeVim/Vim/pull/189) ([jpoon](https://github.com/jpoon)) - Fixup/highlight eol char [\#182](https://github.com/VSCodeVim/Vim/pull/182) ([khisakuni](https://github.com/khisakuni)) - c commands and ge motions [\#180](https://github.com/VSCodeVim/Vim/pull/180) ([frarees](https://github.com/frarees)) -- add github\_token to appveyor/travis [\#178](https://github.com/VSCodeVim/Vim/pull/178) ([jpoon](https://github.com/jpoon)) +- add github_token to appveyor/travis [\#178](https://github.com/VSCodeVim/Vim/pull/178) ([jpoon](https://github.com/jpoon)) - Commands can write to status bar [\#177](https://github.com/VSCodeVim/Vim/pull/177) ([frarees](https://github.com/frarees)) - Wait for test files to get written [\#175](https://github.com/VSCodeVim/Vim/pull/175) ([frarees](https://github.com/frarees)) - d{motion} support [\#174](https://github.com/VSCodeVim/Vim/pull/174) ([frarees](https://github.com/frarees)) ## [v0.0.12](https://github.com/vscodevim/vim/tree/v0.0.12) (2016-03-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.11...v0.0.12) - Spanish keyboard mappings [\#169](https://github.com/VSCodeVim/Vim/pull/169) ([frarees](https://github.com/frarees)) @@ -1452,6 +1563,7 @@ - Visual Mode + Rudimentary Operators [\#144](https://github.com/VSCodeVim/Vim/pull/144) ([johnfn](https://github.com/johnfn)) ## [v0.0.11](https://github.com/vscodevim/vim/tree/v0.0.11) (2016-02-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.10...v0.0.11) - Upgrade to Typings as TSD has been deprecated [\#152](https://github.com/VSCodeVim/Vim/pull/152) ([jpoon](https://github.com/jpoon)) @@ -1460,13 +1572,14 @@ - Implement 'X' in normal mode \(backspace\) [\#145](https://github.com/VSCodeVim/Vim/pull/145) ([tma-isbx](https://github.com/tma-isbx)) - Fix b motion. [\#143](https://github.com/VSCodeVim/Vim/pull/143) ([johnfn](https://github.com/johnfn)) - Implement ctrl+f/ctrl+b \(PageDown/PageUp\) [\#142](https://github.com/VSCodeVim/Vim/pull/142) ([tma-isbx](https://github.com/tma-isbx)) -- \[\#127\] Fix 'x' behavior at EOL [\#141](https://github.com/VSCodeVim/Vim/pull/141) ([tma-isbx](https://github.com/tma-isbx)) +- \[\#127\] Fix 'x' behavior at EOL [\#141](https://github.com/VSCodeVim/Vim/pull/141) ([tma-isbx](https://github.com/tma-isbx)) - Implement % to jump to matching brace [\#140](https://github.com/VSCodeVim/Vim/pull/140) ([tma-isbx](https://github.com/tma-isbx)) - Add ctrl-c. [\#139](https://github.com/VSCodeVim/Vim/pull/139) ([johnfn](https://github.com/johnfn)) - Fix word and back-word motions, and fix tests. [\#138](https://github.com/VSCodeVim/Vim/pull/138) ([johnfn](https://github.com/johnfn)) - Convert to ES6, Promises, async and await. [\#137](https://github.com/VSCodeVim/Vim/pull/137) ([johnfn](https://github.com/johnfn)) ## [v0.0.10](https://github.com/vscodevim/vim/tree/v0.0.10) (2016-02-01) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.9...v0.0.10) - Implement % to jump to matching brace [\#134](https://github.com/VSCodeVim/Vim/pull/134) ([tma-isbx](https://github.com/tma-isbx)) @@ -1474,37 +1587,44 @@ - Add Swedish keyboard layout [\#130](https://github.com/VSCodeVim/Vim/pull/130) ([AntonAderum](https://github.com/AntonAderum)) ## [v0.0.9](https://github.com/vscodevim/vim/tree/v0.0.9) (2016-01-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.9...v0.0.9) ## [0.0.9](https://github.com/vscodevim/vim/tree/0.0.9) (2016-01-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.8...0.0.9) - added danish keyboard layout - fix issue \#124 [\#125](https://github.com/VSCodeVim/Vim/pull/125) ([kedde](https://github.com/kedde)) - Delete Right when user presses x [\#122](https://github.com/VSCodeVim/Vim/pull/122) ([sharpoverride](https://github.com/sharpoverride)) ## [v0.0.8](https://github.com/vscodevim/vim/tree/v0.0.8) (2016-01-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.7...v0.0.8) ## [v0.0.7](https://github.com/vscodevim/vim/tree/v0.0.7) (2016-01-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.6...v0.0.7) - Block Cursor [\#120](https://github.com/VSCodeVim/Vim/pull/120) ([jpoon](https://github.com/jpoon)) - BugFix: swapped cursor and caret. desired column not updated properly [\#119](https://github.com/VSCodeVim/Vim/pull/119) ([jpoon](https://github.com/jpoon)) -- Readme: update with keyboard configuration [\#116](https://github.com/VSCodeVim/Vim/pull/116) ([jpoon](https://github.com/jpoon)) +- Readme: update with keyboard configuration [\#116](https://github.com/VSCodeVim/Vim/pull/116) ([jpoon](https://github.com/jpoon)) - Tests: Enable all tests to be run in Travis CI [\#115](https://github.com/VSCodeVim/Vim/pull/115) ([jpoon](https://github.com/jpoon)) - Cleanup [\#114](https://github.com/VSCodeVim/Vim/pull/114) ([jpoon](https://github.com/jpoon)) ## [v0.0.6](https://github.com/vscodevim/vim/tree/v0.0.6) (2015-12-30) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.5...v0.0.6) - Cleanup [\#113](https://github.com/VSCodeVim/Vim/pull/113) ([jpoon](https://github.com/jpoon)) - Motion Fixes [\#112](https://github.com/VSCodeVim/Vim/pull/112) ([jpoon](https://github.com/jpoon)) -- Fix character position persistence on up/down commands, add : "e", "0", and fix "^" [\#109](https://github.com/VSCodeVim/Vim/pull/109) ([corymickelson](https://github.com/corymickelson)) +- Fix character position persistence on up/down commands, add : "e", "0", and fix "^" [\#109](https://github.com/VSCodeVim/Vim/pull/109) ([corymickelson](https://github.com/corymickelson)) ## [v0.0.5](https://github.com/vscodevim/vim/tree/v0.0.5) (2015-12-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.3...v0.0.5) ## [v0.0.3](https://github.com/vscodevim/vim/tree/v0.0.3) (2015-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.2...v0.0.3) - Promisify [\#92](https://github.com/VSCodeVim/Vim/pull/92) ([jpoon](https://github.com/jpoon)) @@ -1528,11 +1648,13 @@ - Add word motion and db [\#53](https://github.com/VSCodeVim/Vim/pull/53) ([adriaanp](https://github.com/adriaanp)) ## [v0.0.2](https://github.com/vscodevim/vim/tree/v0.0.2) (2015-11-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.1...v0.0.2) - move cursor position after getting normal mode [\#50](https://github.com/VSCodeVim/Vim/pull/50) ([kimitake](https://github.com/kimitake)) ## [v0.0.1](https://github.com/vscodevim/vim/tree/v0.0.1) (2015-11-29) + - Implement Redo, Refactor Keybindings [\#46](https://github.com/VSCodeVim/Vim/pull/46) ([jpoon](https://github.com/jpoon)) - reorganize tests; add tests [\#45](https://github.com/VSCodeVim/Vim/pull/45) ([guillermooo](https://github.com/guillermooo)) - fixes; add VimError class [\#43](https://github.com/VSCodeVim/Vim/pull/43) ([guillermooo](https://github.com/guillermooo)) @@ -1559,4 +1681,4 @@ - Navigation mode [\#4](https://github.com/VSCodeVim/Vim/pull/4) ([jpoon](https://github.com/jpoon)) - Add ex mode [\#3](https://github.com/VSCodeVim/Vim/pull/3) ([guillermooo](https://github.com/guillermooo)) -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file +\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_ diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b62146716d1..bded6a1ab4c 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,7 +1,8 @@ # Code of Conduct ## Our Standards -Be nice. Please. Everybody contributing to open source contributes out of good will in their own free time. + +Be nice. Please. Everybody contributing to open source contributes out of good will in their own free time. ## Our Responsibilities diff --git a/README.md b/README.md index 028b6de4f4b..83acbc69d17 100644 --- a/README.md +++ b/README.md @@ -6,35 +6,35 @@ VSCodeVim is a Vim emulator for [Visual Studio Code](https://code.visualstudio.com/). -* 🚚 For a full list of supported Vim features, please refer to our [roadmap](ROADMAP.md). -* 📃 Our [change log](CHANGELOG.md) outlines the breaking/major/minor updates between releases. -* ❓ If you need to ask any questions, join us on [Slack](https://vscodevim-slackin.azurewebsites.net) -* :octocat: Report missing features/bugs on [GitHub](https://github.com/VSCodeVim/Vim/issues). +- 🚚 For a full list of supported Vim features, please refer to our [roadmap](ROADMAP.md). +- 📃 Our [change log](CHANGELOG.md) outlines the breaking/major/minor updates between releases. +- ❓ If you need to ask any questions, join us on [Slack](https://vscodevim-slackin.azurewebsites.net) +- :octocat: Report missing features/bugs on [GitHub](https://github.com/VSCodeVim/Vim/issues).
Table of Contents (click to expand) -* [Installation](#-installation) - * [Vim Compatibility](#vim-compatibility) - * [Mac setup](#mac-setup) - * [Windows setup](#windows-setup) - * [Linux setup](#linux-setup) -* [Settings](#-settings) - * [VSCodeVim settings](#vscodevim-settings) - * [Neovim Integration](#neovim-integration) - * [Key remapping](#key-remapping) - * [Vim settings](#vim-settings) -* [Multi-Cursor mode](#-multi-cursor-mode) -* [Emulated plugins](#emulated-plugins) - * [vim-airline](#vim-airline) - * [vim-easymotion](#vim-easymotion) - * [vim-surround](#vim-surround) - * [vim-commentary](#vim-commentary) - * [vim-indent-object](#vim-indent-object) - * [vim-sneak](#vim-sneak) -* [VSCodeVim tricks](#-vscodevim-tricks) -* [F.A.Q / Troubleshooting](#-faq) -* [Contributing](#️-contributing) +- [Installation](#-installation) + - [Vim Compatibility](#vim-compatibility) + - [Mac setup](#mac-setup) + - [Windows setup](#windows-setup) + - [Linux setup](#linux-setup) +- [Settings](#-settings) + - [VSCodeVim settings](#vscodevim-settings) + - [Neovim Integration](#neovim-integration) + - [Key remapping](#key-remapping) + - [Vim settings](#vim-settings) +- [Multi-Cursor mode](#-multi-cursor-mode) +- [Emulated plugins](#emulated-plugins) + - [vim-airline](#vim-airline) + - [vim-easymotion](#vim-easymotion) + - [vim-surround](#vim-surround) + - [vim-commentary](#vim-commentary) + - [vim-indent-object](#vim-indent-object) + - [vim-sneak](#vim-sneak) +- [VSCodeVim tricks](#-vscodevim-tricks) +- [F.A.Q / Troubleshooting](#-faq) +- [Contributing](#️-contributing)
@@ -44,7 +44,7 @@ VSCodeVim is automatically enabled following [installation](https://marketplace. ### Vim Compatibility -Vimscript is *not* supported, so we are *not* able to load your `.vimrc` or use `.vim` plugins. You have to replicate these using our [Settings](#settings) and [Emulated plugins](#emulated-plugins). +Vimscript is _not_ supported, so we are _not_ able to load your `.vimrc` or use `.vim` plugins. You have to replicate these using our [Settings](#settings) and [Emulated plugins](#emulated-plugins). ### Mac Setup @@ -54,10 +54,9 @@ If key repeating isn't working for you, execute this in your Terminal, then rest defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false # For VS Code defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider defaults delete -g ApplePressAndHoldEnabled # If necessary, reset global default - ``` -We also recommend going into *System Preferences -> Keyboard* and increasing the Key Repeat and Delay Until Repeat settings to improve your speed. +We also recommend going into _System Preferences -> Keyboard_ and increasing the Key Repeat and Delay Until Repeat settings to improve your speed. ### Windows Setup @@ -79,35 +78,33 @@ Below is an example of a [settings.json](https://code.visualstudio.com/Docs/cust ```json { - "vim.easymotion": true, - "vim.sneak": true, - "vim.incsearch": true, - "vim.useSystemClipboard": true, - "vim.useCtrlKeys": true, - "vim.hlsearch": true, - "vim.insertModeKeyBindings": [ - { - "before": ["j","j"], - "after": [""] - } - ], - "vim.normalModeKeyBindingsNonRecursive": [ - { - "before": ["","d"], - "after": ["d", "d"] - }, - { - "before":[""], - "commands": [ - ":nohl" - ] - } - ], - "vim.leader": "", - "vim.handleKeys":{ - "": false, - "": false + "vim.easymotion": true, + "vim.sneak": true, + "vim.incsearch": true, + "vim.useSystemClipboard": true, + "vim.useCtrlKeys": true, + "vim.hlsearch": true, + "vim.insertModeKeyBindings": [ + { + "before": ["j", "j"], + "after": [""] + } + ], + "vim.normalModeKeyBindingsNonRecursive": [ + { + "before": ["", "d"], + "after": ["d", "d"] + }, + { + "before": [""], + "commands": [":nohl"] } + ], + "vim.leader": "", + "vim.handleKeys": { + "": false, + "": false + } } ``` @@ -119,51 +116,51 @@ These settings are specific to VSCodeVim. #### `"vim.startInInsertMode"` -* Have VSCodeVim start in Insert Mode rather than Normal Mode. -* We would be remiss in our duties as Vim users not to say that you should really be staying in Normal mode as much as you can, but hey, who are we to stop you? +- Have VSCodeVim start in Insert Mode rather than Normal Mode. +- We would be remiss in our duties as Vim users not to say that you should really be staying in Normal mode as much as you can, but hey, who are we to stop you? #### `"vim.overrideCopy"` -* Override VSCode's copy command with our own, which works correctly with VSCodeVim. -* If cmd-c or ctrl-c is giving you issues, set this to false and complain [here](https://github.com/Microsoft/vscode/issues/217). -* Type: Boolean (Default: `true`) +- Override VSCode's copy command with our own, which works correctly with VSCodeVim. +- If cmd-c or ctrl-c is giving you issues, set this to false and complain [here](https://github.com/Microsoft/vscode/issues/217). +- Type: Boolean (Default: `true`) #### `"vim.useSystemClipboard"` -* Enable yanking to the system clipboard by default -* Type: Boolean (Default: `false`) +- Enable yanking to the system clipboard by default +- Type: Boolean (Default: `false`) #### `"vim.searchHighlightColor"` -* Set the color of search highlights. -* Type: Color String (Default: `rgba(150, 150, 150, 0.3)`) +- Set the color of search highlights. +- Type: Color String (Default: `rgba(150, 150, 150, 0.3)`) #### `"vim.substituteGlobalFlag"` -* Similar to Vim's `gdefault` setting. -* `/g` flag in a substitute command replaces all occurrences in the line. +- Similar to Vim's `gdefault` setting. +- `/g` flag in a substitute command replaces all occurrences in the line. Without this argument, replacement occurs only for the first occurrence in each line. -* When `"vim.substituteGlobalFlag"` is `true`, the 'g' is default on. +- When `"vim.substituteGlobalFlag"` is `true`, the 'g' is default on. This means that all matches in a line are substituted instead of one. When a 'g' flag is given to a ":substitute" command, this will toggle the substitution of all or one match. #### `"vim.useCtrlKeys"` -* Enable Vim ctrl keys thus overriding common VSCode operations such as copy, paste, find, etc. Enabling this setting will result in the following keybindings: - * `ctrl+c`, `ctrl+[` => `` - * `ctrl+f` => Full Page Forward - * `ctrl+d` => Half Page Back - * `ctrl+b` => Half Page Forward - * `ctrl+v` => Visual Block Mode - * etc. -* Type: Boolean (Default: `true`) +- Enable Vim ctrl keys thus overriding common VSCode operations such as copy, paste, find, etc. Enabling this setting will result in the following keybindings: + - `ctrl+c`, `ctrl+[` => `` + - `ctrl+f` => Full Page Forward + - `ctrl+d` => Half Page Back + - `ctrl+b` => Half Page Forward + - `ctrl+v` => Visual Block Mode + - etc. +- Type: Boolean (Default: `true`) #### `"vim.handleKeys"` -* Delegate certain keybindings to be handled natively by VSCode instead of by the VSCodeVim extension -* Complete list of key combinations supported by this setting can be found under the `keybindings` section of our [package.json](https://github.com/VSCodeVim/Vim/blob/master/package.json). Each key that has a `vim.use` in the when argument can be delegated back to vscode by setting `"": false`. -* Example: you want to use `ctrl+f` for find (native VSCode behaviour), but also wants to have [`useCtrlKeys`](#vimusectrlkeys) set to true so that other vim bindings work: +- Delegate certain keybindings to be handled natively by VSCode instead of by the VSCodeVim extension +- Complete list of key combinations supported by this setting can be found under the `keybindings` section of our [package.json](https://github.com/VSCodeVim/Vim/blob/master/package.json). Each key that has a `vim.use` in the when argument can be delegated back to vscode by setting `"": false`. +- Example: you want to use `ctrl+f` for find (native VSCode behaviour), but also wants to have [`useCtrlKeys`](#vimusectrlkeys) set to true so that other vim bindings work: ```json "vim.handleKeys": { @@ -173,14 +170,14 @@ These settings are specific to VSCodeVim. #### `"vim.visualstar"` -* In visual mode, start a search with `*` or `#` using the current selection -* Type: Boolean (Default: `false`) +- In visual mode, start a search with `*` or `#` using the current selection +- Type: Boolean (Default: `false`) #### `"vim.cursorStylePerMode"` -* Configure a specific cursor style per mode; omitted modes will use default cursor type -* Supported modes: normal, insert, replace, visual, visualline, and visualblock -* Supported cursors: line, block, underline, line-thin, block-outline, and underline-thin +- Configure a specific cursor style per mode; omitted modes will use default cursor type +- Supported modes: normal, insert, replace, visual, visualline, and visualblock +- Supported cursors: line, block, underline, line-thin, block-outline, and underline-thin ```json "vim.cursorStylePerMode" : { @@ -192,15 +189,15 @@ These settings are specific to VSCodeVim. #### `"vim.disableExtension"` -* Disable VSCodeVim (Note: this is different from disabling extension through VSCode) -* This setting can be changed through the settings or via `toggleVim` command in the Command Palette -* Type: Boolean (Default: `false`) +- Disable VSCodeVim (Note: this is different from disabling extension through VSCode) +- This setting can be changed through the settings or via `toggleVim` command in the Command Palette +- Type: Boolean (Default: `false`) #### `"vim.debug.loggingLevel"` -* Extension logging level. Maximum level of messages to log. -* Logs will be visible in the [developer tools](https://code.visualstudio.com/docs/extensions/developing-extensions#_developer-tools-console). -* Type: String (Default: 'error'). Supported values: 'error', 'warn', 'info', 'verbose', 'debug'. +- Extension logging level. Maximum level of messages to log. +- Logs will be visible in the [developer tools](https://code.visualstudio.com/docs/extensions/developing-extensions#_developer-tools-console). +- Type: String (Default: 'error'). Supported values: 'error', 'warn', 'info', 'verbose', 'debug'. ### Neovim Integration @@ -218,9 +215,9 @@ You can leverage neovim for Ex-commands. To enable: Here's some ideas on what you can do with neovim integration: -* [The power of g](http://vim.wikia.com/wiki/Power_of_g) -* [The :normal command](https://vi.stackexchange.com/questions/4418/execute-normal-command-over-range) -* Faster search and replace! +- [The power of g](http://vim.wikia.com/wiki/Power_of_g) +- [The :normal command](https://vi.stackexchange.com/questions/4418/execute-normal-command-over-range) +- Faster search and replace! ### Key Remapping @@ -228,8 +225,8 @@ Custom remappings are defined on a per-mode basis. #### `"vim.insertModeKeyBindings"`/`"vim.normalModeKeyBindings"`/`"vim.visualModeKeyBindings"` -* Keybinding overrides to use for insert, normal, and visual modes. -* Bind `jj` to `` in insert mode: +- Keybinding overrides to use for insert, normal, and visual modes. +- Bind `jj` to `` in insert mode: ```json "vim.insertModeKeyBindings": [ @@ -240,7 +237,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `:` to show the command palette: +- Bind `:` to show the command palette: ```json "vim.normalModeKeyBindingsNonRecursive": [ @@ -253,7 +250,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `m` to add a bookmark and `b` to open the list of all bookmarks (using the [Bookmarks](https://github.com/alefragnani/vscode-bookmarks) extension): +- Bind `m` to add a bookmark and `b` to open the list of all bookmarks (using the [Bookmarks](https://github.com/alefragnani/vscode-bookmarks) extension): ```json "vim.normalModeKeyBindingsNonRecursive": [ @@ -272,7 +269,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `ZZ` to the vim command `:wq` (save and close the current file): +- Bind `ZZ` to the vim command `:wq` (save and close the current file): ```json "vim.normalModeKeyBindingsNonRecursive": [ @@ -285,7 +282,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `ctrl+n` to turn off search highlighting and `w` to save the current file: +- Bind `ctrl+n` to turn off search highlighting and `w` to save the current file: ```json "vim.normalModeKeyBindingsNonRecursive": [ @@ -304,7 +301,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `p` in visual mode to paste without overriding the current register +- Bind `p` in visual mode to paste without overriding the current register ```json "vim.visualModeKeyBindingsNonRecursive": [ @@ -322,7 +319,7 @@ Custom remappings are defined on a per-mode basis. ], ``` -* Bind `>` and `<` in visual mode to indent/outdent lines (repeatable) +- Bind `>` and `<` in visual mode to indent/outdent lines (repeatable) ```json "vim.visualModeKeyBindingsNonRecursive": [ @@ -345,7 +342,7 @@ Custom remappings are defined on a per-mode basis. ] ``` -* Bind `vim` to clone this repository to the selected location. +- Bind `vim` to clone this repository to the selected location. ```json "vim.visualModeKeyBindingsNonRecursive": [ @@ -365,8 +362,8 @@ Custom remappings are defined on a per-mode basis. #### `"vim.insertModeKeyBindingsNonRecursive"`/`"normalModeKeyBindingsNonRecursive"`/`"visualModeKeyBindingsNonRecursive"` -* Non-recursive keybinding overrides to use for insert, normal, and visual modes -* *Example:* Bind `j` to `gj`. Notice that if you attempted this binding normally, the j in gj would be expanded into gj, on and on forever. Stop this recursive expansion using insertModeKeyBindingsNonRecursive and/or normalModeKeyBindingNonRecursive. +- Non-recursive keybinding overrides to use for insert, normal, and visual modes +- _Example:_ Bind `j` to `gj`. Notice that if you attempted this binding normally, the j in gj would be expanded into gj, on and on forever. Stop this recursive expansion using insertModeKeyBindingsNonRecursive and/or normalModeKeyBindingNonRecursive. ```json "vim.normalModeKeyBindingsNonRecursive": [ @@ -381,28 +378,28 @@ Custom remappings are defined on a per-mode basis. 1. Are your configurations correct? - Adjust the extension's [logging level](#vimdebuglogginglevel) to 'debug', restart VSCode. In the Developer Tools console, do you see any errors? + Adjust the extension's [logging level](#vimdebuglogginglevel) to 'debug', restart VSCode. In the Developer Tools console, do you see any errors? - ```console - debug: Remapper: normalModeKeyBindingsNonRecursive. before=0. after=^. - debug: Remapper: insertModeKeyBindings. before=j,j. after=. - error: Remapper: insertModeKeyBindings. Invalid configuration. Missing 'after' key or 'command'. before=j,k. - ``` + ```console + debug: Remapper: normalModeKeyBindingsNonRecursive. before=0. after=^. + debug: Remapper: insertModeKeyBindings. before=j,j. after=. + error: Remapper: insertModeKeyBindings. Invalid configuration. Missing 'after' key or 'command'. before=j,k. + ``` - As each remapped configuration is loaded, it is outputted to console. Misconfigured configurations are ignored. + As each remapped configuration is loaded, it is outputted to console. Misconfigured configurations are ignored. 2. Does the extension handle the keys you are trying to remap? - VSCodeVim explicitly instructs VSCode which key events we care about through the [package.json](https://github.com/VSCodeVim/Vim/blob/1a5f358a1a57c62d5079093ad0dd12c2bf018bba/package.json#L53). If the key you are trying to remap is a key in which vim/vscodevim generally does not handle, then it's most likely that this extension does not receive those key events from VS Code. With [logging level](#vimdebuglogginglevel) adjusted to 'debug', as you press keys, you should see output similar to: + VSCodeVim explicitly instructs VSCode which key events we care about through the [package.json](https://github.com/VSCodeVim/Vim/blob/1a5f358a1a57c62d5079093ad0dd12c2bf018bba/package.json#L53). If the key you are trying to remap is a key in which vim/vscodevim generally does not handle, then it's most likely that this extension does not receive those key events from VS Code. With [logging level](#vimdebuglogginglevel) adjusted to 'debug', as you press keys, you should see output similar to: - ```console - debug: ModeHandler: handling key=A. - debug: ModeHandler: handling key=l. - debug: ModeHandler: handling key=. - debug: ModeHandler: handling key=. - ``` + ```console + debug: ModeHandler: handling key=A. + debug: ModeHandler: handling key=l. + debug: ModeHandler: handling key=. + debug: ModeHandler: handling key=. + ``` - As you press the key that you are trying to remap, do you see it outputted here? If not, it means we don't subscribe to those key events. + As you press the key that you are trying to remap, do you see it outputted here? If not, it means we don't subscribe to those key events. ### Vim settings @@ -415,60 +412,60 @@ Configuration settings that have been copied from vim. Vim settings are loaded i #### `"vim.ignorecase"` -* Ignore case in search patterns -* Type: Boolean (Default: `true`) +- Ignore case in search patterns +- Type: Boolean (Default: `true`) #### `"vim.smartcase"` -* Override the 'ignorecase' setting if the search pattern contains upper case characters -* Type: Boolean (Default: `true`) +- Override the 'ignorecase' setting if the search pattern contains upper case characters +- Type: Boolean (Default: `true`) #### `"vim.hlsearch"` -* When there is a previous search pattern, highlight all its matches -* Type: Boolean (Default: `false`) +- When there is a previous search pattern, highlight all its matches +- Type: Boolean (Default: `false`) #### `"vim.incsearch"` -* Show the next search match while you're searching. -* Type: Boolean (Default: `true`) +- Show the next search match while you're searching. +- Type: Boolean (Default: `true`) #### `"vim.autoindent"` -* Copy indent from current line when starting a new line -* Type: Boolean (Default: `true`) +- Copy indent from current line when starting a new line +- Type: Boolean (Default: `true`) #### `"vim.timeout"` -* Timeout in milliseconds for remapped commands -* Type: Number (Default: `1000`) +- Timeout in milliseconds for remapped commands +- Type: Number (Default: `1000`) #### `"vim.showcmd"` -* Show the text of any command you are in the middle of writing. -* Type: Boolean (Default: `true`) +- Show the text of any command you are in the middle of writing. +- Type: Boolean (Default: `true`) #### `"vim.showmodename"` -* Show the name of the current mode in the statusbar. -* Type: Boolean (Default: `true`) +- Show the name of the current mode in the statusbar. +- Type: Boolean (Default: `true`) #### `"vim.textwidth"` -* Width to word-wrap to when using `gq`. -* Type: number (Default: `80`) +- Width to word-wrap to when using `gq`. +- Type: number (Default: `80`) #### `"vim.leader"` -* What key should `` map to in key remappings? -* Type: string (Default: `\`) +- What key should `` map to in key remappings? +- Type: string (Default: `\`) #### `"vim.whichwrap"` -* Controls wrapping at beginning and end of line. -* Comma-separated set of keys that should wrap to next/previous line. Arrow keys are represented by `[` and `]` in insert mode, `<` and `>` in normal and visual mode. -* Type: string (Default: ``) -* To wrap "everything", set this to `h,l,<,>,[,]` +- Controls wrapping at beginning and end of line. +- Comma-separated set of keys that should wrap to next/previous line. Arrow keys are represented by `[` and `]` in insert mode, `<` and `>` in normal and visual mode. +- Type: string (Default: ``) +- To wrap "everything", set this to `h,l,<,>,[,]` ## 🖱️ Multi-Cursor Mode @@ -476,14 +473,14 @@ Configuration settings that have been copied from vim. Vim settings are loaded i Enter multi-cursor mode by: -* On OSX, `cmd-d`. On Windows, `ctrl-d`. -* `gb`, a new shortcut we added which is equivalent to `cmd-d` (OSX) or `ctrl-d` (Windows). It adds another cursor at the next word that matches the word the cursor is currently on. -* Running "Add Cursor Above/Below" or the shortcut on any platform. +- On OSX, `cmd-d`. On Windows, `ctrl-d`. +- `gb`, a new shortcut we added which is equivalent to `cmd-d` (OSX) or `ctrl-d` (Windows). It adds another cursor at the next word that matches the word the cursor is currently on. +- Running "Add Cursor Above/Below" or the shortcut on any platform. Once you have multiple cursors, you should be able to use Vim commands as you see fit. Most should work; some are unsupported (ref [PR#587](https://github.com/VSCodeVim/Vim/pull/587)). -* Each cursor has its own clipboard. -* Pressing Escape in Multi-Cursor Visual Mode will bring you to Multi-Cursor Normal mode. Pressing it again will return you to Normal mode. +- Each cursor has its own clipboard. +- Pressing Escape in Multi-Cursor Visual Mode will bring you to Multi-Cursor Normal mode. Pressing it again will return you to Normal mode. ## 🔌 Emulated Plugins @@ -511,27 +508,27 @@ Based on [vim-easymotion](https://github.com/easymotion/vim-easymotion). To acti Once easymotion is active, initiate motions using the following commands. After you initiate the motion, text decorators/markers will be displayed and you can press the keys displayed to jump to that position. `leader` is configurable and is `\` by default. -Motion Command | Description ----|-------- -` s `|Search character -` f `|Find character forwards -` F `|Find character backwards -` t `|Til character forwards -` T `|Til character backwards -` w`|Start of word forwards -` b`|Start of word backwards -` l`|matches beginning & ending of word, camelCase, after _ and after # forwards -` h`|matches beginning & ending of word, camelCase, after _ and after # backwards -` e`|End of word forwards -` ge`|End of word backwards -` j`|Start of line forwards -` k`|Start of line backwards -` / ... `|Search n-character -` bdt`|Til character -` bdw`|Start of word -` bde`|End of word -` bdjk`|Start of line -` j`|JumpToAnywhere motion; default behavior matches beginning & ending of word, camelCase, after _ and after # +| Motion Command | Description | +| ----------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| ` s ` | Search character | +| ` f ` | Find character forwards | +| ` F ` | Find character backwards | +| ` t ` | Til character forwards | +| ` T ` | Til character backwards | +| ` w` | Start of word forwards | +| ` b` | Start of word backwards | +| ` l` | matches beginning & ending of word, camelCase, after \_ and after # forwards | +| ` h` | matches beginning & ending of word, camelCase, after \_ and after # backwards | +| ` e` | End of word forwards | +| ` ge` | End of word backwards | +| ` j` | Start of line forwards | +| ` k` | Start of line backwards | +| ` / ... ` | Search n-character | +| ` bdt` | Til character | +| ` bdw` | Start of word | +| ` bde` | End of word | +| ` bdjk` | Start of line | +| ` j` | JumpToAnywhere motion; default behavior matches beginning & ending of word, camelCase, after \_ and after # | ` (2s|2f|2F|2t|2T) ` and ` bd2t char>` are also available. The difference is character count required for search. @@ -540,19 +537,19 @@ This mapping is not a standard mapping, so it is recommended to use your custom You can customize the appearance of easymotion markers (the boxes with letters) using the following settings: -Setting | Description ----|-------- -`vim.easymotionMarkerBackgroundColor`|The background color of the marker box. -`vim.easymotionMarkerForegroundColorOneChar`|The font color for one-character markers. -`vim.easymotionMarkerForegroundColorTwoChar`|The font color for two-character markers, used to differentiate from one-character markers. -`vim.easymotionMarkerWidthPerChar`|The width in pixels allotted to each character. -`vim.easymotionMarkerHeight`|The height of the marker. -`vim.easymotionMarkerFontFamily`|The font family used for the marker text. -`vim.easymotionMarkerFontSize`|The font size used for the marker text. -`vim.easymotionMarkerFontWeight`|The font weight used for the marker text. -`vim.easymotionMarkerYOffset`|The distance between the top of the marker and the text (will typically need some adjusting if height or font size have been changed). -`vim.easymotionKeys`|The characters used for jump marker name -`vim.easymotionJumpToAnywhereRegex`| Custom regex to match for JumpToAnywhere motion (analogous to `Easymotion_re_anywhere`). Example setting (which also matches start & end of line, as well as Javascript comments in addition to the regular behavior (note the double escaping required): ^\\s*.|\\b[A-Za-z0-9]|[A-Za-z0-9]\\b|_.|\\#.|[a-z][A-Z]|//|.$" +| Setting | Description | +| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `vim.easymotionMarkerBackgroundColor` | The background color of the marker box. | +| `vim.easymotionMarkerForegroundColorOneChar` | The font color for one-character markers. | +| `vim.easymotionMarkerForegroundColorTwoChar` | The font color for two-character markers, used to differentiate from one-character markers. | +| `vim.easymotionMarkerWidthPerChar` | The width in pixels allotted to each character. | +| `vim.easymotionMarkerHeight` | The height of the marker. | +| `vim.easymotionMarkerFontFamily` | The font family used for the marker text. | +| `vim.easymotionMarkerFontSize` | The font size used for the marker text. | +| `vim.easymotionMarkerFontWeight` | The font weight used for the marker text. | +| `vim.easymotionMarkerYOffset` | The distance between the top of the marker and the text (will typically need some adjusting if height or font size have been changed). | +| `vim.easymotionKeys` | The characters used for jump marker name | +| `vim.easymotionJumpToAnywhereRegex` | Custom regex to match for JumpToAnywhere motion (analogous to `Easymotion_re_anywhere`). Example setting (which also matches start & end of line, as well as Javascript comments in addition to the regular behavior (note the double escaping required): ^\\s\*. | \\b[A-Za-z0-9] | [A-Za-z0-9]\\b | \_. | \\#. | [a-z][a-z] | // | .$" | ### vim-surround @@ -562,19 +559,19 @@ Based on [surround.vim](https://github.com/tpope/vim-surround), the plugin is us Surround is enabled by default, but can be disabled by setting `"vim.surround": false`. -Surround Command | Description ----|-------- -`d s `|Delete existing surround -`c s `|Change surround existing to desired -`y s `|Surround something with something using motion (as in "you surround") -`S `|Surround when in visual modes (surrounds full selection) +| Surround Command | Description | +| ------------------------------------ | --------------------------------------------------------------------- | +| `d s ` | Delete existing surround | +| `c s ` | Change surround existing to desired | +| `y s ` | Surround something with something using motion (as in "you surround") | +| `S ` | Surround when in visual modes (surrounds full selection) | Some examples: -* `"test"` with cursor inside quotes type cs"' to end up with `'test'` -* `"test"` with cursor inside quotes type ds" to end up with `test` -* `"test"` with cursor inside quotes type cs"t and enter 123> to end up with `<123>test` -* `test` with cursor on word test type ysaw) to end up with `(test)` +- `"test"` with cursor inside quotes type cs"' to end up with `'test'` +- `"test"` with cursor inside quotes type ds" to end up with `test` +- `"test"` with cursor inside quotes type cs"t and enter 123> to end up with `<123>test` +- `test` with cursor on word test type ysaw) to end up with `(test)` ### vim-commentary @@ -582,8 +579,8 @@ Similar to [vim-commentary](https://github.com/tpope/vim-commentary), but uses t Usage examples: -* `gc` - toggles line comment. For example `gcc` to toggle line comment for current line and `gc2j` to toggle line comments for the current line and the next two lines. -* `gC` - toggles block comment. For example `gCi)` to comment out everything within parenthesis. +- `gc` - toggles line comment. For example `gcc` to toggle line comment for current line and `gc2j` to toggle line comments for the current line and the next two lines. +- `gC` - toggles block comment. For example `gCi)` to comment out everything within parenthesis. ### vim-indent-object @@ -591,36 +588,36 @@ Based on [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object) Provided there is a new line between the opening and closing braces / tag, it can be considered an agnostic `cib`/`ci{`/`ci[`/`cit`. -Command | Description ----|-------- -`ii`|This indentation level -`ai`|This indentation level and the line above (think `if` statements in Python) -`aI`|This indentation level, the line above, and the line after (think `if` statements in C/C++/Java/etc) +| Command | Description | +| -------------- | ---------------------------------------------------------------------------------------------------- | +| `ii` | This indentation level | +| `ai` | This indentation level and the line above (think `if` statements in Python) | +| `aI` | This indentation level, the line above, and the line after (think `if` statements in C/C++/Java/etc) | ### vim-sneak Based on [vim-sneak](https://github.com/justinmk/vim-sneak). To activate sneak, you need to make sure that `sneak` is set to `true` in settings.json (default is `false`). -```"vim.sneakUseIgnorecaseAndSmartcase": true``` can be set if desired to allow for respecting `vim.ignorecase` and `vim.smartcase` while sneaking (default is `false`) +`"vim.sneakUseIgnorecaseAndSmartcase": true` can be set if desired to allow for respecting `vim.ignorecase` and `vim.smartcase` while sneaking (default is `false`) Once sneak is active, initiate motions using the following commands. For operators sneak uses `z` instead of `s` because `s` is already taken by the surround plugin. -Motion Command | Description ----|-------- -`s`|Move forward to the first occurence of `` -`S`|Move backward to the first occurence of `` -`z`|Perform `` forward to the first occurence of `` -`Z`|Perform `` backward to the first occurence of `` +| Motion Command | Description | +| ------------------------- | ---------------------------------------------------------------------- | +| `s` | Move forward to the first occurence of `` | +| `S` | Move backward to the first occurence of `` | +| `z` | Perform `` forward to the first occurence of `` | +| `Z` | Perform `` backward to the first occurence of `` | ## 🎩 VSCodeVim tricks! Vim has a lot of nifty tricks and we try to preserve some of them: -* `gd` - jump to definition. -* `gq` - on a visual selection reflow and wordwrap blocks of text, preserving commenting style. Great for formatting documentation comments. -* `gb` - adds another cursor on the next word it finds which is the same as the word under the cursor. -* `af` - visual mode command which selects increasingly large blocks of text. For example, if you had "blah (foo [bar 'ba|z'])" then it would select 'baz' first. If you pressed `af` again, it'd then select [bar 'baz'], and if you did it a third time it would select "(foo [bar 'baz'])". -* `gh` - equivalent to hovering your mouse over wherever the cursor is. Handy for seeing types and error messages without reaching for the mouse! +- `gd` - jump to definition. +- `gq` - on a visual selection reflow and wordwrap blocks of text, preserving commenting style. Great for formatting documentation comments. +- `gb` - adds another cursor on the next word it finds which is the same as the word under the cursor. +- `af` - visual mode command which selects increasingly large blocks of text. For example, if you had "blah (foo [bar 'ba|z'])" then it would select 'baz' first. If you pressed `af` again, it'd then select [bar 'baz'], and if you did it a third time it would select "(foo [bar 'baz'])". +- `gh` - equivalent to hovering your mouse over wherever the cursor is. Handy for seeing types and error messages without reaching for the mouse! ## 📚 F.A.Q. @@ -630,7 +627,7 @@ Set the [`useCtrlKeys` setting](#vimusectrlkeys) to `false`. ### Moving `j`/`k` over folds opens up the folds -Try setting `vim.foldfix` to `true`. This is a hack; it works fine, but there are side effects (see [issue#22276](https://github.com/Microsoft/vscode/issues/22276)). +Try setting `vim.foldfix` to `true`. This is a hack; it works fine, but there are side effects (see [issue#22276](https://github.com/Microsoft/vscode/issues/22276)). ### Key repeat doesn't work @@ -646,9 +643,9 @@ This extension exposes a remappable command to show a vscode style quick-pick, l ```json { - "key": "shift+;", - "command": "vim.showQuickpickCmdLine", - "when": "editorTextFocus && vim.mode != 'Insert'" + "key": "shift+;", + "command": "vim.showQuickpickCmdLine", + "when": "editorTextFocus && vim.mode != 'Insert'" } ``` @@ -656,9 +653,9 @@ Or for Zen mode only: ```json { - "key": "shift+;", - "command": "vim.showQuickpickCmdLine", - "when": "inZenMode && vim.mode != 'Insert'" + "key": "shift+;", + "command": "vim.showQuickpickCmdLine", + "when": "inZenMode && vim.mode != 'Insert'" } ``` @@ -668,8 +665,8 @@ This project is maintained by a group of awesome [people](https://github.com/VSC ### Special shoutouts to cool contributors -* Thanks to @xconverge for making over 100 commits to the repo. If you're wondering why your least favorite bug packed up and left, it was probably him. -* Thanks to @Metamist for implementing EasyMotion! -* Thanks to @sectioneight for implementing text objects! -* Special props to [Kevin Coleman](http://kevincoleman.io), who created our awesome logo! -* Shoutout to @chillee aka Horace He for his contributions and hard work. +- Thanks to @xconverge for making over 100 commits to the repo. If you're wondering why your least favorite bug packed up and left, it was probably him. +- Thanks to @Metamist for implementing EasyMotion! +- Thanks to @sectioneight for implementing text objects! +- Special props to [Kevin Coleman](http://kevincoleman.io), who created our awesome logo! +- Shoutout to @chillee aka Horace He for his contributions and hard work. diff --git a/ROADMAP.md b/ROADMAP.md index c5ced543a96..0525fe70ad6 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -18,575 +18,575 @@ These are the big Vim features, put generally in the order in which we plan to implement them. -Status | Command ----|-------- -:white_check_mark: | Normal Mode -:white_check_mark: | Insert Mode -:white_check_mark: | Visual Mode -:white_check_mark: | Visual Line Mode -:white_check_mark: | Number Prefixes -:white_check_mark: | . Operator -:white_check_mark: | Searching with / and ? -:white_check_mark: | Correct Undo/Redo -:warning: | Command Remapping -:warning: | Marks -:white_check_mark: | Text Objects -:white_check_mark: | Visual Block Mode -:white_check_mark: | Replace Mode -:white_check_mark: | Multiple Select Mode -:warning: | Macros -:warning: | Buffer/Window/Tab - +| Status | Command | +| ------------------ | ---------------------- | +| :white_check_mark: | Normal Mode | +| :white_check_mark: | Insert Mode | +| :white_check_mark: | Visual Mode | +| :white_check_mark: | Visual Line Mode | +| :white_check_mark: | Number Prefixes | +| :white_check_mark: | . Operator | +| :white_check_mark: | Searching with / and ? | +| :white_check_mark: | Correct Undo/Redo | +| :warning: | Command Remapping | +| :warning: | Marks | +| :white_check_mark: | Text Objects | +| :white_check_mark: | Visual Block Mode | +| :white_check_mark: | Replace Mode | +| :white_check_mark: | Multiple Select Mode | +| :warning: | Macros | +| :warning: | Buffer/Window/Tab | Now follows an exhaustive list of every known Vim command that we could find. ## Custom commands -* `gh` - show the hover tooltip. -* `gb` - add an additional cursor at the next place that matches `*`. +- `gh` - show the hover tooltip. +- `gb` - add an additional cursor at the next place that matches `*`. ## Left-right motions -Status | Command | Description ----|--------|------------ -:white_check_mark: |:1234: h | left (also: CTRL-H, BS, or Left key) -:white_check_mark: |:1234: l | right (also: Space or Right key) -:white_check_mark: | 0 | to first character in the line (also: Home key) -:white_check_mark: | ^ | to first non-blank character in the line -:white_check_mark: |:1234: $ | to the last character in the line (N-1 lines lower) (also: End key) -:white_check_mark: | g0 | to first character in screen line (differs from "0" when lines wrap) -:white_check_mark: | g^ | to first non-blank character in screen line (differs from "^" when lines wrap) -:white_check_mark: |:1234: g$ | to last character in screen line (differs from "$" when lines wrap) -:white_check_mark: | gm | to middle of the screen line -:white_check_mark: |:1234: \| | to column N (default: 1) -:white_check_mark: |:1234: f{char} | to the Nth occurrence of {char} to the right -:white_check_mark: |:1234: F{char} | to the Nth occurrence of {char} to the left -:white_check_mark: |:1234: t{char} | till before the Nth occurrence of {char} to the right -:white_check_mark: |:1234: T{char} | till before the Nth occurrence of {char} to the left -:white_check_mark: |:1234: ; | repeat the last "f", "F", "t", or "T" N times -:white_check_mark: |:1234: , | repeat the last "f", "F", "t", or "T" N times in opposite direction +| Status | Command | Description | +| ------------------ | -------------- | ------------------------------------------------------------------------------ | +| :white_check_mark: | :1234: h | left (also: CTRL-H, BS, or Left key) | +| :white_check_mark: | :1234: l | right (also: Space or Right key) | +| :white_check_mark: | 0 | to first character in the line (also: Home key) | +| :white_check_mark: | ^ | to first non-blank character in the line | +| :white_check_mark: | :1234: $ | to the last character in the line (N-1 lines lower) (also: End key) | +| :white_check_mark: | g0 | to first character in screen line (differs from "0" when lines wrap) | +| :white_check_mark: | g^ | to first non-blank character in screen line (differs from "^" when lines wrap) | +| :white_check_mark: | :1234: g$ | to last character in screen line (differs from "$" when lines wrap) | +| :white_check_mark: | gm | to middle of the screen line | +| :white_check_mark: | :1234: \| | to column N (default: 1) | +| :white_check_mark: | :1234: f{char} | to the Nth occurrence of {char} to the right | +| :white_check_mark: | :1234: F{char} | to the Nth occurrence of {char} to the left | +| :white_check_mark: | :1234: t{char} | till before the Nth occurrence of {char} to the right | +| :white_check_mark: | :1234: T{char} | till before the Nth occurrence of {char} to the left | +| :white_check_mark: | :1234: ; | repeat the last "f", "F", "t", or "T" N times | +| :white_check_mark: | :1234: , | repeat the last "f", "F", "t", or "T" N times in opposite direction | ## Up-down motions -Status | Command | Description ----|--------|------------ -:white_check_mark: | :1234: k | up N lines (also: CTRL-P and Up) -:white_check_mark: | :1234: j | up N lidown N lines (also: CTRL-J, CTRL-N, NL, and Down) -:white_check_mark: | :1234: - | up N lines, on the first non-blank character -:white_check_mark: | :1234: + | down N lines, on the first non-blank character (also: CTRL-M and CR) -:white_check_mark: | :1234: _ | down N-1 lines, on the first non-blank character -:white_check_mark: | :1234: G | goto line N (default: last line), on the first non-blank character -:white_check_mark: | :1234: gg | goto line N (default: first line), on the first non-blank character -:white_check_mark: | :1234: % | goto line N percentage down in the file; N must be given, otherwise it is the `%` command -:white_check_mark: | :1234: gk | up N screen lines (differs from "k" when line wraps) -:white_check_mark: | :1234: gj | own N screen lines (differs from "j" when line wraps) +| Status | Command | Description | +| ------------------ | --------- | ----------------------------------------------------------------------------------------- | +| :white_check_mark: | :1234: k | up N lines (also: CTRL-P and Up) | +| :white_check_mark: | :1234: j | up N lidown N lines (also: CTRL-J, CTRL-N, NL, and Down) | +| :white_check_mark: | :1234: - | up N lines, on the first non-blank character | +| :white_check_mark: | :1234: + | down N lines, on the first non-blank character (also: CTRL-M and CR) | +| :white_check_mark: | :1234: \_ | down N-1 lines, on the first non-blank character | +| :white_check_mark: | :1234: G | goto line N (default: last line), on the first non-blank character | +| :white_check_mark: | :1234: gg | goto line N (default: first line), on the first non-blank character | +| :white_check_mark: | :1234: % | goto line N percentage down in the file; N must be given, otherwise it is the `%` command | +| :white_check_mark: | :1234: gk | up N screen lines (differs from "k" when line wraps) | +| :white_check_mark: | :1234: gj | own N screen lines (differs from "j" when line wraps) | ## Text object motions -Status | Command | Description ----|--------|------------ -:white_check_mark: | :1234: w | N words forward -:white_check_mark: | :1234: W | N blank-separated |WORD|s forward -:white_check_mark: | :1234: e | N words forward to the end of the Nth word -:white_check_mark: | :1234: E | N words forward to the end of the Nth blank-separated |WORD| -:white_check_mark: | :1234: b | N words backward -:white_check_mark: | :1234: B | N blank-separated |WORD|s backward -:white_check_mark: | :1234: ge | N words backward to the end of the Nth word -:white_check_mark: | :1234: gE | N words backward to the end of the Nth blank-separated |WORD| -:white_check_mark: | :1234: ) | N sentences forward -:white_check_mark: | :1234: ( | N sentences backward -:white_check_mark: | :1234: } | N paragraphs forward -:white_check_mark: | :1234: { | N paragraphs backward -:white_check_mark: | :1234: ]] | N sections forward, at start of section -:white_check_mark: | :1234: [[ | N sections backward, at start of section -:white_check_mark: | :1234: ][ | N sections forward, at end of section -:white_check_mark: | :1234: [] | N sections backward, at end of section -:white_check_mark: | :1234: [( | N times back to unclosed '(' -:white_check_mark: | :1234: [{ | N times back to unclosed '{' -:arrow_down: | :1234: [m | N times back to start of method (for Java) -:arrow_down: | :1234: [M | N times back to end of method (for Java) -:white_check_mark: | :1234: ]) | N times forward to unclosed ')' -:white_check_mark: | :1234: ]} | N times forward to unclosed '}' -:arrow_down: | :1234: ]m | N times forward to start of method (for Java) -:arrow_down: | :1234: ]M | N times forward to end of method (for Java) -:arrow_down: | :1234: [# | N times back to unclosed "#if" or "#else" -:arrow_down: | :1234: ]# | N times forward to unclosed "#else" or "#endif" -:arrow_down: | :1234: [* | N times back to start of a C comment "/*" -:arrow_down: | :1234: ]* | N times forward to end of a C comment "*/" +| Status | Command | Description | +| ------------------ | ---------- | ------------------------------------------------------ | +| :white_check_mark: | :1234: w | N words forward | +| :white_check_mark: | :1234: W | N blank-separated | WORD | s forward | +| :white_check_mark: | :1234: e | N words forward to the end of the Nth word | +| :white_check_mark: | :1234: E | N words forward to the end of the Nth blank-separated | WORD | +| :white_check_mark: | :1234: b | N words backward | +| :white_check_mark: | :1234: B | N blank-separated | WORD | s backward | +| :white_check_mark: | :1234: ge | N words backward to the end of the Nth word | +| :white_check_mark: | :1234: gE | N words backward to the end of the Nth blank-separated | WORD | +| :white_check_mark: | :1234: ) | N sentences forward | +| :white_check_mark: | :1234: ( | N sentences backward | +| :white_check_mark: | :1234: } | N paragraphs forward | +| :white_check_mark: | :1234: { | N paragraphs backward | +| :white_check_mark: | :1234: ]] | N sections forward, at start of section | +| :white_check_mark: | :1234: [[ | N sections backward, at start of section | +| :white_check_mark: | :1234: ][ | N sections forward, at end of section | +| :white_check_mark: | :1234: [] | N sections backward, at end of section | +| :white_check_mark: | :1234: [( | N times back to unclosed '(' | +| :white_check_mark: | :1234: [{ | N times back to unclosed '{' | +| :arrow_down: | :1234: [m | N times back to start of method (for Java) | +| :arrow_down: | :1234: [M | N times back to end of method (for Java) | +| :white_check_mark: | :1234: ]) | N times forward to unclosed ')' | +| :white_check_mark: | :1234: ]} | N times forward to unclosed '}' | +| :arrow_down: | :1234: ]m | N times forward to start of method (for Java) | +| :arrow_down: | :1234: ]M | N times forward to end of method (for Java) | +| :arrow_down: | :1234: [# | N times back to unclosed "#if" or "#else" | +| :arrow_down: | :1234: ]# | N times forward to unclosed "#else" or "#endif" | +| :arrow_down: | :1234: [\* | N times back to start of a C comment "/\*" | +| :arrow_down: | :1234: ]\* | N times forward to end of a C comment "\*/" | ## Pattern searches -Status | Command | Description | Note ----|--------|------------|------------------ -:white_check_mark: :star: | :1234: `/{pattern}[/[offset]]` | search forward for the Nth occurrence of {pattern} | Currently we only support JavaScript Regex but not Vim's in-house Regex engine. -:white_check_mark: :star: | :1234: `?{pattern}[?[offset]]` | search backward for the Nth occurrence of {pattern} | Currently we only support JavaScript Regex but not Vim's in-house Regex engine. -:warning: | :1234: `/` | repeat last search, in the forward direction | {count} is not supported. -:warning: | :1234: `?` | repeat last search, in the backward direction | {count} is not supported. -:warning: | :1234: n | repeat last search | {count} is not supported. -:warning: | :1234: N | repeat last search, in opposite direction | {count} is not supported. -:white_check_mark: | :1234: * | search forward for the identifier under the cursor -:white_check_mark: | :1234: # | search backward for the identifier under the cursor -:arrow_down: | :1234: g* | like "*", but also find partial matches -:arrow_down: | :1234: g# | like "#", but also find partial matches -:white_check_mark: | gd | goto local declaration of identifier under the cursor -:arrow_down: | gD | goto global declaration of identifier under the cursor +| Status | Command | Description | Note | +| ------------------------- | ---------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- | +| :white_check_mark: :star: | :1234: `/{pattern}[/[offset]]` | search forward for the Nth occurrence of {pattern} | Currently we only support JavaScript Regex but not Vim's in-house Regex engine. | +| :white_check_mark: :star: | :1234: `?{pattern}[?[offset]]` | search backward for the Nth occurrence of {pattern} | Currently we only support JavaScript Regex but not Vim's in-house Regex engine. | +| :warning: | :1234: `/` | repeat last search, in the forward direction | {count} is not supported. | +| :warning: | :1234: `?` | repeat last search, in the backward direction | {count} is not supported. | +| :warning: | :1234: n | repeat last search | {count} is not supported. | +| :warning: | :1234: N | repeat last search, in opposite direction | {count} is not supported. | +| :white_check_mark: | :1234: \* | search forward for the identifier under the cursor | +| :white_check_mark: | :1234: # | search backward for the identifier under the cursor | +| :arrow_down: | :1234: g\* | like "\*", but also find partial matches | +| :arrow_down: | :1234: g# | like "#", but also find partial matches | +| :white_check_mark: | gd | goto local declaration of identifier under the cursor | +| :arrow_down: | gD | goto global declaration of identifier under the cursor | ## Marks and motions -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | m{a-zA-Z} | mark current position with mark {a-zA-Z} -:white_check_mark:| `{a-z} | go to mark {a-z} within current file -:white_check_mark:| `{A-Z} | go to mark {A-Z} in any file -:white_check_mark:| `{0-9} | go to the position where Vim was previously exited -:white_check_mark: | `` | go to the position before the last jump -:arrow_down: | `" | go to the position when last editing this file -:arrow_down: | `[ | go to the start of the previously operated or put text -:arrow_down: | `] | go to the end of the previously operated or put text -:arrow_down: | `< | go to the start of the (previous) Visual area -:arrow_down: | `> | go to the end of the (previous) Visual area -:white_check_mark: | `. | go to the position of the last change in this file -:white_check_mark: | '. | go to the position of the last change in this file -:arrow_down: | '{a-zA-Z0-9[]'"<>.} | same as `, but on the first non-blank in the line -:arrow_down: | :marks | print the active marks -:arrow_down: | :1234: CTRL-O | go to Nth older position in jump list -:arrow_down: | :1234: CTRL-I | go to Nth newer position in jump list -:arrow_down: | :ju[mps] | print the jump list +| Status | Command | Description | +| ------------------ | ----------------------------------------------------------- | -------------------------------------------------- | +| :white_check_mark: | m{a-zA-Z} | mark current position with mark {a-zA-Z} | +| :white_check_mark: | `{a-z} | go to mark {a-z} within current file | +| :white_check_mark: | `{A-Z} | go to mark {A-Z} in any file | +| :white_check_mark: | `{0-9} | go to the position where Vim was previously exited | +| :white_check_mark: | `` | go to the position before the last jump | +| :arrow_down: | `" | go to the position when last editing this file | +| :arrow_down: | `[ | go to the start of the previously operated or put text | +| :arrow_down: | `] | go to the end of the previously operated or put text | +| :arrow_down: | `< | go to the start of the (previous) Visual area | +| :arrow_down: | `> | go to the end of the (previous) Visual area | +| :white_check_mark: | `. | go to the position of the last change in this file | +| :white_check_mark: | '. | go to the position of the last change in this file | +| :arrow_down: | '{a-zA-Z0-9[]'"<>.} | same as `, but on the first non-blank in the line | +| :arrow_down: | :marks | print the active marks | +| :arrow_down: | :1234: CTRL-O | go to Nth older position in jump list | +| :arrow_down: | :1234: CTRL-I | go to Nth newer position in jump list | +| :arrow_down: | :ju[mps] | print the jump list | ## Various motions -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | % | find the next brace, bracket, comment, or "#if"/ "#else"/"#endif" in this line and go to its match -:white_check_mark: |:1234: H | go to the Nth line in the window, on the first non-blank -:white_check_mark: | M | go to the middle line in the window, on the first non-blank -:white_check_mark: |:1234: L | go to the Nth line from the bottom, on the first non-blank -:arrow_down:|:1234: go | go to Nth byte in the buffer -:arrow_down:|:[range]go[to] [off] | go to [off] byte in the buffer +| Status | Command | Description | +| ------------------ | ------------------- | -------------------------------------------------------------------------------------------------- | +| :white_check_mark: | % | find the next brace, bracket, comment, or "#if"/ "#else"/"#endif" in this line and go to its match | +| :white_check_mark: | :1234: H | go to the Nth line in the window, on the first non-blank | +| :white_check_mark: | M | go to the middle line in the window, on the first non-blank | +| :white_check_mark: | :1234: L | go to the Nth line from the bottom, on the first non-blank | +| :arrow_down: | :1234: go | go to Nth byte in the buffer | +| :arrow_down: | :[range]go[to][off] | go to [off] byte in the buffer | ## Using tags The following are all marked low priority because VSCode has very good support for tags with Goto Symbol. Try it from the command palette if you haven't yet! -Status | Command | Description ----|--------|------------------------------ -:arrow_down:| :ta[g][!] {tag} | jump to tag {tag} -:arrow_down:| :[count]ta[g][!] | jump to [count]'th newer tag in tag list -:arrow_down:| CTRL-] | jump to the tag under cursor, unless changes have been made -:arrow_down:| :ts[elect][!] [tag] | list matching tags and select one to jump to -:arrow_down:| :tj[ump][!] [tag] | jump to tag [tag] or select from list when there are multiple matches -:arrow_down:| :lt[ag][!] [tag] | jump to tag [tag] and add matching tags to the location list -:arrow_down:| :tagsa | print tag list -:arrow_down:| :1234: CTRL-T | jump back from Nth older tag in tag list -:arrow_down:| :[count]po[p][!] | jump back from [count]'th older tag in tag list -:arrow_down:| :[count]tn[ext][!] | jump to [count]'th next matching tag -:arrow_down:| :[count]tp[revious][!] | jump to [count]'th previous matching tag -:arrow_down:| :[count]tr[ewind][!] | jump to [count]'th matching tag -:arrow_down:| :tl[ast][!] | jump to last matching tag -:arrow_down:| :pt[ag] {tag} | open a preview window to show tag {tag} -:arrow_down:| CTRL-W } | like CTRL-] but show tag in preview window -:arrow_down:| :pts[elect] | like ":tselect" but show tag in preview window -:arrow_down:| :ptj[ump] | like ":tjump" but show tag in preview window -:arrow_down:| :pc[lose] | close tag preview window -:arrow_down:| CTRL-W z | close tag preview window` +| Status | Command | Description | +| ------------ | ---------------------- | --------------------------------------------------------------------- | +| :arrow_down: | :ta[g][!] {tag} | jump to tag {tag} | +| :arrow_down: | :[count]ta[g][!] | jump to [count]'th newer tag in tag list | +| :arrow_down: | CTRL-] | jump to the tag under cursor, unless changes have been made | +| :arrow_down: | :ts[elect][!] [tag] | list matching tags and select one to jump to | +| :arrow_down: | :tj[ump][!] [tag] | jump to tag [tag] or select from list when there are multiple matches | +| :arrow_down: | :lt[ag][!] [tag] | jump to tag [tag] and add matching tags to the location list | +| :arrow_down: | :tagsa | print tag list | +| :arrow_down: | :1234: CTRL-T | jump back from Nth older tag in tag list | +| :arrow_down: | :[count]po[p][!] | jump back from [count]'th older tag in tag list | +| :arrow_down: | :[count]tn[ext][!] | jump to [count]'th next matching tag | +| :arrow_down: | :[count]tp[revious][!] | jump to [count]'th previous matching tag | +| :arrow_down: | :[count]tr[ewind][!] | jump to [count]'th matching tag | +| :arrow_down: | :tl[ast][!] | jump to last matching tag | +| :arrow_down: | :pt[ag] {tag} | open a preview window to show tag {tag} | +| :arrow_down: | CTRL-W } | like CTRL-] but show tag in preview window | +| :arrow_down: | :pts[elect] | like ":tselect" but show tag in preview window | +| :arrow_down: | :ptj[ump] | like ":tjump" but show tag in preview window | +| :arrow_down: | :pc[lose] | close tag preview window | +| :arrow_down: | CTRL-W z | close tag preview window` | ## Scrolling -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | :1234: CTRL-E | window N lines downwards (default: 1) -:white_check_mark: | :1234: CTRL-D | window N lines Downwards (default: 1/2 window) -:white_check_mark: | :1234: CTRL-F | window N pages Forwards (downwards) -:white_check_mark: | :1234: CTRL-Y | window N lines upwards (default: 1) -:white_check_mark: | :1234: CTRL-U | window N lines Upwards (default: 1/2 window) -:white_check_mark: | :1234: CTRL-B | window N pages Backwards (upwards) -:white_check_mark: | z CR or zt | redraw, current line at top of window -:white_check_mark: | z. or zz | redraw, current line at center of window -:white_check_mark: | z- or zb | redraw, current line at bottom of window +| Status | Command | Description | +| ------------------ | ------------- | ---------------------------------------------- | +| :white_check_mark: | :1234: CTRL-E | window N lines downwards (default: 1) | +| :white_check_mark: | :1234: CTRL-D | window N lines Downwards (default: 1/2 window) | +| :white_check_mark: | :1234: CTRL-F | window N pages Forwards (downwards) | +| :white_check_mark: | :1234: CTRL-Y | window N lines upwards (default: 1) | +| :white_check_mark: | :1234: CTRL-U | window N lines Upwards (default: 1/2 window) | +| :white_check_mark: | :1234: CTRL-B | window N pages Backwards (upwards) | +| :white_check_mark: | z CR or zt | redraw, current line at top of window | +| :white_check_mark: | z. or zz | redraw, current line at center of window | +| :white_check_mark: | z- or zb | redraw, current line at bottom of window | These only work when 'wrap' is off: -Status | Command | Description | Note ----|--------|------------------|------------ -:white_check_mark: :star: | :1234: zh | scroll screen N characters to the right | In Code, the cursor wil always move when you run this command, whether the horizontal scrollbar moves or not. -:white_check_mark: :star: | :1234: zl | scroll screen N characters to the left | As above -:white_check_mark: :star: | :1234: zH | scroll screen half a screenwidth to the right | As above -:white_check_mark: :star: | :1234: zL | scroll screen half a screenwidth to the left | As above +| Status | Command | Description | Note | +| ------------------------- | --------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| :white_check_mark: :star: | :1234: zh | scroll screen N characters to the right | In Code, the cursor wil always move when you run this command, whether the horizontal scrollbar moves or not. | +| :white_check_mark: :star: | :1234: zl | scroll screen N characters to the left | As above | +| :white_check_mark: :star: | :1234: zH | scroll screen half a screenwidth to the right | As above | +| :white_check_mark: :star: | :1234: zL | scroll screen half a screenwidth to the left | As above | ## Inserting text -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | :1234: a | append text after the cursor (N times) -:white_check_mark: | :1234: A | append text at the end of the line (N times) -:white_check_mark: | :1234: i | insert text before the cursor (N times) (also: Insert) -:white_check_mark: | :1234: I | insert text before the first non-blank in the line (N times) -:white_check_mark: | :1234: gI | insert text in column 1 (N times) -:white_check_mark: | gi | insert at the end of the last change -:white_check_mark: | :1234: o | open a new line below the current line, append text (N times) -:white_check_mark: | :1234: O | open a new line above the current line, append text (N times) +| Status | Command | Description | +| ------------------ | --------- | ------------------------------------------------------------- | +| :white_check_mark: | :1234: a | append text after the cursor (N times) | +| :white_check_mark: | :1234: A | append text at the end of the line (N times) | +| :white_check_mark: | :1234: i | insert text before the cursor (N times) (also: Insert) | +| :white_check_mark: | :1234: I | insert text before the first non-blank in the line (N times) | +| :white_check_mark: | :1234: gI | insert text in column 1 (N times) | +| :white_check_mark: | gi | insert at the end of the last change | +| :white_check_mark: | :1234: o | open a new line below the current line, append text (N times) | +| :white_check_mark: | :1234: O | open a new line above the current line, append text (N times) | in Visual block mode: -Status | Command | Description ----|--------|------------------------------ -:white_check_mark:| I | insert the same text in front of all the selected lines -:white_check_mark:| A | append the same text after all the selected lines +| Status | Command | Description | +| ------------------ | ------- | ------------------------------------------------------- | +| :white_check_mark: | I | insert the same text in front of all the selected lines | +| :white_check_mark: | A | append the same text after all the selected lines | ## Insert mode keys leaving Insert mode: -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | Esc | end Insert mode, back to Normal mode -:white_check_mark: | CTRL-C | like Esc, but do not use an abbreviation -:white_check_mark: | CTRL-O {command} | execute {command} and return to Insert mode +| Status | Command | Description | +| ------------------ | ---------------- | ------------------------------------------- | +| :white_check_mark: | Esc | end Insert mode, back to Normal mode | +| :white_check_mark: | CTRL-C | like Esc, but do not use an abbreviation | +| :white_check_mark: | CTRL-O {command} | execute {command} and return to Insert mode | moving around: -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | cursor keys | move cursor left/right/up/down -:white_check_mark: | shift-left/right | one word left/right -:white_check_mark: | shift-up/down | one screenful backward/forward -:white_check_mark: | End | cursor after last character in the line -:white_check_mark: | Home | cursor to first character in the line +| Status | Command | Description | +| ------------------ | ---------------- | --------------------------------------- | +| :white_check_mark: | cursor keys | move cursor left/right/up/down | +| :white_check_mark: | shift-left/right | one word left/right | +| :white_check_mark: | shift-up/down | one screenful backward/forward | +| :white_check_mark: | End | cursor after last character in the line | +| :white_check_mark: | Home | cursor to first character in the line | ## Special keys in Insert mode -Status | Command | Description | Note ----|--------|-----------|------------------- -:arrow_down: |CTRL-V {char}.. | insert character literally, or enter decimal byte value -:warning: | NL or CR or CTRL-M or CTRL-J | begin new line | CTRL-M and CTRL-J are not supported -:white_check_mark: | CTRL-E | insert the character from below the cursor -:white_check_mark: | CTRL-Y | insert the character from above the cursor -:white_check_mark: :star: | CTRL-A | insert previously inserted text | We apply previously document change made in previous Insert session and we only apply changes that happen under cursor -:white_check_mark: :star: | CTRL-@ | insert previously inserted text and stop Insert mode | As above -:white_check_mark: | CTRL-R {0-9a-z%#:.-="} | insert the contents of a register -:white_check_mark: | CTRL-N | insert next match of identifier before the cursor -:white_check_mark: | CTRL-P | insert previous match of identifier before the cursor -:arrow_down:| CTRL-X ... | complete the word before the cursor in various ways -:white_check_mark: | BS or CTRL-H | delete the character before the cursor -:white_check_mark: | Del | delete the character under the cursor -:white_check_mark: | CTRL-W | delete word before the cursor -:white_check_mark: | CTRL-U | delete all entered characters in the current line -:white_check_mark: | CTRL-T | insert one shiftwidth of indent in front of the current line -:white_check_mark: | CTRL-D | delete one shiftwidth of indent in front of the current line -:arrow_down: | 0 CTRL-D | delete all indent in the current line -:arrow_down: | ^ CTRL-D | delete all indent in the current line, restore indent in next line +| Status | Command | Description | Note | +| ------------------------- | ---------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | +| :arrow_down: | CTRL-V {char}.. | insert character literally, or enter decimal byte value | +| :warning: | NL or CR or CTRL-M or CTRL-J | begin new line | CTRL-M and CTRL-J are not supported | +| :white_check_mark: | CTRL-E | insert the character from below the cursor | +| :white_check_mark: | CTRL-Y | insert the character from above the cursor | +| :white_check_mark: :star: | CTRL-A | insert previously inserted text | We apply previously document change made in previous Insert session and we only apply changes that happen under cursor | +| :white_check_mark: :star: | CTRL-@ | insert previously inserted text and stop Insert mode | As above | +| :white_check_mark: | CTRL-R {0-9a-z%#:.-="} | insert the contents of a register | +| :white_check_mark: | CTRL-N | insert next match of identifier before the cursor | +| :white_check_mark: | CTRL-P | insert previous match of identifier before the cursor | +| :arrow_down: | CTRL-X ... | complete the word before the cursor in various ways | +| :white_check_mark: | BS or CTRL-H | delete the character before the cursor | +| :white_check_mark: | Del | delete the character under the cursor | +| :white_check_mark: | CTRL-W | delete word before the cursor | +| :white_check_mark: | CTRL-U | delete all entered characters in the current line | +| :white_check_mark: | CTRL-T | insert one shiftwidth of indent in front of the current line | +| :white_check_mark: | CTRL-D | delete one shiftwidth of indent in front of the current line | +| :arrow_down: | 0 CTRL-D | delete all indent in the current line | +| :arrow_down: | ^ CTRL-D | delete all indent in the current line, restore indent in next line | ## Digraphs -Status | Command | Description ----|--------|------------------------------ -:arrow_down: | :dig[raphs] | show current list of digraphs -:arrow_down: | :dig[raphs] {char1}{char2} {number} ... | add digraph(s) to the list +| Status | Command | Description | +| ------------ | --------------------------------------- | ----------------------------- | +| :arrow_down: | :dig[raphs] | show current list of digraphs | +| :arrow_down: | :dig[raphs] {char1}{char2} {number} ... | add digraph(s) to the list | ## Special inserts -Status | Command | Description ----|--------|------------------------------ -:warning: | :r [file] | insert the contents of [file] below the cursor -:warning: | :r! {command} | insert the standard output of {command} below the cursor +| Status | Command | Description | +| --------- | ------------- | -------------------------------------------------------- | +| :warning: | :r [file] | insert the contents of [file] below the cursor | +| :warning: | :r! {command} | insert the standard output of {command} below the cursor | ## Deleting text -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | :1234: x | delete N characters under and after the cursor -:white_check_mark: | :1234: Del | delete N characters under and after the cursor -:white_check_mark: | :1234: X | delete N characters before the cursor -:white_check_mark: | :1234: d{motion} | delete the text that is moved over with {motion} -:white_check_mark: | {visual}d | delete the highlighted text -:white_check_mark: | :1234: dd | delete N lines -:white_check_mark: | :1234: D | delete to the end of the line (and N-1 more lines) -:white_check_mark: | :1234: J | join N-1 lines (delete EOLs) -:white_check_mark: | {visual}J | join the highlighted lines -:white_check_mark: | :1234: gJ | like "J", but without inserting spaces -:white_check_mark:| {visual}gJ | like "{visual}J", but without inserting spaces -:white_check_mark:| :[range]d [x] | delete [range] lines [into register x] +| Status | Command | Description | +| ------------------ | ---------------- | -------------------------------------------------- | +| :white_check_mark: | :1234: x | delete N characters under and after the cursor | +| :white_check_mark: | :1234: Del | delete N characters under and after the cursor | +| :white_check_mark: | :1234: X | delete N characters before the cursor | +| :white_check_mark: | :1234: d{motion} | delete the text that is moved over with {motion} | +| :white_check_mark: | {visual}d | delete the highlighted text | +| :white_check_mark: | :1234: dd | delete N lines | +| :white_check_mark: | :1234: D | delete to the end of the line (and N-1 more lines) | +| :white_check_mark: | :1234: J | join N-1 lines (delete EOLs) | +| :white_check_mark: | {visual}J | join the highlighted lines | +| :white_check_mark: | :1234: gJ | like "J", but without inserting spaces | +| :white_check_mark: | {visual}gJ | like "{visual}J", but without inserting spaces | +| :white_check_mark: | :[range]d [x] | delete [range] lines [into register x] | ## Copying and moving text Miscellanea: -* We don't support read only registers. - -Status | Command | Description | Note ----|--------|-------------|----------------- -:warning: | "{char} | use register {char} for the next delete, yank, or put | read only registers are not supported -:white_check_mark: | "* | use register `*` to access system clipboard -:white_check_mark: | :reg | show the contents of all registers -:white_check_mark: | :reg {arg} | show the contents of registers mentioned in {arg} -:white_check_mark: | :1234: y{motion} | yank the text moved over with {motion} into a register -:white_check_mark: | {visual}y | yank the highlighted text into a register -:white_check_mark: | :1234: yy | yank N lines into a register -:white_check_mark: | :1234: Y | yank N lines into a register -:white_check_mark: | :1234: p | put a register after the cursor position (N times) -:white_check_mark: | :1234: P | put a register before the cursor position (N times) -:white_check_mark: | :1234: ]p | like p, but adjust indent to current line -:white_check_mark: | :1234: [p | like P, but adjust indent to current line -:white_check_mark: | :1234: gp | like p, but leave cursor after the new text -:white_check_mark: | :1234: gP | like P, but leave cursor after the new text +- We don't support read only registers. + +| Status | Command | Description | Note | +| ------------------ | ---------------- | ------------------------------------------------------ | ------------------------------------- | +| :warning: | "{char} | use register {char} for the next delete, yank, or put | read only registers are not supported | +| :white_check_mark: | "\* | use register `*` to access system clipboard | +| :white_check_mark: | :reg | show the contents of all registers | +| :white_check_mark: | :reg {arg} | show the contents of registers mentioned in {arg} | +| :white_check_mark: | :1234: y{motion} | yank the text moved over with {motion} into a register | +| :white_check_mark: | {visual}y | yank the highlighted text into a register | +| :white_check_mark: | :1234: yy | yank N lines into a register | +| :white_check_mark: | :1234: Y | yank N lines into a register | +| :white_check_mark: | :1234: p | put a register after the cursor position (N times) | +| :white_check_mark: | :1234: P | put a register before the cursor position (N times) | +| :white_check_mark: | :1234: ]p | like p, but adjust indent to current line | +| :white_check_mark: | :1234: [p | like P, but adjust indent to current line | +| :white_check_mark: | :1234: gp | like p, but leave cursor after the new text | +| :white_check_mark: | :1234: gP | like P, but leave cursor after the new text | ## Changing text -Status | Command | Description | Note ----|--------|------------|------------------ -:white_check_mark: | :1234: r{char} | replace N characters with {char} -:arrow_down: | :1234: gr{char} | replace N characters without affecting layout -:white_check_mark: :star: | :1234: R | enter Replace mode (repeat the entered text N times) | {count} is not supported -:arrow_down: | :1234: gR | enter virtual Replace mode: Like Replace mode but without affecting layout -:white_check_mark:| {visual}r{char} | in Visual block, visual, or visual line modes: Replace each char of the selected text with {char} +| Status | Command | Description | Note | +| ------------------------- | --------------- | ------------------------------------------------------------------------------------------------- | ------------------------ | +| :white_check_mark: | :1234: r{char} | replace N characters with {char} | +| :arrow_down: | :1234: gr{char} | replace N characters without affecting layout | +| :white_check_mark: :star: | :1234: R | enter Replace mode (repeat the entered text N times) | {count} is not supported | +| :arrow_down: | :1234: gR | enter virtual Replace mode: Like Replace mode but without affecting layout | +| :white_check_mark: | {visual}r{char} | in Visual block, visual, or visual line modes: Replace each char of the selected text with {char} | (change = delete text and enter Insert mode) -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | :1234: c{motion} | change the text that is moved over with {motion} -:white_check_mark: | {visual}c | change the highlighted text -:white_check_mark: | :1234: cc | change N lines -:white_check_mark: | :1234: S | change N lines -:white_check_mark: | :1234: C | change to the end of the line (and N-1 more lines) -:white_check_mark: | :1234: s | change N characters -:white_check_mark: | {visual}c | in Visual block mode: Change each of the selected lines with the entered text -:white_check_mark: | {visual}C | in Visual block mode: Change each of the selected lines until end-of-line with the entered text -:white_check_mark: | {visual}~ | switch case for highlighted text -:white_check_mark: | {visual}u | make highlighted text lowercase -:white_check_mark: | {visual}U | make highlighted text uppercase -:white_check_mark: | g~{motion} | switch case for the text that is moved over with {motion} -:white_check_mark: | gu{motion} | make the text that is moved over with {motion} lowercase -:white_check_mark: | gU{motion} | make the text that is moved over with {motion} uppercase -:arrow_down: | {visual}g? | perform rot13 encoding on highlighted text -:arrow_down: | g?{motion} | perform rot13 encoding on the text that is moved over with {motion} -:white_check_mark: | :1234: CTRL-A | add N to the number at or after the cursor -:white_check_mark: | :1234: CTRL-X | subtract N from the number at or after the cursor -:white_check_mark: | :1234: <{motion} | move the lines that are moved over with {motion} one shiftwidth left -:white_check_mark: | :1234: << | move N lines one shiftwidth left -:white_check_mark: | :1234: >{motion} | move the lines that are moved over with {motion} one shiftwidth right -:white_check_mark: | :1234: >> | move N lines one shiftwidth right -:white_check_mark:| :1234: gq{motion}| format the lines that are moved over with {motion} to 'textwidth' length -:arrow_down: | :[range]ce[nter] [width] | center the lines in [range] -:arrow_down: | :[range]le[ft] [indent] | left-align the lines in [range] (with [indent]) -:arrow_down: | :[ranee]ri[ght] [width] | right-align the lines in [range] +| Status | Command | Description | +| ------------------ | ----------------------- | ----------------------------------------------------------------------------------------------- | +| :white_check_mark: | :1234: c{motion} | change the text that is moved over with {motion} | +| :white_check_mark: | {visual}c | change the highlighted text | +| :white_check_mark: | :1234: cc | change N lines | +| :white_check_mark: | :1234: S | change N lines | +| :white_check_mark: | :1234: C | change to the end of the line (and N-1 more lines) | +| :white_check_mark: | :1234: s | change N characters | +| :white_check_mark: | {visual}c | in Visual block mode: Change each of the selected lines with the entered text | +| :white_check_mark: | {visual}C | in Visual block mode: Change each of the selected lines until end-of-line with the entered text | +| :white_check_mark: | {visual}~ | switch case for highlighted text | +| :white_check_mark: | {visual}u | make highlighted text lowercase | +| :white_check_mark: | {visual}U | make highlighted text uppercase | +| :white_check_mark: | g~{motion} | switch case for the text that is moved over with {motion} | +| :white_check_mark: | gu{motion} | make the text that is moved over with {motion} lowercase | +| :white_check_mark: | gU{motion} | make the text that is moved over with {motion} uppercase | +| :arrow_down: | {visual}g? | perform rot13 encoding on highlighted text | +| :arrow_down: | g?{motion} | perform rot13 encoding on the text that is moved over with {motion} | +| :white_check_mark: | :1234: CTRL-A | add N to the number at or after the cursor | +| :white_check_mark: | :1234: CTRL-X | subtract N from the number at or after the cursor | +| :white_check_mark: | :1234: <{motion} | move the lines that are moved over with {motion} one shiftwidth left | +| :white_check_mark: | :1234: << | move N lines one shiftwidth left | +| :white_check_mark: | :1234: >{motion} | move the lines that are moved over with {motion} one shiftwidth right | +| :white_check_mark: | :1234: >> | move N lines one shiftwidth right | +| :white_check_mark: | :1234: gq{motion} | format the lines that are moved over with {motion} to 'textwidth' length | +| :arrow_down: | :[range]ce[nter][width] | center the lines in [range] | +| :arrow_down: | :[range]le[ft][indent] | left-align the lines in [range] (with [indent]) | +| :arrow_down: | :[ranee]ri[ght][width] | right-align the lines in [range] | ## Complex changes -Status | Command | Description | Note ----|--------|------------------|------------ -:arrow_down: | :1234: `!{motion}{command}` | filter the lines that are moved over through {command} -:arrow_down: | :1234: `!!{command}` | filter N lines through {command} -:arrow_down: | `{visual}!{command}` | filter the highlighted lines through {command} -:arrow_down: | `:[range]! {command}` | filter [range] lines through {command} -:white_check_mark: | :1234: ={motion} | filter the lines that are moved over through 'equalprg' -:arrow_down:| :1234: == | filter N lines through 'equalprg' -:white_check_mark: | {visual}= | filter the highlighted lines through 'equalprg' -:white_check_mark: :star: :warning: | :[range]s[ubstitute]/{pattern}/{string}/[g][c] | substitute {pattern} by {string} in [range] lines; with [g], replace all occurrences of {pattern}; with [c], confirm each replacement | Currently we only support JavaScript Regex and only options `gi` are implemented -:arrow_down: | :[range]s[ubstitute] [g][c] | repeat previous ":s" with new range and options -:arrow_down: | & | Repeat previous ":s" on current line without options -:arrow_down: | :[range]ret[ab][!] [tabstop] | set 'tabstop' to new value and adjust white space accordingly +| Status | Command | Description | Note | +| ----------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| :arrow_down: | :1234: `!{motion}{command}` | filter the lines that are moved over through {command} | +| :arrow_down: | :1234: `!!{command}` | filter N lines through {command} | +| :arrow_down: | `{visual}!{command}` | filter the highlighted lines through {command} | +| :arrow_down: | `:[range]! {command}` | filter [range] lines through {command} | +| :white_check_mark: | :1234: ={motion} | filter the lines that are moved over through 'equalprg' | +| :arrow_down: | :1234: == | filter N lines through 'equalprg' | +| :white_check_mark: | {visual}= | filter the highlighted lines through 'equalprg' | +| :white_check_mark: :star: :warning: | :[range]s[ubstitute]/{pattern}/{string}/[g][c] | substitute {pattern} by {string} in [range] lines; with [g], replace all occurrences of {pattern}; with [c], confirm each replacement | Currently we only support JavaScript Regex and only options `gi` are implemented | +| :arrow_down: | :[range]s[ubstitute][g][c] | repeat previous ":s" with new range and options | +| :arrow_down: | & | Repeat previous ":s" on current line without options | +| :arrow_down: | :[range]ret[ab][!] [tabstop] | set 'tabstop' to new value and adjust white space accordingly | ## Visual mode -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | v | start highlighting characters -:white_check_mark: | V | start highlighting linewise -:white_check_mark:| o | exchange cursor position with start of highlighting -:white_check_mark:| gv | start highlighting on previous visual area -:white_check_mark: | v | highlight characters or stop highlighting -:white_check_mark: | V | highlight linewise or stop highlighting -:white_check_mark: | CTRL-V | highlight blockwise or stop highlighting +| Status | Command | Description | +| ------------------ | ------- | --------------------------------------------------- | +| :white_check_mark: | v | start highlighting characters | +| :white_check_mark: | V | start highlighting linewise | +| :white_check_mark: | o | exchange cursor position with start of highlighting | +| :white_check_mark: | gv | start highlighting on previous visual area | +| :white_check_mark: | v | highlight characters or stop highlighting | +| :white_check_mark: | V | highlight linewise or stop highlighting | +| :white_check_mark: | CTRL-V | highlight blockwise or stop highlighting | ## Text objects (only in Visual mode or after an operator) -Status | Command | Description ----|--------|------------------------------ -:white_check_mark: | :1234: aw | Select "a word" -:white_check_mark: | :1234: iw | Select "inner word" -:white_check_mark: | :1234: aW | Select "a |WORD|" -:white_check_mark: | :1234: iW | Select "inner |WORD|" -:white_check_mark: | :1234: as | Select "a sentence" -:white_check_mark: | :1234: is | Select "inner sentence" -:white_check_mark: | :1234: ap | Select "a paragraph" -:white_check_mark: | :1234: ip | Select "inner paragraph" -:white_check_mark: | :1234: a], a[ | select '[' ']' blocks -:white_check_mark: | :1234: i], i[ | select inner '[' ']' blocks -:white_check_mark: | :1234: ab, a(, a) | Select "a block" (from "[(" to "])") -:white_check_mark: | :1234: ib, i), i( | Select "inner block" (from "[(" to "])") -:white_check_mark: | :1234: a>, a< | Select "a <> block" -:white_check_mark: | :1234: i>, i< | Select "inner <> block" -:white_check_mark: | :1234: aB, a{, a} | Select "a Block" (from "[{" to "]}") -:white_check_mark: | :1234: iB, i{, i} | Select "inner Block" (from "[{" to "]}") -:white_check_mark: | :1234: at | Select "a tag block" (from <aaa> to </aaa>) -:white_check_mark: | :1234: it | Select "inner tag block" (from <aaa> to </aaa>) -:white_check_mark: | :1234: a' | Select "a single quoted string" -:white_check_mark: | :1234: i' | Select "inner single quoted string" -:white_check_mark: | :1234: a" | Select "a double quoted string" -:white_check_mark: | :1234: i" | Select "inner double quoted string" -:white_check_mark: | :1234: a` | Select "a backward quoted string" -:white_check_mark: | :1234: i` | Select "inner backward quoted string" +| Status | Command | Description | +| ------------------ | ------------------------------------------------- | ----------------------------------------------------------- | +| :white_check_mark: | :1234: aw | Select "a word" | +| :white_check_mark: | :1234: iw | Select "inner word" | +| :white_check_mark: | :1234: aW | Select "a | WORD | " | +| :white_check_mark: | :1234: iW | Select "inner | WORD | " | +| :white_check_mark: | :1234: as | Select "a sentence" | +| :white_check_mark: | :1234: is | Select "inner sentence" | +| :white_check_mark: | :1234: ap | Select "a paragraph" | +| :white_check_mark: | :1234: ip | Select "inner paragraph" | +| :white_check_mark: | :1234: a], a[ | select '[' ']' blocks | +| :white_check_mark: | :1234: i], i[ | select inner '[' ']' blocks | +| :white_check_mark: | :1234: ab, a(, a) | Select "a block" (from "[(" to "])") | +| :white_check_mark: | :1234: ib, i), i( | Select "inner block" (from "[(" to "])") | +| :white_check_mark: | :1234: a>, a< | Select "a <> block" | +| :white_check_mark: | :1234: i>, i< | Select "inner <> block" | +| :white_check_mark: | :1234: aB, a{, a} | Select "a Block" (from "[{" to "]}") | +| :white_check_mark: | :1234: iB, i{, i} | Select "inner Block" (from "[{" to "]}") | +| :white_check_mark: | :1234: at | Select "a tag block" (from <aaa> to </aaa>) | +| :white_check_mark: | :1234: it | Select "inner tag block" (from <aaa> to </aaa>) | +| :white_check_mark: | :1234: a' | Select "a single quoted string" | +| :white_check_mark: | :1234: i' | Select "inner single quoted string" | +| :white_check_mark: | :1234: a" | Select "a double quoted string" | +| :white_check_mark: | :1234: i" | Select "inner double quoted string" | +| :white_check_mark: | :1234: a` | Select "a backward quoted string" | +| :white_check_mark: | :1234: i` | Select "inner backward quoted string" | ## Repeating commands -Status | Command | Description | Note ----|--------|--------------|---------------- -:white_check_mark: :star: | :1234: . | repeat last change (with count replaced with N) | Content changes that don't happen under cursor can not be repeated. -:white_check_mark:| q{a-z} | record typed characters into register {a-z} -:arrow_down: | q{A-Z} | record typed characters, appended to register {a-z} -:white_check_mark:| q | stop recording -:white_check_mark:| :1234: @{a-z} | execute the contents of register {a-z} (N times) -:white_check_mark:| :1234: @@ | repeat previous @{a-z} (N times) -:arrow_down: | :@{a-z} | execute the contents of register {a-z} as an Ex command -:arrow_down: | :@@ | repeat previous :@{a-z} -:arrow_down: | :[range]g[lobal]/{pattern}/[cmd] | execute Ex command [cmd] (default: ":p") on the lines within [range] where {pattern} matches -:arrow_down: | :[range]g[lobal]!/{pattern}/[cmd] | execute Ex command [cmd] (default: ":p") on the lines within [range] where {pattern} does NOT match -:arrow_down: | :so[urce] {file} | read Ex commands from {file} -:arrow_down: | :so[urce]! {file} | read Vim commands from {file} -:arrow_down: | :sl[eep] [sec] | don't do anything for [sec] seconds -:arrow_down: | :1234: gs | goto Sleep for N seconds +| Status | Command | Description | Note | +| ------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | +| :white_check_mark: :star: | :1234: . | repeat last change (with count replaced with N) | Content changes that don't happen under cursor can not be repeated. | +| :white_check_mark: | q{a-z} | record typed characters into register {a-z} | +| :arrow_down: | q{A-Z} | record typed characters, appended to register {a-z} | +| :white_check_mark: | q | stop recording | +| :white_check_mark: | :1234: @{a-z} | execute the contents of register {a-z} (N times) | +| :white_check_mark: | :1234: @@ | repeat previous @{a-z} (N times) | +| :arrow_down: | :@{a-z} | execute the contents of register {a-z} as an Ex command | +| :arrow_down: | :@@ | repeat previous :@{a-z} | +| :arrow_down: | :[range]g[lobal]/{pattern}/[cmd] | execute Ex command [cmd](default: ':p') on the lines within [range] where {pattern} matches | +| :arrow_down: | :[range]g[lobal]!/{pattern}/[cmd] | execute Ex command [cmd](default: ':p') on the lines within [range] where {pattern} does NOT match | +| :arrow_down: | :so[urce] {file} | read Ex commands from {file} | +| :arrow_down: | :so[urce]! {file} | read Vim commands from {file} | +| :arrow_down: | :sl[eep][sec] | don't do anything for [sec] seconds | +| :arrow_down: | :1234: gs | goto Sleep for N seconds | ## options -Status | Command | Description | Note ----|--------|---------|--------------------- -:arrow_down: | :se[t] | show all modified options -:arrow_down: | :se[t] all | show all non-termcap options -:arrow_down: | :se[t] termcap | show all termcap options -:white_check_mark: | :se[t] {option} | set boolean option (switch it on), show string or number option -:white_check_mark: | :se[t] no{option} | reset boolean option (switch it off) -:white_check_mark: | :se[t] inv{option} |invert boolean option -:white_check_mark: | :se[t] {option}={value} | set string/number option to {value} -:white_check_mark: | :se[t] {option}+={value} | append {value} to string option, add {value} to number option -:white_check_mark: :star:| :se[t] {option}-={value} | remove {value} to string option, subtract {value} from number option | We don't support string option here. -:white_check_mark: | :se[t] {option}? | show value of {option} -:arrow_down: | :se[t] {option}& | reset {option} to its default value -:arrow_down: | :setl[ocal] | like ":set" but set the local value for options that have one -:arrow_down: | :setg[lobal] | like ":set" but set the global value of a local option -:arrow_down: | :fix[del] | set value of 't_kD' according to value of 't_kb' -:arrow_down: | :opt[ions] | open a new window to view and set options, grouped by functionality, a one line explanation and links to the help +| Status | Command | Description | Note | +| ------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------ | +| :arrow_down: | :se[t] | show all modified options | +| :arrow_down: | :se[t] all | show all non-termcap options | +| :arrow_down: | :se[t] termcap | show all termcap options | +| :white_check_mark: | :se[t] {option} | set boolean option (switch it on), show string or number option | +| :white_check_mark: | :se[t] no{option} | reset boolean option (switch it off) | +| :white_check_mark: | :se[t] inv{option} | invert boolean option | +| :white_check_mark: | :se[t] {option}={value} | set string/number option to {value} | +| :white_check_mark: | :se[t] {option}+={value} | append {value} to string option, add {value} to number option | +| :white_check_mark: :star: | :se[t] {option}-={value} | remove {value} to string option, subtract {value} from number option | We don't support string option here. | +| :white_check_mark: | :se[t] {option}? | show value of {option} | +| :arrow_down: | :se[t] {option}& | reset {option} to its default value | +| :arrow_down: | :setl[ocal] | like ":set" but set the local value for options that have one | +| :arrow_down: | :setg[lobal] | like ":set" but set the global value of a local option | +| :arrow_down: | :fix[del] | set value of 't_kD' according to value of 't_kb' | +| :arrow_down: | :opt[ions] | open a new window to view and set options, grouped by functionality, a one line explanation and links to the help | Since the list is too long, now we just put those already supported options here. -Status | Command | Default Value | Description ----|--------|-------|------------------------------ -:white_check_mark:| tabstop (ts) | 4. we use Code's default value `tabSize` instead of Vim | number of spaces that <Tab> in file uses -:white_check_mark:| hlsearch (hls) | false | When there is a previous search pattern, highlight all its matches. -:white_check_mark:| ignorecase (ic) | true | Ignore case in search patterns. -:white_check_mark:| smartcase (scs) | true | Override the 'ignorecase' option if the search pattern contains upper case characters. -:white_check_mark:| iskeyword (isk) | `@,48-57,_,128-167,224-235` | keywords contain alphanumeric characters and '_'. If there is no user setting for `iskeyword`, we use `editor.wordSeparators` properties. -:white_check_mark:| scroll (scr) | 20 | Number of lines to scroll with CTRL-U and CTRL-D commands. -:white_check_mark:| expandtab (et) | True. we use Code's default value `insertSpaces` instead of Vim | use spaces when <Tab> is inserted -:white_check_mark:| autoindent | true | Keep indentation when doing `cc` or `S` in normal mode to replace a line. +| Status | Command | Default Value | Description | +| ------------------ | --------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| :white_check_mark: | tabstop (ts) | 4. we use Code's default value `tabSize` instead of Vim | number of spaces that <Tab> in file uses | +| :white_check_mark: | hlsearch (hls) | false | When there is a previous search pattern, highlight all its matches. | +| :white_check_mark: | ignorecase (ic) | true | Ignore case in search patterns. | +| :white_check_mark: | smartcase (scs) | true | Override the 'ignorecase' option if the search pattern contains upper case characters. | +| :white_check_mark: | iskeyword (isk) | `@,48-57,_,128-167,224-235` | keywords contain alphanumeric characters and '\_'. If there is no user setting for `iskeyword`, we use `editor.wordSeparators` properties. | +| :white_check_mark: | scroll (scr) | 20 | Number of lines to scroll with CTRL-U and CTRL-D commands. | +| :white_check_mark: | expandtab (et) | True. we use Code's default value `insertSpaces` instead of Vim | use spaces when <Tab> is inserted | +| :white_check_mark: | autoindent | true | Keep indentation when doing `cc` or `S` in normal mode to replace a line. | ## Undo/Redo commands -Status | Command | Description | Note ----|--------|-------|------------------------------ -:white_check_mark: | :1234: u | undo last N changes | Current implementation may not cover every case perfectly. -:white_check_mark: | :1234: CTRL-R | redo last N undone changes | As above. -:white_check_mark: | U | restore last changed line +| Status | Command | Description | Note | +| ------------------ | ------------- | -------------------------- | ---------------------------------------------------------- | +| :white_check_mark: | :1234: u | undo last N changes | Current implementation may not cover every case perfectly. | +| :white_check_mark: | :1234: CTRL-R | redo last N undone changes | As above. | +| :white_check_mark: | U | restore last changed line | ## External commands -Status | Command | Description ----|--------|----------------- -:arrow_down: | :sh[ell] | start a shell -:arrow_down: | :!{command} | execute {command} with a shell -:arrow_down: | K | lookup keyword under the cursor with 'keywordprg' program (default: "man") +| Status | Command | Description | +| ------------ | ----------- | -------------------------------------------------------------------------- | +| :arrow_down: | :sh[ell] | start a shell | +| :arrow_down: | :!{command} | execute {command} with a shell | +| :arrow_down: | K | lookup keyword under the cursor with 'keywordprg' program (default: "man") | ## Ex ranges -Status | Command | Description | Note ----|--------|-------|------------------------------ -:white_check_mark: | , | separates two line numbers -:white_check_mark: :star: | ; | idem, set cursor to the first line number before interpreting the second one | The cursor movement is not included. -:white_check_mark: | {number} | an absolute line number -:white_check_mark: | . | the current line -:white_check_mark: | $ | the last line in the file -:white_check_mark: | % | equal to 1,$ (the entire file) -:white_check_mark: | * | equal to '<,'> (visual area) -:white_check_mark: | 't | position of mark t -:arrow_down: | /{pattern}[/] | the next line where {pattern} matches -:arrow_down: | ?{pattern}[?] | the previous line where {pattern} matches -:white_check_mark: | +[num] | add [num] to the preceding line number (default: 1) -:white_check_mark: | -[num] | subtract [num] from the preceding line number (default: 1) +| Status | Command | Description | Note | +| ------------------------- | ------------- | ---------------------------------------------------------------------------- | ------------------------------------ | +| :white_check_mark: | , | separates two line numbers | +| :white_check_mark: :star: | ; | idem, set cursor to the first line number before interpreting the second one | The cursor movement is not included. | +| :white_check_mark: | {number} | an absolute line number | +| :white_check_mark: | . | the current line | +| :white_check_mark: | $ | the last line in the file | +| :white_check_mark: | % | equal to 1,$ (the entire file) | +| :white_check_mark: | \* | equal to '<,'> (visual area) | +| :white_check_mark: | 't | position of mark t | +| :arrow_down: | /{pattern}[/] | the next line where {pattern} matches | +| :arrow_down: | ?{pattern}[?] | the previous line where {pattern} matches | +| :white_check_mark: | +[num] | add [num] to the preceding line number (default: 1) | +| :white_check_mark: | -[num] | subtract [num] from the preceding line number (default: 1) | ## Editing a file -Status | Command | Description | Note ----|--------|------------------|----------- -:white_check_mark: :star: | :e[dit] {file} | Edit {file}. | We will open file in a new Tab of current Grouped Editor instead of opening in current tab. +| Status | Command | Description | Note | +| ------------------------- | -------------- | ------------ | ------------------------------------------------------------------------------------------- | +| :white_check_mark: :star: | :e[dit] {file} | Edit {file}. | We will open file in a new Tab of current Grouped Editor instead of opening in current tab. | ## Multi-window commands -Status | Command | Description | Note ----|--------|-----------------|------------- -:white_check_mark: :star: | :e[dit] {file} | Edit {file}. | We will open file in a new Tab of current Grouped Editor instead of opening in current tab. -:white_check_mark: :star: | <ctrl-w> hl | Switching between windows. | As we don't have the concept of Window in VS Code, we are mapping these commands to switching between Grouped Editors. -:x: | :sp {file} | Split current window in two. | VS Code doesn't support split Window horizontally. -:white_check_mark: :star: | :vsp {file} | Split vertically current window in two. | VS Code only supports three vertical window at most and that's the limitation of this command. -:x: | :new | Create a new window horizontally and start editing an empty file in it. | VS Code doesn't support split Window horizontally. -:white_check_mark: :star: | :vne[w] | Create a new window vertically and start editing an empty file in it. | VS Code only supports three vertical window at most and that's the limitation of this command. - +| Status | Command | Description | Note | +| ------------------------- | ----------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| :white_check_mark: :star: | :e[dit] {file} | Edit {file}. | We will open file in a new Tab of current Grouped Editor instead of opening in current tab. | +| :white_check_mark: :star: | <ctrl-w> hl | Switching between windows. | As we don't have the concept of Window in VS Code, we are mapping these commands to switching between Grouped Editors. | +| :x: | :sp {file} | Split current window in two. | VS Code doesn't support split Window horizontally. | +| :white_check_mark: :star: | :vsp {file} | Split vertically current window in two. | VS Code only supports three vertical window at most and that's the limitation of this command. | +| :x: | :new | Create a new window horizontally and start editing an empty file in it. | VS Code doesn't support split Window horizontally. | +| :white_check_mark: :star: | :vne[w] | Create a new window vertically and start editing an empty file in it. | VS Code only supports three vertical window at most and that's the limitation of this command. | ## Tabs -Status | Command | Description | Note ----|--------|------------------|------------ -:white_check_mark: | :tabn[ext] :1234: | Go to next tab page or tab page {count}. The first tab page has number one. -:white_check_mark: | {count}<C-PageDown>, {count}gt | Same as above -:white_check_mark: | :tabp[revious] :1234: | Go to the previous tab page. Wraps around from the first one to the last one. -:white_check_mark: | :tabN[ext] :1234: | Same as above -:white_check_mark: | {count}<C-PageUp>, {count}gT | Same as above -:white_check_mark: | :tabfir[st] | Go to the first tab page. -:white_check_mark: | :tabl[ast] | Go to the last tab page. -:white_check_mark: | :tabe[dit] {file} | Open a new tab page with an empty window, after the current tab page -:arrow_down: | :[count]tabe[dit], :[count]tabnew | Same as above | [count] is not supported. -:white_check_mark: | :tabnew {file} | Open a new tab page with an empty window, after the current tab page -:arrow_down:| :[count]tab {cmd} | Execute {cmd} and when it opens a new window open a new tab page instead. -:white_check_mark: :star: | :tabc[lose][!] :1234: | Close current tab page or close tab page {count}. | Code will close tab directly without saving. -:white_check_mark: :star: | :tabo[nly][!] | Close all other tab pages. | `!` is not supported, Code will close tab directly without saving. -:white_check_mark: | :tabm[ove] [N] | Move the current tab page to after tab page N. -:arrow_down:| :tabs | List the tab pages and the windows they contain. | You can always use Code's built-in shortcut: `cmd/ctrl+p` -:arrow_down:| :tabd[o] {cmd} | Execute {cmd} in each tab page. +| Status | Command | Description | Note | +| ------------------------- | ------------------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| :white_check_mark: | :tabn[ext] :1234: | Go to next tab page or tab page {count}. The first tab page has number one. | +| :white_check_mark: | {count}<C-PageDown>, {count}gt | Same as above | +| :white_check_mark: | :tabp[revious] :1234: | Go to the previous tab page. Wraps around from the first one to the last one. | +| :white_check_mark: | :tabN[ext] :1234: | Same as above | +| :white_check_mark: | {count}<C-PageUp>, {count}gT | Same as above | +| :white_check_mark: | :tabfir[st] | Go to the first tab page. | +| :white_check_mark: | :tabl[ast] | Go to the last tab page. | +| :white_check_mark: | :tabe[dit] {file} | Open a new tab page with an empty window, after the current tab page | +| :arrow_down: | :[count]tabe[dit], :[count]tabnew | Same as above | [count] is not supported. | +| :white_check_mark: | :tabnew {file} | Open a new tab page with an empty window, after the current tab page | +| :arrow_down: | :[count]tab {cmd} | Execute {cmd} and when it opens a new window open a new tab page instead. | +| :white_check_mark: :star: | :tabc[lose][!] :1234: | Close current tab page or close tab page {count}. | Code will close tab directly without saving. | +| :white_check_mark: :star: | :tabo[nly][!] | Close all other tab pages. | `!` is not supported, Code will close tab directly without saving. | +| :white_check_mark: | :tabm[ove][n] | Move the current tab page to after tab page N. | +| :arrow_down: | :tabs | List the tab pages and the windows they contain. | You can always use Code's built-in shortcut: `cmd/ctrl+p` | +| :arrow_down: | :tabd[o] {cmd} | Execute {cmd} in each tab page. | ## Folding + ### Fold methods + The folding method can be set with the 'foldmethod' option. This is currently not possible as we are relying on Code's Fold logic. ### Fold commands Pretty much everything fold-related is blocked by [this issue](https://github.com/VSCodeVim/Vim/issues/1004). -Status | Command | Description ----|--------|------------------------------ -:arrow_down: | zf{motion} or {Visual}zf | Operator to create a fold. -:arrow_down: | zF | Create a fold for [count] lines. Works like "zf". -:arrow_down: | zd | Delete one fold at the cursor. -:arrow_down: | zD | Delete folds recursively at the cursor. -:arrow_down: | zE | Eliminate all folds in the window. -:white_check_mark: | zo | Open one fold under the cursor.When a count is given, that many folds deep will be opened. -:white_check_mark: | zO | Open all folds under the cursor recursively. -:white_check_mark: | zc | Close one fold under the cursor. When a count is given, that many folds deep are closed. -:white_check_mark:| zC | Close all folds under the cursor recursively. -:arrow_down: | za | When on a closed fold: open it. When on an open fold: close it and set 'foldenable'. -:arrow_down: | zA | When on a closed fold: open it recursively. When on an open fold: close it recursively and set 'foldenable'. -:arrow_down: | zv | View cursor line: Open just enough folds to make the line in which the cursor is located not folded. -:arrow_down: | zx | Update folds: Undo manually opened and closed folds: re-apply 'foldlevel', then do "zv": View cursor line. -:arrow_down: | zX | Undo manually opened and closed folds -:arrow_down: | zm | Fold more: Subtract one from 'foldlevel'. -:white_check_mark: | zM | Close all folds: set 'foldlevel' to 0. 'foldenable' will be set. -:arrow_down: | zr | Reduce folding: Add one to 'foldlevel'. -:white_check_mark: | zR | Open all folds. This sets 'foldlevel' to highest fold level. -:arrow_down: | zn | Fold none: reset 'foldenable'. All folds will be open. -:arrow_down: | zN | Fold normal: set 'foldenable'. All folds will be as they were before. -:arrow_down: | zi | Invert 'foldenable'. -:arrow_down: | [z | Move to the start of the current open fold. -:arrow_down: | ]z | Move to the end of the current open fold. -:arrow_down: | zj | Move downwards to the start of the next fold. -:arrow_down: | zk | Move upwards to the end of the previous fold. +| Status | Command | Description | +| ------------------ | ------------------------ | ------------------------------------------------------------------------------------------------------------ | +| :arrow_down: | zf{motion} or {Visual}zf | Operator to create a fold. | +| :arrow_down: | zF | Create a fold for [count] lines. Works like "zf". | +| :arrow_down: | zd | Delete one fold at the cursor. | +| :arrow_down: | zD | Delete folds recursively at the cursor. | +| :arrow_down: | zE | Eliminate all folds in the window. | +| :white_check_mark: | zo | Open one fold under the cursor.When a count is given, that many folds deep will be opened. | +| :white_check_mark: | zO | Open all folds under the cursor recursively. | +| :white_check_mark: | zc | Close one fold under the cursor. When a count is given, that many folds deep are closed. | +| :white_check_mark: | zC | Close all folds under the cursor recursively. | +| :arrow_down: | za | When on a closed fold: open it. When on an open fold: close it and set 'foldenable'. | +| :arrow_down: | zA | When on a closed fold: open it recursively. When on an open fold: close it recursively and set 'foldenable'. | +| :arrow_down: | zv | View cursor line: Open just enough folds to make the line in which the cursor is located not folded. | +| :arrow_down: | zx | Update folds: Undo manually opened and closed folds: re-apply 'foldlevel', then do "zv": View cursor line. | +| :arrow_down: | zX | Undo manually opened and closed folds | +| :arrow_down: | zm | Fold more: Subtract one from 'foldlevel'. | +| :white_check_mark: | zM | Close all folds: set 'foldlevel' to 0. 'foldenable' will be set. | +| :arrow_down: | zr | Reduce folding: Add one to 'foldlevel'. | +| :white_check_mark: | zR | Open all folds. This sets 'foldlevel' to highest fold level. | +| :arrow_down: | zn | Fold none: reset 'foldenable'. All folds will be open. | +| :arrow_down: | zN | Fold normal: set 'foldenable'. All folds will be as they were before. | +| :arrow_down: | zi | Invert 'foldenable'. | +| :arrow_down: | [z | Move to the start of the current open fold. | +| :arrow_down: | ]z | Move to the end of the current open fold. | +| :arrow_down: | zj | Move downwards to the start of the next fold. | +| :arrow_down: | zk | Move upwards to the end of the previous fold. | ### Fold options diff --git a/STYLE.md b/STYLE.md index 00a146c816e..e32d8b5c1ae 100644 --- a/STYLE.md +++ b/STYLE.md @@ -2,19 +2,19 @@ In addition, to VS Code's [coding guidelines](https://github.com/Microsoft/vscode/wiki/Coding-Guidelines), please adhere to the following: -* Use `for ... of` whenever possible +- Use `for ... of` whenever possible **Rationale:** `for ... of` is awesome. It's more readable than any other variant. -* Don't use `any` as much as possible +- Don't use `any` as much as possible **Rationale:** The language is called *Type*Script, not *Untyped*Script. :wink: Static typing is wonderful. It catches bugs and improves readability. We should strive to use it as much as possible. -* Use `const` wherever possible. +- Use `const` wherever possible. **Rationale:** Instead of reading `const` as "constant value," read it as "single assignment." Yes, it means "constant value" in other programming languages, but it's a little different in JavaScript. -* When we can't use `const`, use `let`; never `var` +- When we can't use `const`, use `let`; never `var` **Rationale:** `var` trips up programmers in a number of cases - hoisting and closure capture are two big ones. Consider the difference between @@ -29,4 +29,3 @@ In addition, to VS Code's [coding guidelines](https://github.com/Microsoft/vscod ``` Even if you're not capturing the variable, who knows if someone else might later? - diff --git a/build/CHANGELOG.base.md b/build/CHANGELOG.base.md index f7e8df75cb2..9dcc9be0dc1 100644 --- a/build/CHANGELOG.base.md +++ b/build/CHANGELOG.base.md @@ -29,7 +29,7 @@ **Enhancements:** - \ doesn't behave as expected in insert mode [\#2804](https://github.com/VSCodeVim/Vim/issues/2804) -- \(feature\) Add an option to bring commandline back to old place [\#2773](https://github.com/VSCodeVim/Vim/issues/2773) +- \(feature\) Add an option to bring commandline back to old place [\#2773](https://github.com/VSCodeVim/Vim/issues/2773) **Fixed Bugs:** @@ -120,7 +120,7 @@ **Merged pull requests:** - fix: closes \#1472. insertModeKeyBindings apply to insert and replace modes [\#2749](https://github.com/VSCodeVim/Vim/pull/2749) ([jpoon](https://github.com/jpoon)) -- fix: closes \#2390. enables remapping using '\' [\#2748](https://github.com/VSCodeVim/Vim/pull/2748) ([jpoon](https://github.com/jpoon)) +- fix: closes \#2390. enables remapping using '\' [\#2748](https://github.com/VSCodeVim/Vim/pull/2748) ([jpoon](https://github.com/jpoon)) - chore\(deps\): update dependency @types/lodash to v4.14.110 [\#2745](https://github.com/VSCodeVim/Vim/pull/2745) ([renovate-bot](https://github.com/renovate-bot)) - Update visualModeKeyBindingsNonRecursive example [\#2744](https://github.com/VSCodeVim/Vim/pull/2744) ([chibicode](https://github.com/chibicode)) - Fix \#1348. ctrl+D/U correct position [\#2723](https://github.com/VSCodeVim/Vim/pull/2723) ([rebornix](https://github.com/rebornix)) @@ -193,6 +193,7 @@ - chore\(deps\): update dependency @types/node to v9.6.16 [\#2644](https://github.com/VSCodeVim/Vim/pull/2644) ([renovate-bot](https://github.com/renovate-bot)) ## [v0.12.0](https://github.com/vscodevim/vim/tree/v0.12.0) (2018-05-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.6...v0.12.0) - Fix development problems on win [\#2651](https://github.com/VSCodeVim/Vim/pull/2651) ([KamikazeZirou](https://github.com/KamikazeZirou)) @@ -208,6 +209,7 @@ - Implement "q:" command [\#2618](https://github.com/VSCodeVim/Vim/pull/2618) ([KamikazeZirou](https://github.com/KamikazeZirou)) ## [v0.11.6](https://github.com/vscodevim/vim/tree/v0.11.6) (2018-05-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.5...v0.11.6) - chore\(deps\): update dependency @types/node to v9.6.12 [\#2615](https://github.com/VSCodeVim/Vim/pull/2615) ([renovate-bot](https://github.com/renovate-bot)) @@ -236,6 +238,7 @@ - Hopefully fixing the rest of our undo issues [\#2559](https://github.com/VSCodeVim/Vim/pull/2559) ([Chillee](https://github.com/Chillee)) ## [v0.11.5](https://github.com/vscodevim/vim/tree/v0.11.5) (2018-04-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.4...v0.11.5) - chore\(deps\): update dependency gulp-bump to v3.1.1 [\#2556](https://github.com/VSCodeVim/Vim/pull/2556) ([renovate-bot](https://github.com/renovate-bot)) @@ -248,6 +251,7 @@ - chore\(deps\): update dependency @types/lodash to v4.14.107 [\#2540](https://github.com/VSCodeVim/Vim/pull/2540) ([renovate-bot](https://github.com/renovate-bot)) ## [v0.11.4](https://github.com/vscodevim/vim/tree/v0.11.4) (2018-04-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.3...v0.11.4) - fix: don't call prettier when no files updated [\#2539](https://github.com/VSCodeVim/Vim/pull/2539) ([jpoon](https://github.com/jpoon)) @@ -270,6 +274,7 @@ - Add jumptoanywhere command for easymotion [\#2454](https://github.com/VSCodeVim/Vim/pull/2454) ([jsonMartin](https://github.com/jsonMartin)) ## [v0.11.3](https://github.com/vscodevim/vim/tree/v0.11.3) (2018-03-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.2...v0.11.3) - docs: add documentation for installing xsel. fixes \#2071 [\#2476](https://github.com/VSCodeVim/Vim/pull/2476) ([jpoon](https://github.com/jpoon)) @@ -279,12 +284,14 @@ - await openEditorAtIndex1 command [\#2442](https://github.com/VSCodeVim/Vim/pull/2442) ([arussellk](https://github.com/arussellk)) ## [v0.11.2](https://github.com/vscodevim/vim/tree/v0.11.2) (2018-03-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.1...v0.11.2) - Readds vimState.lastClickWasPastEOL. Fixes \#2404 [\#2433](https://github.com/VSCodeVim/Vim/pull/2433) ([Chillee](https://github.com/Chillee)) - fix: selection in search in visual mode \#2406 [\#2418](https://github.com/VSCodeVim/Vim/pull/2418) ([shortheron](https://github.com/shortheron)) ## [v0.11.1](https://github.com/vscodevim/vim/tree/v0.11.1) (2018-03-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.0...v0.11.1) - Set the timeout to 0 for waitforcursorupdatestopropagate [\#2428](https://github.com/VSCodeVim/Vim/pull/2428) ([Chillee](https://github.com/Chillee)) @@ -293,6 +300,7 @@ - Fix :tabm to use moveActiveEditor command [\#2405](https://github.com/VSCodeVim/Vim/pull/2405) ([arussellk](https://github.com/arussellk)) ## [v0.11.0](https://github.com/vscodevim/vim/tree/v0.11.0) (2018-02-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.13...v0.11.0) - Fix :tabe {file} only relative to current file \(\#1162\) [\#2400](https://github.com/VSCodeVim/Vim/pull/2400) ([arussellk](https://github.com/arussellk)) @@ -311,11 +319,13 @@ - Sneak plugin [\#2307](https://github.com/VSCodeVim/Vim/pull/2307) ([jpotterm](https://github.com/jpotterm)) ## [v0.10.13](https://github.com/vscodevim/vim/tree/v0.10.13) (2018-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.12...v0.10.13) -- fix: bad jason. fix bad release. [\#2324](https://github.com/VSCodeVim/Vim/pull/2324) ([jpoon](https://github.com/jpoon)) +- fix: bad jason. fix bad release. [\#2324](https://github.com/VSCodeVim/Vim/pull/2324) ([jpoon](https://github.com/jpoon)) ## [v0.10.12](https://github.com/vscodevim/vim/tree/v0.10.12) (2018-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.11...v0.10.12) - fix: closes \#730. setcontext when switching active text editors [\#2320](https://github.com/VSCodeVim/Vim/pull/2320) ([jpoon](https://github.com/jpoon)) @@ -324,11 +334,13 @@ - Left shift fix 2299 [\#2300](https://github.com/VSCodeVim/Vim/pull/2300) ([jessewmc](https://github.com/jessewmc)) ## [v0.10.11](https://github.com/vscodevim/vim/tree/v0.10.11) (2018-01-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.10...v0.10.11) -- fix: status bar not updating properly when recording macros. fixes \#2296. [\#2304](https://github.com/VSCodeVim/Vim/pull/2304) ([jpoon](https://github.com/jpoon)) +- fix: status bar not updating properly when recording macros. fixes \#2296. [\#2304](https://github.com/VSCodeVim/Vim/pull/2304) ([jpoon](https://github.com/jpoon)) ## [v0.10.10](https://github.com/vscodevim/vim/tree/v0.10.10) (2018-01-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.9...v0.10.10) - fix: add tests for compareKeyPressSequence [\#2289](https://github.com/VSCodeVim/Vim/pull/2289) ([jpoon](https://github.com/jpoon)) @@ -339,6 +351,7 @@ - fix: \ remapping disabled by default. functionality controlled by "handleKeys" [\#2269](https://github.com/VSCodeVim/Vim/pull/2269) ([Arxzin](https://github.com/Arxzin)) ## [v0.10.9](https://github.com/vscodevim/vim/tree/v0.10.9) (2018-01-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.8...v0.10.9) - feature: "h", "l" keybindings for sidebar [\#2290](https://github.com/VSCodeVim/Vim/pull/2290) ([Nodman](https://github.com/Nodman)) @@ -348,6 +361,7 @@ - refactor: normalize keys when loading configuration [\#2268](https://github.com/VSCodeVim/Vim/pull/2268) ([jpoon](https://github.com/jpoon)) ## [v0.10.8](https://github.com/vscodevim/vim/tree/v0.10.8) (2018-01-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.7...v0.10.8) - fix\(2162\): handleKeys was previously only handling negation [\#2267](https://github.com/VSCodeVim/Vim/pull/2267) ([jpoon](https://github.com/jpoon)) @@ -356,6 +370,7 @@ - fix\(2261\): fix regression. show search string in status bar [\#2262](https://github.com/VSCodeVim/Vim/pull/2262) ([jpoon](https://github.com/jpoon)) ## [v0.10.7](https://github.com/vscodevim/vim/tree/v0.10.7) (2018-01-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.6...v0.10.7) - Stop Silently Failing [\#2250](https://github.com/VSCodeVim/Vim/pull/2250) ([jpoon](https://github.com/jpoon)) @@ -363,6 +378,7 @@ - fix\(2184\): handle situation when no document is opened [\#2237](https://github.com/VSCodeVim/Vim/pull/2237) ([jpoon](https://github.com/jpoon)) ## [v0.10.6](https://github.com/vscodevim/vim/tree/v0.10.6) (2017-12-15) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.5...v0.10.6) - update\(package.json\) [\#2225](https://github.com/VSCodeVim/Vim/pull/2225) ([jpoon](https://github.com/jpoon)) @@ -377,6 +393,7 @@ - Fix \#1945 $ in VisualBlock works on ragged lines [\#2096](https://github.com/VSCodeVim/Vim/pull/2096) ([Strafos](https://github.com/Strafos)) ## [v0.10.5](https://github.com/vscodevim/vim/tree/v0.10.5) (2017-11-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.4...v0.10.5) - Fixed incorrect styling of 'fake' cursors [\#2161](https://github.com/VSCodeVim/Vim/pull/2161) ([Chillee](https://github.com/Chillee)) @@ -386,11 +403,13 @@ - keep workbench color customizations when using status bar color [\#2122](https://github.com/VSCodeVim/Vim/pull/2122) ([rodrigo-garcia-leon](https://github.com/rodrigo-garcia-leon)) ## [v0.10.4](https://github.com/vscodevim/vim/tree/v0.10.4) (2017-11-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.3...v0.10.4) - fix\(2145\): reverse logic [\#2147](https://github.com/VSCodeVim/Vim/pull/2147) ([jpoon](https://github.com/jpoon)) ## [v0.10.3](https://github.com/vscodevim/vim/tree/v0.10.3) (2017-11-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.2...v0.10.3) - Fix release [\#2142](https://github.com/VSCodeVim/Vim/pull/2142) ([jpoon](https://github.com/jpoon)) @@ -415,6 +434,7 @@ - Fix gj/gk in visual block mode [\#2046](https://github.com/VSCodeVim/Vim/pull/2046) ([orn688](https://github.com/orn688)) ## [v0.10.2](https://github.com/vscodevim/vim/tree/v0.10.2) (2017-10-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.1...v0.10.2) - Update ROADMAP.md [\#2073](https://github.com/VSCodeVim/Vim/pull/2073) ([xconverge](https://github.com/xconverge)) @@ -432,6 +452,7 @@ - Fix a typo [\#2028](https://github.com/VSCodeVim/Vim/pull/2028) ([joonro](https://github.com/joonro)) ## [v0.10.1](https://github.com/vscodevim/vim/tree/v0.10.1) (2017-09-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.10.0...v0.10.1) - Fixing travis issues [\#2024](https://github.com/VSCodeVim/Vim/pull/2024) ([Chillee](https://github.com/Chillee)) @@ -445,6 +466,7 @@ - Implement '' and ``. [\#1993](https://github.com/VSCodeVim/Vim/pull/1993) ([brandonbloom](https://github.com/brandonbloom)) ## [v0.10.0](https://github.com/vscodevim/vim/tree/v0.10.0) (2017-08-30) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.9.0...v0.10.0) - Make prettier work on Windows [\#1987](https://github.com/VSCodeVim/Vim/pull/1987) ([MaxfieldWalker](https://github.com/MaxfieldWalker)) @@ -465,12 +487,14 @@ - Formattted everything with prettier [\#1879](https://github.com/VSCodeVim/Vim/pull/1879) ([Chillee](https://github.com/Chillee)) ## [v0.9.0](https://github.com/vscodevim/vim/tree/v0.9.0) (2017-06-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.7...v0.9.0) - fixes \#1861 [\#1868](https://github.com/VSCodeVim/Vim/pull/1868) ([xconverge](https://github.com/xconverge)) - Fix off by one error in visual mode [\#1862](https://github.com/VSCodeVim/Vim/pull/1862) ([Chillee](https://github.com/Chillee)) ## [v0.8.7](https://github.com/vscodevim/vim/tree/v0.8.7) (2017-06-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.6...v0.8.7) - Added :only command and corresponding shortcuts [\#1882](https://github.com/VSCodeVim/Vim/pull/1882) ([LeonB](https://github.com/LeonB)) @@ -482,6 +506,7 @@ - WIP Fixes \#754: Adds j,k,o,\, gg, G, ctrl+d, and ctrl+u commands for navigating inside the file explorer [\#1718](https://github.com/VSCodeVim/Vim/pull/1718) ([Chillee](https://github.com/Chillee)) ## [v0.8.6](https://github.com/vscodevim/vim/tree/v0.8.6) (2017-06-15) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.5...v0.8.6) - Removed solid block cursor [\#1842](https://github.com/VSCodeVim/Vim/pull/1842) ([Chillee](https://github.com/Chillee)) @@ -491,6 +516,7 @@ - Fixes \#1826: Jump to line with neovim disabled doesn't work [\#1831](https://github.com/VSCodeVim/Vim/pull/1831) ([Chillee](https://github.com/Chillee)) ## [v0.8.5](https://github.com/vscodevim/vim/tree/v0.8.5) (2017-06-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.4...v0.8.5) - Fixes \#1814: Undo history getting deleted when file changes [\#1820](https://github.com/VSCodeVim/Vim/pull/1820) ([Chillee](https://github.com/Chillee)) @@ -500,6 +526,7 @@ - Vertical split shortcut keys [\#1795](https://github.com/VSCodeVim/Vim/pull/1795) ([beefsack](https://github.com/beefsack)) ## [v0.8.4](https://github.com/vscodevim/vim/tree/v0.8.4) (2017-05-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.3...v0.8.4) - Fixes \#1743: Fixed pasting over visual mode with named register overwriting the named register [\#1777](https://github.com/VSCodeVim/Vim/pull/1777) ([Chillee](https://github.com/Chillee)) @@ -509,20 +536,24 @@ - fixed \#1027 maybe? [\#1740](https://github.com/VSCodeVim/Vim/pull/1740) ([Chillee](https://github.com/Chillee)) ## [v0.8.3](https://github.com/vscodevim/vim/tree/v0.8.3) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.2...v0.8.3) ## [v0.8.2](https://github.com/vscodevim/vim/tree/v0.8.2) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.1...v0.8.2) - Fixes \#1750: gq doesn't work for JSDoc type comments [\#1759](https://github.com/VSCodeVim/Vim/pull/1759) ([Chillee](https://github.com/Chillee)) - Some patches for v0.8.0 [\#1757](https://github.com/VSCodeVim/Vim/pull/1757) ([Chillee](https://github.com/Chillee)) ## [v0.8.1](https://github.com/vscodevim/vim/tree/v0.8.1) (2017-05-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.8.0...v0.8.1) - Fixes \#1752: Tab Completion [\#1753](https://github.com/VSCodeVim/Vim/pull/1753) ([Chillee](https://github.com/Chillee)) ## [v0.8.0](https://github.com/vscodevim/vim/tree/v0.8.0) (2017-05-25) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.7.1...v0.8.0) - Fixes \#1749: \ in insert mode doesn't work when the word isn't by itself [\#1748](https://github.com/VSCodeVim/Vim/pull/1748) ([Chillee](https://github.com/Chillee)) @@ -554,6 +585,7 @@ - Fix visual mode bugs\#1304to\#1308 [\#1322](https://github.com/VSCodeVim/Vim/pull/1322) ([xlaech](https://github.com/xlaech)) ## [v0.7.1](https://github.com/vscodevim/vim/tree/v0.7.1) (2017-05-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.7.0...v0.7.1) - Changes tabs to navigate inside the same split [\#1677](https://github.com/VSCodeVim/Vim/pull/1677) ([vinicio](https://github.com/vinicio)) @@ -564,6 +596,7 @@ - Fixes \#1535, \#1467, \#1311: D-d doesn't work in insert mode [\#1631](https://github.com/VSCodeVim/Vim/pull/1631) ([Chillee](https://github.com/Chillee)) ## [v0.7.0](https://github.com/vscodevim/vim/tree/v0.7.0) (2017-05-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.20...v0.7.0) - Join HTML on single line to prevent extraneous \s [\#1643](https://github.com/VSCodeVim/Vim/pull/1643) ([cobbweb](https://github.com/cobbweb)) @@ -595,9 +628,11 @@ - Navigate between view [\#1504](https://github.com/VSCodeVim/Vim/pull/1504) ([lyup](https://github.com/lyup)) ## [v0.6.20](https://github.com/vscodevim/vim/tree/v0.6.20) (2017-04-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.19...v0.6.20) ## [v0.6.19](https://github.com/vscodevim/vim/tree/v0.6.19) (2017-04-26) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.18...v0.6.19) - Fixes \#1573: Backspace at beginning of file causes subsequent operation to nop [\#1577](https://github.com/VSCodeVim/Vim/pull/1577) ([Chillee](https://github.com/Chillee)) @@ -609,6 +644,7 @@ - Fix surround aliases [\#1564](https://github.com/VSCodeVim/Vim/pull/1564) ([xconverge](https://github.com/xconverge)) ## [v0.6.18](https://github.com/vscodevim/vim/tree/v0.6.18) (2017-04-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.17...v0.6.18) - update clipboardy library with windows utf-8 fix [\#1559](https://github.com/VSCodeVim/Vim/pull/1559) ([xconverge](https://github.com/xconverge)) @@ -623,6 +659,7 @@ - Fixes \#1513: Backspace on middle of whitespace only line fails [\#1514](https://github.com/VSCodeVim/Vim/pull/1514) ([Chillee](https://github.com/Chillee)) ## [v0.6.17](https://github.com/vscodevim/vim/tree/v0.6.17) (2017-04-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.16...v0.6.17) - Allow user to change status bar color based on mode [\#1529](https://github.com/VSCodeVim/Vim/pull/1529) ([xconverge](https://github.com/xconverge)) @@ -632,9 +669,10 @@ - \[WIP\] change system clipboard library to a newer more maintained library [\#1487](https://github.com/VSCodeVim/Vim/pull/1487) ([xconverge](https://github.com/xconverge)) ## [v0.6.16](https://github.com/vscodevim/vim/tree/v0.6.16) (2017-04-16) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.15...v0.6.16) -- added cmd\_line commands to remapper [\#1516](https://github.com/VSCodeVim/Vim/pull/1516) ([xconverge](https://github.com/xconverge)) +- added cmd_line commands to remapper [\#1516](https://github.com/VSCodeVim/Vim/pull/1516) ([xconverge](https://github.com/xconverge)) - fixes \#1507 and removes workspace settings that should not be there [\#1509](https://github.com/VSCodeVim/Vim/pull/1509) ([xconverge](https://github.com/xconverge)) - Add line comment operator [\#1506](https://github.com/VSCodeVim/Vim/pull/1506) ([fiedler](https://github.com/fiedler)) - Add 5i= or 4a- so that the previously inserted text is repeated upon exiting to normal mode [\#1495](https://github.com/VSCodeVim/Vim/pull/1495) ([xconverge](https://github.com/xconverge)) @@ -645,9 +683,11 @@ - fix easymotion j and k [\#1474](https://github.com/VSCodeVim/Vim/pull/1474) ([xconverge](https://github.com/xconverge)) ## [0.6.15](https://github.com/vscodevim/vim/tree/0.6.15) (2017-04-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.14...0.6.15) ## [0.6.14](https://github.com/vscodevim/vim/tree/0.6.14) (2017-04-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.13...0.6.14) - Fix tables in roadmap [\#1469](https://github.com/VSCodeVim/Vim/pull/1469) ([xconverge](https://github.com/xconverge)) @@ -655,12 +695,14 @@ - Fix type suggestion for handleKeys object [\#1465](https://github.com/VSCodeVim/Vim/pull/1465) ([abhiranjankumar00](https://github.com/abhiranjankumar00)) ## [v0.6.13](https://github.com/vscodevim/vim/tree/v0.6.13) (2017-04-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.6.12...v0.6.13) - fixes \#1448 [\#1462](https://github.com/VSCodeVim/Vim/pull/1462) ([xconverge](https://github.com/xconverge)) - fix multi line in 'at' and 'it' commands [\#1454](https://github.com/VSCodeVim/Vim/pull/1454) ([jrenton](https://github.com/jrenton)) ## [0.6.12](https://github.com/vscodevim/vim/tree/0.6.12) (2017-04-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.11...0.6.12) - fixes \#1432 [\#1434](https://github.com/VSCodeVim/Vim/pull/1434) ([xconverge](https://github.com/xconverge)) @@ -675,36 +717,44 @@ - Allow users to use their own cursor style for insert from editor.cursorStyle [\#1399](https://github.com/VSCodeVim/Vim/pull/1399) ([xconverge](https://github.com/xconverge)) ## [v0.6.11](https://github.com/vscodevim/vim/tree/v0.6.11) (2017-03-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.10...v0.6.11) - Fix comment syntax for shell commands. [\#1408](https://github.com/VSCodeVim/Vim/pull/1408) ([frewsxcv](https://github.com/frewsxcv)) - Increase timeout for some test cases in mocha [\#1379](https://github.com/VSCodeVim/Vim/pull/1379) ([xconverge](https://github.com/xconverge)) ## [v0.6.10](https://github.com/vscodevim/vim/tree/v0.6.10) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.9...v0.6.10) ## [v0.6.9](https://github.com/vscodevim/vim/tree/v0.6.9) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.8...v0.6.9) ## [v0.6.8](https://github.com/vscodevim/vim/tree/v0.6.8) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.7...v0.6.8) ## [v0.6.7](https://github.com/vscodevim/vim/tree/v0.6.7) (2017-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.6...v0.6.7) - fix bracket motion behavior for use with % and a count, or \[\( and a c… [\#1406](https://github.com/VSCodeVim/Vim/pull/1406) ([xconverge](https://github.com/xconverge)) - fix for cursor not changing correctly, workaround for vscode issue [\#1402](https://github.com/VSCodeVim/Vim/pull/1402) ([xconverge](https://github.com/xconverge)) ## [v0.6.6](https://github.com/vscodevim/vim/tree/v0.6.6) (2017-03-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.5...v0.6.6) - Use block cursor in visual & underline in replace [\#1394](https://github.com/VSCodeVim/Vim/pull/1394) ([net](https://github.com/net)) - Perform remapped commands when prefix by a number [\#1359](https://github.com/VSCodeVim/Vim/pull/1359) ([bdauria](https://github.com/bdauria)) ## [v0.6.5](https://github.com/vscodevim/vim/tree/v0.6.5) (2017-03-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.4...v0.6.5) ## [v0.6.4](https://github.com/vscodevim/vim/tree/v0.6.4) (2017-03-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.3...v0.6.4) - Update README.md [\#1390](https://github.com/VSCodeVim/Vim/pull/1390) ([xconverge](https://github.com/xconverge)) @@ -712,6 +762,7 @@ - fixes \#1382 [\#1386](https://github.com/VSCodeVim/Vim/pull/1386) ([xconverge](https://github.com/xconverge)) ## [v0.6.3](https://github.com/vscodevim/vim/tree/v0.6.3) (2017-03-11) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.6.0...v0.6.3) - fixes \#1373 [\#1374](https://github.com/VSCodeVim/Vim/pull/1374) ([xconverge](https://github.com/xconverge)) @@ -723,6 +774,7 @@ - Index fixes [\#1190](https://github.com/VSCodeVim/Vim/pull/1190) ([xconverge](https://github.com/xconverge)) ## [v0.6.0](https://github.com/vscodevim/vim/tree/v0.6.0) (2017-03-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.3...v0.6.0) - Fix clipboard copy [\#1349](https://github.com/VSCodeVim/Vim/pull/1349) ([johnfn](https://github.com/johnfn)) @@ -745,6 +797,7 @@ - More surround fixes [\#1289](https://github.com/VSCodeVim/Vim/pull/1289) ([xconverge](https://github.com/xconverge)) ## [v0.5.3](https://github.com/vscodevim/vim/tree/v0.5.3) (2017-02-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.0...v0.5.3) - fixes \#1258 [\#1286](https://github.com/VSCodeVim/Vim/pull/1286) ([xconverge](https://github.com/xconverge)) @@ -760,9 +813,11 @@ - Fixes README spelling mistake [\#1246](https://github.com/VSCodeVim/Vim/pull/1246) ([eastwood](https://github.com/eastwood)) ## [v0.5.0](https://github.com/vscodevim/vim/tree/v0.5.0) (2017-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.5.1...v0.5.0) ## [v0.5.1](https://github.com/vscodevim/vim/tree/v0.5.1) (2017-01-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.10...v0.5.1) - Surround [\#1238](https://github.com/VSCodeVim/Vim/pull/1238) ([johnfn](https://github.com/johnfn)) @@ -770,6 +825,7 @@ - fixes \#1214 [\#1217](https://github.com/VSCodeVim/Vim/pull/1217) ([Platzer](https://github.com/Platzer)) ## [v0.4.10](https://github.com/vscodevim/vim/tree/v0.4.10) (2016-12-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.9...v0.4.10) - fixes \#1132 [\#1187](https://github.com/VSCodeVim/Vim/pull/1187) ([xconverge](https://github.com/xconverge)) @@ -793,14 +849,17 @@ - Fixed "d" and "D" in multicursor mode [\#1029](https://github.com/VSCodeVim/Vim/pull/1029) ([Platzer](https://github.com/Platzer)) ## [v0.4.9](https://github.com/vscodevim/vim/tree/v0.4.9) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.8...v0.4.9) ## [v0.4.8](https://github.com/vscodevim/vim/tree/v0.4.8) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.7...v0.4.8) - Update readme for easymotion [\#1114](https://github.com/VSCodeVim/Vim/pull/1114) ([xconverge](https://github.com/xconverge)) ## [v0.4.7](https://github.com/vscodevim/vim/tree/v0.4.7) (2016-12-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.6...v0.4.7) - Fix minor typo [\#1113](https://github.com/VSCodeVim/Vim/pull/1113) ([xconverge](https://github.com/xconverge)) @@ -809,14 +868,17 @@ - Turns highlighting back on after nohl if you try to go to a new searc… [\#1110](https://github.com/VSCodeVim/Vim/pull/1110) ([xconverge](https://github.com/xconverge)) ## [v0.4.6](https://github.com/vscodevim/vim/tree/v0.4.6) (2016-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.4.5...v0.4.6) ## [0.4.5](https://github.com/vscodevim/vim/tree/0.4.5) (2016-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.5...0.4.5) - \[WIP\] gq [\#1106](https://github.com/VSCodeVim/Vim/pull/1106) ([johnfn](https://github.com/johnfn)) ## [v0.4.5](https://github.com/vscodevim/vim/tree/v0.4.5) (2016-12-02) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.4...v0.4.5) - Override home key \(for pressing home in visual for example\) [\#1100](https://github.com/VSCodeVim/Vim/pull/1100) ([xconverge](https://github.com/xconverge)) @@ -824,6 +886,7 @@ - Implement open file command - Issue \#801 [\#1098](https://github.com/VSCodeVim/Vim/pull/1098) ([jamirvin](https://github.com/jamirvin)) ## [v0.4.4](https://github.com/vscodevim/vim/tree/v0.4.4) (2016-11-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.3...v0.4.4) - Removed debug print [\#1083](https://github.com/VSCodeVim/Vim/pull/1083) ([xconverge](https://github.com/xconverge)) @@ -834,6 +897,7 @@ - fixes \#1023 [\#1069](https://github.com/VSCodeVim/Vim/pull/1069) ([xconverge](https://github.com/xconverge)) ## [v0.4.3](https://github.com/vscodevim/vim/tree/v0.4.3) (2016-11-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.2...v0.4.3) - fixes \#1034 [\#1068](https://github.com/VSCodeVim/Vim/pull/1068) ([xconverge](https://github.com/xconverge)) @@ -842,6 +906,7 @@ - How can I fix travis failure [\#1062](https://github.com/VSCodeVim/Vim/pull/1062) ([rebornix](https://github.com/rebornix)) ## [v0.4.2](https://github.com/vscodevim/vim/tree/v0.4.2) (2016-11-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.1...v0.4.2) - Visual block fixes to cursor position and tests [\#1044](https://github.com/VSCodeVim/Vim/pull/1044) ([xconverge](https://github.com/xconverge)) @@ -849,6 +914,7 @@ - Implemented EasyMotion plugin functionality [\#993](https://github.com/VSCodeVim/Vim/pull/993) ([Metamist](https://github.com/Metamist)) ## [v0.4.1](https://github.com/vscodevim/vim/tree/v0.4.1) (2016-10-31) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.4.0...v0.4.1) - fixes \#1013 [\#1014](https://github.com/VSCodeVim/Vim/pull/1014) ([xconverge](https://github.com/xconverge)) @@ -859,7 +925,7 @@ - fixes \#1000 and a minor replace issue [\#1005](https://github.com/VSCodeVim/Vim/pull/1005) ([xconverge](https://github.com/xconverge)) - Update "r" for visual modes on roadmap [\#1002](https://github.com/VSCodeVim/Vim/pull/1002) ([xconverge](https://github.com/xconverge)) - fixes \#998 [\#1001](https://github.com/VSCodeVim/Vim/pull/1001) ([xconverge](https://github.com/xconverge)) -- Remove fix-whitespace gulp command. [\#999](https://github.com/VSCodeVim/Vim/pull/999) ([jpoon](https://github.com/jpoon)) +- Remove fix-whitespace gulp command. [\#999](https://github.com/VSCodeVim/Vim/pull/999) ([jpoon](https://github.com/jpoon)) - Improved performance of visual block replace by a lot [\#997](https://github.com/VSCodeVim/Vim/pull/997) ([xconverge](https://github.com/xconverge)) - fixes \#663 [\#996](https://github.com/VSCodeVim/Vim/pull/996) ([xconverge](https://github.com/xconverge)) - No need for "i" flag on a numerical only regex [\#995](https://github.com/VSCodeVim/Vim/pull/995) ([stefanoio](https://github.com/stefanoio)) @@ -877,13 +943,14 @@ - Add some tests and fix some exceptions during the tests [\#914](https://github.com/VSCodeVim/Vim/pull/914) ([xconverge](https://github.com/xconverge)) ## [v0.4.0](https://github.com/vscodevim/vim/tree/v0.4.0) (2016-10-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.8...v0.4.0) - fix \#528 [\#966](https://github.com/VSCodeVim/Vim/pull/966) ([rebornix](https://github.com/rebornix)) - fix \#693 [\#964](https://github.com/VSCodeVim/Vim/pull/964) ([rebornix](https://github.com/rebornix)) - fix \#922 [\#960](https://github.com/VSCodeVim/Vim/pull/960) ([rebornix](https://github.com/rebornix)) - fix \#939 [\#958](https://github.com/VSCodeVim/Vim/pull/958) ([rebornix](https://github.com/rebornix)) -- Add a command is `D` in visual block mode. [\#957](https://github.com/VSCodeVim/Vim/pull/957) ([Kooooya](https://github.com/Kooooya)) +- Add a command is `D` in visual block mode. [\#957](https://github.com/VSCodeVim/Vim/pull/957) ([Kooooya](https://github.com/Kooooya)) - Add commands is `s` and `S` in visual block mode. [\#954](https://github.com/VSCodeVim/Vim/pull/954) ([Kooooya](https://github.com/Kooooya)) - fix \#808 [\#952](https://github.com/VSCodeVim/Vim/pull/952) ([rebornix](https://github.com/rebornix)) - fix \#484 [\#951](https://github.com/VSCodeVim/Vim/pull/951) ([rebornix](https://github.com/rebornix)) @@ -899,6 +966,7 @@ - fix \#845 [\#911](https://github.com/VSCodeVim/Vim/pull/911) ([rebornix](https://github.com/rebornix)) ## [v0.3.8](https://github.com/vscodevim/vim/tree/v0.3.8) (2016-10-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.7...v0.3.8) - fixes \#879 [\#933](https://github.com/VSCodeVim/Vim/pull/933) ([xconverge](https://github.com/xconverge)) @@ -912,33 +980,40 @@ - Macro [\#894](https://github.com/VSCodeVim/Vim/pull/894) ([rebornix](https://github.com/rebornix)) ## [0.3.7](https://github.com/vscodevim/vim/tree/0.3.7) (2016-10-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.6...0.3.7) - fixes \#888 [\#902](https://github.com/VSCodeVim/Vim/pull/902) ([xconverge](https://github.com/xconverge)) - fixes \#882 [\#900](https://github.com/VSCodeVim/Vim/pull/900) ([xconverge](https://github.com/xconverge)) ## [0.3.6](https://github.com/vscodevim/vim/tree/0.3.6) (2016-10-12) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.5...0.3.6) - allow remapping of ctrl-j and ctrl-k in settings.json [\#891](https://github.com/VSCodeVim/Vim/pull/891) ([xwvvvvwx](https://github.com/xwvvvvwx)) - Fix visual block x [\#861](https://github.com/VSCodeVim/Vim/pull/861) ([xconverge](https://github.com/xconverge)) ## [0.3.5](https://github.com/vscodevim/vim/tree/0.3.5) (2016-10-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.4...0.3.5) ## [0.3.4](https://github.com/vscodevim/vim/tree/0.3.4) (2016-10-10) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.3...0.3.4) - Remove unused modehandlers when tabs are closed [\#865](https://github.com/VSCodeVim/Vim/pull/865) ([xconverge](https://github.com/xconverge)) - Insert Previous text [\#768](https://github.com/VSCodeVim/Vim/pull/768) ([rebornix](https://github.com/rebornix)) ## [0.3.3](https://github.com/vscodevim/vim/tree/0.3.3) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.3.2...0.3.3) ## [0.3.2](https://github.com/vscodevim/vim/tree/0.3.2) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.1...0.3.2) ## [v0.3.1](https://github.com/vscodevim/vim/tree/v0.3.1) (2016-10-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.3.0...v0.3.1) - Unnecessary quit check on untitled files [\#855](https://github.com/VSCodeVim/Vim/pull/855) ([xconverge](https://github.com/xconverge)) @@ -952,6 +1027,7 @@ - fixes \#784 [\#814](https://github.com/VSCodeVim/Vim/pull/814) ([xconverge](https://github.com/xconverge)) ## [v0.3.0](https://github.com/vscodevim/vim/tree/v0.3.0) (2016-10-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.2.0...v0.3.0) - Show debug console when session launches [\#821](https://github.com/VSCodeVim/Vim/pull/821) ([xconverge](https://github.com/xconverge)) @@ -967,9 +1043,11 @@ - fixes \#739 [\#767](https://github.com/VSCodeVim/Vim/pull/767) ([xconverge](https://github.com/xconverge)) ## [v0.2.0](https://github.com/vscodevim/vim/tree/v0.2.0) (2016-09-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.11...v0.2.0) ## [v0.1.11](https://github.com/vscodevim/vim/tree/v0.1.11) (2016-09-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.10...v0.1.11) - Release Pipeline [\#788](https://github.com/VSCodeVim/Vim/pull/788) ([jpoon](https://github.com/jpoon)) @@ -992,6 +1070,7 @@ - Special keys in Insert Mode [\#615](https://github.com/VSCodeVim/Vim/pull/615) ([rebornix](https://github.com/rebornix)) ## [v0.1.10](https://github.com/vscodevim/vim/tree/v0.1.10) (2016-09-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.9...v0.1.10) - Align Screen Line commands with latest Code API [\#724](https://github.com/VSCodeVim/Vim/pull/724) ([rebornix](https://github.com/rebornix)) @@ -1002,6 +1081,7 @@ - fix \#690 and other toggle case issues [\#698](https://github.com/VSCodeVim/Vim/pull/698) ([xconverge](https://github.com/xconverge)) ## [v0.1.9](https://github.com/vscodevim/vim/tree/v0.1.9) (2016-09-05) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.8...v0.1.9) - Update README.md [\#714](https://github.com/VSCodeVim/Vim/pull/714) ([jpoon](https://github.com/jpoon)) @@ -1012,6 +1092,7 @@ - Tiny change to issue template. [\#709](https://github.com/VSCodeVim/Vim/pull/709) ([johnfn](https://github.com/johnfn)) ## [v0.1.8](https://github.com/vscodevim/vim/tree/v0.1.8) (2016-09-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.7...v0.1.8) - Fix race condition with switching active text editor. [\#705](https://github.com/VSCodeVim/Vim/pull/705) ([johnfn](https://github.com/johnfn)) @@ -1045,6 +1126,7 @@ - Implement tag movements [\#619](https://github.com/VSCodeVim/Vim/pull/619) ([sectioneight](https://github.com/sectioneight)) ## [v0.1.7](https://github.com/vscodevim/vim/tree/v0.1.7) (2016-08-14) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.6...v0.1.7) - Add support Y in visual mode [\#597](https://github.com/VSCodeVim/Vim/pull/597) ([shotaAkasaka](https://github.com/shotaAkasaka)) @@ -1054,14 +1136,17 @@ - Vim Settings [\#508](https://github.com/VSCodeVim/Vim/pull/508) ([rebornix](https://github.com/rebornix)) ## [v0.1.6](https://github.com/vscodevim/vim/tree/v0.1.6) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.5...v0.1.6) - \[WIP\] Visual block mode [\#469](https://github.com/VSCodeVim/Vim/pull/469) ([johnfn](https://github.com/johnfn)) ## [v0.1.5](https://github.com/vscodevim/vim/tree/v0.1.5) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.1.5...v0.1.5) ## [0.1.5](https://github.com/vscodevim/vim/tree/0.1.5) (2016-08-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.4...0.1.5) - Replace mode [\#580](https://github.com/VSCodeVim/Vim/pull/580) ([rebornix](https://github.com/rebornix)) @@ -1084,6 +1169,7 @@ - Screen lines and characters. [\#486](https://github.com/VSCodeVim/Vim/pull/486) ([rebornix](https://github.com/rebornix)) ## [v0.1.4](https://github.com/vscodevim/vim/tree/v0.1.4) (2016-07-28) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.3...v0.1.4) - Implement increment and decrement operators [\#515](https://github.com/VSCodeVim/Vim/pull/515) ([sectioneight](https://github.com/sectioneight)) @@ -1106,6 +1192,7 @@ - Word in visual mode [\#385](https://github.com/VSCodeVim/Vim/pull/385) ([rebornix](https://github.com/rebornix)) ## [v0.1.3](https://github.com/vscodevim/vim/tree/v0.1.3) (2016-07-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.2...v0.1.3) - Fix wrong command for ctrl+f [\#476](https://github.com/VSCodeVim/Vim/pull/476) ([rebornix](https://github.com/rebornix)) @@ -1130,6 +1217,7 @@ - Open file in new window. [\#404](https://github.com/VSCodeVim/Vim/pull/404) ([rebornix](https://github.com/rebornix)) ## [v0.1.2](https://github.com/vscodevim/vim/tree/v0.1.2) (2016-07-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1.1...v0.1.2) - Fix spec for otherModesKeyBindings to match insert [\#434](https://github.com/VSCodeVim/Vim/pull/434) ([sectioneight](https://github.com/sectioneight)) @@ -1142,12 +1230,14 @@ - Fix layout mistake in Contributing and gulp typo [\#411](https://github.com/VSCodeVim/Vim/pull/411) ([frederickfogerty](https://github.com/frederickfogerty)) ## [v0.1.1](https://github.com/vscodevim/vim/tree/v0.1.1) (2016-07-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.1...v0.1.1) - Fix \#414. [\#415](https://github.com/VSCodeVim/Vim/pull/415) ([rebornix](https://github.com/rebornix)) - Substitute [\#376](https://github.com/VSCodeVim/Vim/pull/376) ([rebornix](https://github.com/rebornix)) ## [v0.1](https://github.com/vscodevim/vim/tree/v0.1) (2016-07-08) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.28...v0.1) - Fix Roadmap link in Readme [\#405](https://github.com/VSCodeVim/Vim/pull/405) ([frederickfogerty](https://github.com/frederickfogerty)) @@ -1174,6 +1264,7 @@ - WriteQuit [\#354](https://github.com/VSCodeVim/Vim/pull/354) ([srepollock](https://github.com/srepollock)) ## [v0.0.28](https://github.com/vscodevim/vim/tree/v0.0.28) (2016-06-24) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.27...v0.0.28) - Implement \yy [\#351](https://github.com/VSCodeVim/Vim/pull/351) ([rebornix](https://github.com/rebornix)) @@ -1182,12 +1273,15 @@ - Add format code support. Fix \#308. [\#348](https://github.com/VSCodeVim/Vim/pull/348) ([rebornix](https://github.com/rebornix)) ## [v0.0.27](https://github.com/vscodevim/vim/tree/v0.0.27) (2016-06-23) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.26...v0.0.27) ## [v0.0.26](https://github.com/vscodevim/vim/tree/v0.0.26) (2016-06-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.26...v0.0.26) ## [0.0.26](https://github.com/vscodevim/vim/tree/0.0.26) (2016-06-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.25...0.0.26) - Star and hash [\#335](https://github.com/VSCodeVim/Vim/pull/335) ([johnfn](https://github.com/johnfn)) @@ -1197,32 +1291,40 @@ - Add support for 'U' uppercase [\#312](https://github.com/VSCodeVim/Vim/pull/312) ([rebornix](https://github.com/rebornix)) ## [0.0.25](https://github.com/vscodevim/vim/tree/0.0.25) (2016-06-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.25...0.0.25) ## [v0.0.25](https://github.com/vscodevim/vim/tree/v0.0.25) (2016-06-20) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.24...v0.0.25) - Repeated motions [\#321](https://github.com/VSCodeVim/Vim/pull/321) ([johnfn](https://github.com/johnfn)) ## [0.0.24](https://github.com/vscodevim/vim/tree/0.0.24) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.24...0.0.24) ## [v0.0.24](https://github.com/vscodevim/vim/tree/v0.0.24) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.23...v0.0.24) ## [v0.0.23](https://github.com/vscodevim/vim/tree/v0.0.23) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.23...v0.0.23) ## [0.0.23](https://github.com/vscodevim/vim/tree/0.0.23) (2016-06-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.22...0.0.23) - Add %. [\#319](https://github.com/VSCodeVim/Vim/pull/319) ([johnfn](https://github.com/johnfn)) - @darrenweston's test improvements + more work [\#316](https://github.com/VSCodeVim/Vim/pull/316) ([johnfn](https://github.com/johnfn)) ## [v0.0.22](https://github.com/vscodevim/vim/tree/v0.0.22) (2016-06-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.21...v0.0.22) ## [v0.0.21](https://github.com/vscodevim/vim/tree/v0.0.21) (2016-06-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.20...v0.0.21) - Fix visual line selection from bottom to top. [\#307](https://github.com/VSCodeVim/Vim/pull/307) ([johnfn](https://github.com/johnfn)) @@ -1231,6 +1333,7 @@ - Refactor dot [\#294](https://github.com/VSCodeVim/Vim/pull/294) ([johnfn](https://github.com/johnfn)) ## [v0.0.20](https://github.com/vscodevim/vim/tree/v0.0.20) (2016-06-13) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.19...v0.0.20) - Add simpler test mechanism and convert some tests [\#292](https://github.com/VSCodeVim/Vim/pull/292) ([darrenweston](https://github.com/darrenweston)) @@ -1247,6 +1350,7 @@ - Use vscode built in support for block cursors [\#245](https://github.com/VSCodeVim/Vim/pull/245) ([Paxxi](https://github.com/Paxxi)) ## [v0.0.19](https://github.com/vscodevim/vim/tree/v0.0.19) (2016-06-07) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.18...v0.0.19) - Add f, F, t and T motions [\#244](https://github.com/VSCodeVim/Vim/pull/244) ([johnfn](https://github.com/johnfn)) @@ -1268,12 +1372,14 @@ - Add yank support for Visual mode [\#217](https://github.com/VSCodeVim/Vim/pull/217) ([pjvds](https://github.com/pjvds)) ## [v0.0.18](https://github.com/vscodevim/vim/tree/v0.0.18) (2016-05-19) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.17...v0.0.18) - Install Gulp for Travis [\#225](https://github.com/VSCodeVim/Vim/pull/225) ([jpoon](https://github.com/jpoon)) - Update to vscode 0.10.12 APIs [\#224](https://github.com/VSCodeVim/Vim/pull/224) ([jpoon](https://github.com/jpoon)) ## [v0.0.17](https://github.com/vscodevim/vim/tree/v0.0.17) (2016-05-17) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.16...v0.0.17) - Added basic fold commands zc, zo, zC, zO. [\#222](https://github.com/VSCodeVim/Vim/pull/222) ([geksilla](https://github.com/geksilla)) @@ -1283,6 +1389,7 @@ - Add check mark to D key in README [\#215](https://github.com/VSCodeVim/Vim/pull/215) ([pjvds](https://github.com/pjvds)) ## [v0.0.16](https://github.com/vscodevim/vim/tree/v0.0.16) (2016-05-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.15...v0.0.16) - I think this may fix the build failure. [\#209](https://github.com/VSCodeVim/Vim/pull/209) ([edthedev](https://github.com/edthedev)) @@ -1292,28 +1399,32 @@ - Fixes Issue with Cursor Position After 'dw' [\#200](https://github.com/VSCodeVim/Vim/pull/200) ([dpbackes](https://github.com/dpbackes)) ## [v0.0.15](https://github.com/vscodevim/vim/tree/v0.0.15) (2016-03-22) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.14...v0.0.15) - Bug fixes [\#192](https://github.com/VSCodeVim/Vim/pull/192) ([jpoon](https://github.com/jpoon)) ## [v0.0.14](https://github.com/vscodevim/vim/tree/v0.0.14) (2016-03-21) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.13...v0.0.14) - Bug fixes [\#191](https://github.com/VSCodeVim/Vim/pull/191) ([jpoon](https://github.com/jpoon)) - Search '/' in Command Mode [\#190](https://github.com/VSCodeVim/Vim/pull/190) ([jpoon](https://github.com/jpoon)) ## [v0.0.13](https://github.com/vscodevim/vim/tree/v0.0.13) (2016-03-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.12...v0.0.13) - fix appveyor build [\#189](https://github.com/VSCodeVim/Vim/pull/189) ([jpoon](https://github.com/jpoon)) - Fixup/highlight eol char [\#182](https://github.com/VSCodeVim/Vim/pull/182) ([khisakuni](https://github.com/khisakuni)) - c commands and ge motions [\#180](https://github.com/VSCodeVim/Vim/pull/180) ([frarees](https://github.com/frarees)) -- add github\_token to appveyor/travis [\#178](https://github.com/VSCodeVim/Vim/pull/178) ([jpoon](https://github.com/jpoon)) +- add github_token to appveyor/travis [\#178](https://github.com/VSCodeVim/Vim/pull/178) ([jpoon](https://github.com/jpoon)) - Commands can write to status bar [\#177](https://github.com/VSCodeVim/Vim/pull/177) ([frarees](https://github.com/frarees)) - Wait for test files to get written [\#175](https://github.com/VSCodeVim/Vim/pull/175) ([frarees](https://github.com/frarees)) - d{motion} support [\#174](https://github.com/VSCodeVim/Vim/pull/174) ([frarees](https://github.com/frarees)) ## [v0.0.12](https://github.com/vscodevim/vim/tree/v0.0.12) (2016-03-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.11...v0.0.12) - Spanish keyboard mappings [\#169](https://github.com/VSCodeVim/Vim/pull/169) ([frarees](https://github.com/frarees)) @@ -1326,6 +1437,7 @@ - Visual Mode + Rudimentary Operators [\#144](https://github.com/VSCodeVim/Vim/pull/144) ([johnfn](https://github.com/johnfn)) ## [v0.0.11](https://github.com/vscodevim/vim/tree/v0.0.11) (2016-02-18) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.10...v0.0.11) - Upgrade to Typings as TSD has been deprecated [\#152](https://github.com/VSCodeVim/Vim/pull/152) ([jpoon](https://github.com/jpoon)) @@ -1334,13 +1446,14 @@ - Implement 'X' in normal mode \(backspace\) [\#145](https://github.com/VSCodeVim/Vim/pull/145) ([tma-isbx](https://github.com/tma-isbx)) - Fix b motion. [\#143](https://github.com/VSCodeVim/Vim/pull/143) ([johnfn](https://github.com/johnfn)) - Implement ctrl+f/ctrl+b \(PageDown/PageUp\) [\#142](https://github.com/VSCodeVim/Vim/pull/142) ([tma-isbx](https://github.com/tma-isbx)) -- \[\#127\] Fix 'x' behavior at EOL [\#141](https://github.com/VSCodeVim/Vim/pull/141) ([tma-isbx](https://github.com/tma-isbx)) +- \[\#127\] Fix 'x' behavior at EOL [\#141](https://github.com/VSCodeVim/Vim/pull/141) ([tma-isbx](https://github.com/tma-isbx)) - Implement % to jump to matching brace [\#140](https://github.com/VSCodeVim/Vim/pull/140) ([tma-isbx](https://github.com/tma-isbx)) - Add ctrl-c. [\#139](https://github.com/VSCodeVim/Vim/pull/139) ([johnfn](https://github.com/johnfn)) - Fix word and back-word motions, and fix tests. [\#138](https://github.com/VSCodeVim/Vim/pull/138) ([johnfn](https://github.com/johnfn)) - Convert to ES6, Promises, async and await. [\#137](https://github.com/VSCodeVim/Vim/pull/137) ([johnfn](https://github.com/johnfn)) ## [v0.0.10](https://github.com/vscodevim/vim/tree/v0.0.10) (2016-02-01) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.9...v0.0.10) - Implement % to jump to matching brace [\#134](https://github.com/VSCodeVim/Vim/pull/134) ([tma-isbx](https://github.com/tma-isbx)) @@ -1348,37 +1461,44 @@ - Add Swedish keyboard layout [\#130](https://github.com/VSCodeVim/Vim/pull/130) ([AntonAderum](https://github.com/AntonAderum)) ## [v0.0.9](https://github.com/vscodevim/vim/tree/v0.0.9) (2016-01-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/0.0.9...v0.0.9) ## [0.0.9](https://github.com/vscodevim/vim/tree/0.0.9) (2016-01-06) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.8...0.0.9) - added danish keyboard layout - fix issue \#124 [\#125](https://github.com/VSCodeVim/Vim/pull/125) ([kedde](https://github.com/kedde)) - Delete Right when user presses x [\#122](https://github.com/VSCodeVim/Vim/pull/122) ([sharpoverride](https://github.com/sharpoverride)) ## [v0.0.8](https://github.com/vscodevim/vim/tree/v0.0.8) (2016-01-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.7...v0.0.8) ## [v0.0.7](https://github.com/vscodevim/vim/tree/v0.0.7) (2016-01-03) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.6...v0.0.7) - Block Cursor [\#120](https://github.com/VSCodeVim/Vim/pull/120) ([jpoon](https://github.com/jpoon)) - BugFix: swapped cursor and caret. desired column not updated properly [\#119](https://github.com/VSCodeVim/Vim/pull/119) ([jpoon](https://github.com/jpoon)) -- Readme: update with keyboard configuration [\#116](https://github.com/VSCodeVim/Vim/pull/116) ([jpoon](https://github.com/jpoon)) +- Readme: update with keyboard configuration [\#116](https://github.com/VSCodeVim/Vim/pull/116) ([jpoon](https://github.com/jpoon)) - Tests: Enable all tests to be run in Travis CI [\#115](https://github.com/VSCodeVim/Vim/pull/115) ([jpoon](https://github.com/jpoon)) - Cleanup [\#114](https://github.com/VSCodeVim/Vim/pull/114) ([jpoon](https://github.com/jpoon)) ## [v0.0.6](https://github.com/vscodevim/vim/tree/v0.0.6) (2015-12-30) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.5...v0.0.6) - Cleanup [\#113](https://github.com/VSCodeVim/Vim/pull/113) ([jpoon](https://github.com/jpoon)) - Motion Fixes [\#112](https://github.com/VSCodeVim/Vim/pull/112) ([jpoon](https://github.com/jpoon)) -- Fix character position persistence on up/down commands, add : "e", "0", and fix "^" [\#109](https://github.com/VSCodeVim/Vim/pull/109) ([corymickelson](https://github.com/corymickelson)) +- Fix character position persistence on up/down commands, add : "e", "0", and fix "^" [\#109](https://github.com/VSCodeVim/Vim/pull/109) ([corymickelson](https://github.com/corymickelson)) ## [v0.0.5](https://github.com/vscodevim/vim/tree/v0.0.5) (2015-12-09) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.3...v0.0.5) ## [v0.0.3](https://github.com/vscodevim/vim/tree/v0.0.3) (2015-12-04) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.2...v0.0.3) - Promisify [\#92](https://github.com/VSCodeVim/Vim/pull/92) ([jpoon](https://github.com/jpoon)) @@ -1402,11 +1522,13 @@ - Add word motion and db [\#53](https://github.com/VSCodeVim/Vim/pull/53) ([adriaanp](https://github.com/adriaanp)) ## [v0.0.2](https://github.com/vscodevim/vim/tree/v0.0.2) (2015-11-29) + [Full Changelog](https://github.com/vscodevim/vim/compare/v0.0.1...v0.0.2) - move cursor position after getting normal mode [\#50](https://github.com/VSCodeVim/Vim/pull/50) ([kimitake](https://github.com/kimitake)) ## [v0.0.1](https://github.com/vscodevim/vim/tree/v0.0.1) (2015-11-29) + - Implement Redo, Refactor Keybindings [\#46](https://github.com/VSCodeVim/Vim/pull/46) ([jpoon](https://github.com/jpoon)) - reorganize tests; add tests [\#45](https://github.com/VSCodeVim/Vim/pull/45) ([guillermooo](https://github.com/guillermooo)) - fixes; add VimError class [\#43](https://github.com/VSCodeVim/Vim/pull/43) ([guillermooo](https://github.com/guillermooo)) @@ -1433,4 +1555,4 @@ - Navigation mode [\#4](https://github.com/VSCodeVim/Vim/pull/4) ([jpoon](https://github.com/jpoon)) - Add ex mode [\#3](https://github.com/VSCodeVim/Vim/pull/3) ([guillermooo](https://github.com/guillermooo)) -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file +\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_ diff --git a/gulpfile.js b/gulpfile.js index e1ff9d40b01..7136f61f6fb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -31,7 +31,7 @@ function runPrettier(command, done) { var files = stdout .split(/\r?\n/) .filter(f => { - return f.endsWith('.ts') || f.endsWith('.js'); + return f.endsWith('.ts') || f.endsWith('.js') || f.endsWith('.md'); }) .join(' '); diff --git a/src/util/util.ts b/src/util/util.ts index 26690f8f387..787c555b311 100644 --- a/src/util/util.ts +++ b/src/util/util.ts @@ -41,7 +41,7 @@ export async function getCursorsAfterSync(timeout: number = 0): Promise export function getExtensionDirPath(): string { const dirs = new AppDirectory('VSCodeVim'); - logger.debug("VSCodeVim Cache Directory: " + dirs.userCache()); + logger.debug('VSCodeVim Cache Directory: ' + dirs.userCache()); return dirs.userCache(); } From 47fe944008a2d86a829633f06d7be4a0b525c30b Mon Sep 17 00:00:00 2001 From: xconverge Date: Sun, 29 Jul 2018 18:22:31 -0700 Subject: [PATCH 21/21] Revert "Merge pull request #2900 from xconverge/fix-context-calls-for-performance" This reverts commit 79e6aadfbcd81bd367e7f6c6b023767dadbfbd17, reversing changes made to 7a16ea9e5eb48c985cf88433389f3707a3fab120. --- extension.ts | 14 +++----------- src/mode/modeHandler.ts | 24 +++++++----------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/extension.ts b/extension.ts index 46e94942894..082598d1425 100644 --- a/extension.ts +++ b/extension.ts @@ -58,11 +58,7 @@ export async function getAndUpdateModeHandler(): Promise { } } else { previousActiveEditorId = activeEditorId; - await curHandler.updateView(curHandler.vimState, { - drawSelection: false, - revealRange: false, - forceSetContext: false, - }); + await curHandler.updateView(curHandler.vimState, { drawSelection: false, revealRange: false }); } if (prevHandler && curHandler.vimState.focusChanged) { @@ -242,7 +238,7 @@ export async function activate(context: vscode.ExtensionContext) { // Initialize mode handler for current active Text Editor at startup. if (vscode.window.activeTextEditor) { let mh = await getAndUpdateModeHandler(); - mh.updateView(mh.vimState, { drawSelection: false, revealRange: false, forceSetContext: true }); + mh.updateView(mh.vimState, { drawSelection: false, revealRange: false }); } // This is called last because getAndUpdateModeHandler() will change cursor @@ -341,11 +337,7 @@ async function handleActiveEditorChange(): Promise { if (vscode.window.activeTextEditor !== undefined) { const mh = await getAndUpdateModeHandler(); - mh.updateView(mh.vimState, { - drawSelection: false, - revealRange: false, - forceSetContext: true, - }); + mh.updateView(mh.vimState, { drawSelection: false, revealRange: false }); } }); } diff --git a/src/mode/modeHandler.ts b/src/mode/modeHandler.ts index 6ca5d961ae8..3debfb95f93 100644 --- a/src/mode/modeHandler.ts +++ b/src/mode/modeHandler.ts @@ -36,7 +36,6 @@ export class ModeHandler implements vscode.Disposable { private _disposables: vscode.Disposable[] = []; private _modes: Mode[]; private _remappers: Remappers; - private _prevMode: ModeName; public vimState: VimState; @@ -257,11 +256,7 @@ export class ModeHandler implements vscode.Disposable { } } - await this.updateView(this.vimState, { - drawSelection: toDraw, - revealRange: true, - forceSetContext: false, - }); + await this.updateView(this.vimState, { drawSelection: toDraw, revealRange: true }); } } @@ -1184,10 +1179,9 @@ export class ModeHandler implements vscode.Disposable { public async updateView( vimState: VimState, - args: { drawSelection: boolean; revealRange: boolean; forceSetContext: boolean } = { + args: { drawSelection: boolean; revealRange: boolean } = { drawSelection: true, revealRange: true, - forceSetContext: false, } ): Promise { // Draw selection (or cursor) @@ -1402,15 +1396,11 @@ export class ModeHandler implements vscode.Disposable { this._renderStatusBar(); - // Only update the context if the mode has changed for performance reasons - if (args.forceSetContext || this._prevMode !== this.vimState.currentMode) { - this._prevMode = this.vimState.currentMode; - await vscode.commands.executeCommand( - 'setContext', - 'vim.mode', - ModeName[this.vimState.currentMode] - ); - } + await vscode.commands.executeCommand( + 'setContext', + 'vim.mode', + ModeName[this.vimState.currentMode] + ); } private _renderStatusBar(): void {