Permalink
713 lines (712 sloc) 23.9 KB
{
"name": "vim",
"displayName": "Vim",
"description": "Vim emulation for Visual Studio Code",
"icon": "images/icon.png",
"version": "0.16.10",
"publisher": "vscodevim",
"galleryBanner": {
"color": "#e3f4ff",
"theme": "light"
},
"license": "MIT",
"keywords": [
"vim",
"vi",
"vscodevim"
],
"repository": {
"type": "git",
"url": "https://github.com/VSCodeVim/Vim.git"
},
"homepage": "https://github.com/VSCodeVim/Vim",
"bugs": {
"url": "https://github.com/VSCodeVim/Vim/issues"
},
"engines": {
"vscode": "^1.27.0"
},
"categories": [
"Other",
"Keymaps"
],
"activationEvents": [
"*",
"onCommand:type"
],
"qna": "https://vscodevim-slackin.azurewebsites.net/",
"main": "./out/extension",
"contributes": {
"commands": [
{
"command": "vim.remap",
"title": "Vim: Remap any key combination that VS Code supports to Vim motions/operators/ExCommands/macro."
},
{
"command": "toggleVim",
"title": "Vim: Toggle Vim Mode"
},
{
"command": "vim.showQuickpickCmdLine",
"title": "Vim: Show Command Line"
}
],
"keybindings": [
{
"key": "Escape",
"command": "extension.vim_escape",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "Home",
"command": "extension.vim_home",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "End",
"command": "extension.vim_end",
"when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "Insert",
"command": "extension.vim_insert",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "Backspace",
"command": "extension.vim_backspace",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "Delete",
"command": "extension.vim_delete",
"when": "editorTextFocus && vim.active && vim.mode != 'Insert' && !inDebugRepl"
},
{
"key": "tab",
"command": "extension.vim_tab",
"when": "editorFocus && vim.active && vim.mode != 'Insert' && !inDebugRepl"
},
{
"key": "left",
"command": "extension.vim_left",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "right",
"command": "extension.vim_right",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "up",
"command": "extension.vim_up",
"when": "editorTextFocus && vim.active && !inDebugRepl && !suggestWidgetVisible && !suggestWidgetMultipleSuggestions"
},
{
"key": "down",
"command": "extension.vim_down",
"when": "editorTextFocus && vim.active && !inDebugRepl && !suggestWidgetVisible && !suggestWidgetMultipleSuggestions"
},
{
"key": "g g",
"command": "list.focusFirst",
"when": "listFocus && !inputFocus"
},
{
"key": "h",
"command": "list.collapse",
"when": "listFocus && !inputFocus"
},
{
"key": "j",
"command": "list.focusDown",
"when": "listFocus && !inputFocus"
},
{
"key": "k",
"command": "list.focusUp",
"when": "listFocus && !inputFocus"
},
{
"key": "l",
"command": "list.select",
"when": "listFocus && !inputFocus"
},
{
"key": "o",
"command": "list.toggleExpand",
"when": "listFocus && !inputFocus"
},
{
"key": "ctrl+a",
"command": "extension.vim_ctrl+a",
"when": "editorTextFocus && vim.active && vim.use<C-a> && !inDebugRepl"
},
{
"key": "ctrl+b",
"command": "extension.vim_ctrl+b",
"when": "editorTextFocus && vim.active && vim.use<C-b> && vim.mode != 'Insert' && !inDebugRepl"
},
{
"key": "ctrl+c",
"command": "extension.vim_ctrl+c",
"when": "editorTextFocus && vim.active && vim.use<C-c> && !inDebugRepl && vim.overrideCtrlC"
},
{
"key": "ctrl+d",
"command": "extension.vim_ctrl+d",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+d",
"command": "list.focusPageDown",
"when": "listFocus && !inputFocus"
},
{
"key": "ctrl+e",
"command": "extension.vim_ctrl+e",
"when": "editorTextFocus && vim.active && vim.use<C-e> && !inDebugRepl"
},
{
"key": "ctrl+f",
"command": "extension.vim_ctrl+f",
"when": "editorTextFocus && vim.active && vim.use<C-f> && vim.mode != 'Insert' && !inDebugRepl"
},
{
"key": "ctrl+h",
"command": "extension.vim_ctrl+h",
"when": "editorTextFocus && vim.active && vim.use<C-h> && !inDebugRepl"
},
{
"key": "ctrl+i",
"command": "extension.vim_ctrl+i",
"when": "editorTextFocus && vim.active && vim.use<C-i> && !inDebugRepl"
},
{
"key": "ctrl+j",
"command": "extension.vim_ctrl+j",
"when": "editorTextFocus && vim.active && vim.use<C-j> && !inDebugRepl"
},
{
"key": "ctrl+k",
"command": "extension.vim_ctrl+k",
"when": "editorTextFocus && vim.active && vim.use<C-k> && !inDebugRepl"
},
{
"key": "ctrl+l",
"command": "extension.vim_navigateCtrlL",
"when": "editorTextFocus && vim.active && vim.use<C-l> && !inDebugRepl"
},
{
"key": "ctrl+n",
"command": "extension.vim_ctrl+n",
"when": "editorTextFocus && vim.active && vim.use<C-n> && !inDebugRepl"
},
{
"key": "ctrl+o",
"command": "extension.vim_ctrl+o",
"when": "editorTextFocus && vim.active && vim.use<C-o> && !inDebugRepl"
},
{
"key": "ctrl+p",
"command": "extension.vim_ctrl+p",
"when": "suggestWidgetVisible && vim.active && vim.use<C-p>"
},
{
"key": "ctrl+q",
"command": "extension.vim_winCtrlQ",
"when": "editorTextFocus && vim.active && vim.use<C-q> && !inDebugRepl"
},
{
"key": "ctrl+r",
"command": "extension.vim_ctrl+r",
"when": "editorTextFocus && vim.active && vim.use<C-r> && !inDebugRepl"
},
{
"key": "ctrl+t",
"command": "extension.vim_ctrl+t",
"when": "editorTextFocus && vim.active && vim.use<C-t> && !inDebugRepl"
},
{
"key": "ctrl+u",
"command": "extension.vim_ctrl+u",
"when": "editorTextFocus && vim.active && vim.use<C-u> && !inDebugRepl"
},
{
"key": "ctrl+u",
"command": "list.focusPageUp",
"when": "listFocus && !inputFocus"
},
{
"key": "ctrl+v",
"command": "extension.vim_ctrl+v",
"when": "editorTextFocus && vim.active && vim.use<C-v> && !inDebugRepl"
},
{
"key": "ctrl+w",
"command": "extension.vim_ctrl+w",
"when": "editorTextFocus && vim.active && vim.use<C-w> && !inDebugRepl"
},
{
"key": "ctrl+x",
"command": "extension.vim_ctrl+x",
"when": "editorTextFocus && vim.active && vim.use<C-x> && !inDebugRepl"
},
{
"key": "ctrl+y",
"command": "extension.vim_ctrl+y",
"when": "editorTextFocus && vim.active && vim.use<C-y> && !inDebugRepl"
},
{
"key": "ctrl+[",
"command": "extension.vim_ctrl+[",
"when": "editorTextFocus && vim.active && vim.use<C-[> && !inDebugRepl"
},
{
"key": "ctrl+]",
"command": "extension.vim_ctrl+]",
"when": "editorTextFocus && vim.active && vim.use<C-]> && !inDebugRepl"
},
{
"key": "ctrl+shift+2",
"command": "extension.vim_ctrl+shift+2",
"when": "editorTextFocus && vim.active && vim.use<C-shift+2>"
},
{
"key": "ctrl+pagedown",
"command": "extension.vim_ctrl+pagedown",
"when": "editorTextFocus && vim.active && vim.use<C-pagedown> && !inDebugRepl"
},
{
"key": "ctrl+pageup",
"command": "extension.vim_ctrl+pageup",
"when": "editorTextFocus && vim.active && vim.use<C-pageup> && !inDebugRepl"
},
{
"key": "shift+G",
"command": "list.focusLast",
"when": "listFocus && !inputFocus"
},
{
"key": "shift+backspace",
"command": "extension.vim_shift+backspace",
"when": "editorTextFocus && vim.active && vim.use<shift+BS> && vim.mode == 'SearchInProgressMode' && !inDebugRepl"
},
{
"key": "cmd+left",
"command": "extension.vim_cmd+left",
"when": "editorTextFocus && vim.active && vim.use<D-left> && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "cmd+right",
"command": "extension.vim_cmd+right",
"when": "editorTextFocus && vim.active && vim.use<D-right> && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "cmd+a",
"command": "extension.vim_cmd+a",
"when": "editorTextFocus && vim.active && vim.use<D-a> && !inDebugRepl && vim.mode != 'Insert'"
},
{
"key": "cmd+c",
"command": "extension.vim_cmd+c",
"when": "editorTextFocus && vim.active && vim.use<D-c> && vim.overrideCopy && !inDebugRepl"
},
{
"key": "cmd+d",
"command": "extension.vim_cmd+d",
"when": "editorTextFocus && vim.active && vim.use<D-d> && !inDebugRepl"
},
{
"key": "cmd+v",
"command": "extension.vim_cmd+v",
"when": "editorTextFocus && vim.active && vim.use<D-v> && vim.overrideCmdV && !inDebugRepl"
},
{
"key": "ctrl+alt+down",
"linux": "shift+alt+down",
"mac": "cmd+alt+down",
"command": "extension.vim_cmd+alt+down",
"when": "editorTextFocus && vim.active && !inDebugRepl"
},
{
"key": "ctrl+alt+up",
"linux": "shift+alt+up",
"mac": "cmd+alt+up",
"command": "extension.vim_cmd+alt+up",
"when": "editorTextFocus && vim.active && !inDebugRepl"
}
],
"configuration": {
"title": "Vim Configuration",
"type": "object",
"properties": {
"vim.debug.loggingLevel": {
"type": "string",
"description": "Extension logging level",
"default": "error"
},
"vim.normalModeKeyBindings": {
"type": "array",
"description": "Remapped keys in normal mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.normalModeKeyBindingsNonRecursive": {
"type": "array",
"description": "Non-recursive remapped keys in normal mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.useCtrlKeys": {
"type": "boolean",
"description": "Enable some vim ctrl key commands that override otherwise common operations, like ctrl+c",
"default": true
},
"vim.leader": {
"type": "string",
"description": "What key should <leader> map to in remappings?",
"default": "\\"
},
"vim.searchHighlightColor": {
"type": "string",
"description": "Color of the search highlight.",
"default": "rgba(150, 150, 255, 0.3)"
},
"vim.useSystemClipboard": {
"type": "boolean",
"description": "Use system clipboard for unnamed register.",
"default": false
},
"vim.overrideCopy": {
"type": "boolean",
"description": "Override VSCode's copy command with our own copy command, which works better with VSCodeVim. Turn this off if copying is not working.",
"default": true
},
"vim.insertModeKeyBindings": {
"type": "array",
"description": "Remapped keys in insert mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.insertModeKeyBindingsNonRecursive": {
"type": "array",
"description": "Non-recursive keybinding overrides to use for insert mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.visualModeKeyBindings": {
"type": "array",
"description": "Remapped keys in visual mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.visualModeKeyBindingsNonRecursive": {
"type": "array",
"description": "Non-recursive keybinding overrides to use for visual mode. Allows mapping to vim commands or vscode actions. See README for more."
},
"vim.textwidth": {
"type": "number",
"description": "Width to word-wrap to when using gq.",
"default": 80
},
"vim.timeout": {
"type": "number",
"description": "Timeout in milliseconds for remapped commands",
"default": 1000
},
"vim.scroll": {
"type": "number",
"description": "Number of lines to scroll with CTRL-U and CTRL-D commands.",
"default": 20
},
"vim.showcmd": {
"type": "boolean",
"description": "Show the text of any command you are in the middle of writing.",
"default": true
},
"vim.showmodename": {
"type": "boolean",
"description": "Show the name of the current mode in the statusbar.",
"default": true
},
"vim.iskeyword": {
"type": "string",
"description": "keywords contain alphanumeric characters and '_'",
"default": "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-"
},
"vim.ignorecase": {
"type": "boolean",
"description": "Ignore case in search patterns.",
"default": true
},
"vim.smartcase": {
"type": "boolean",
"description": "Override the 'ignorecase' option if the search pattern contains upper case characters.",
"default": true
},
"vim.easymotion": {
"type": "boolean",
"description": "Enable the EasyMotion plugin for Vim.",
"default": false
},
"vim.easymotionMarkerBackgroundColor": {
"type": "string",
"description": "Set a custom background color for EasyMotion markers."
},
"vim.easymotionMarkerForegroundColorOneChar": {
"type": "string",
"description": "Set a custom color for the text on one character long markers."
},
"vim.easymotionMarkerForegroundColorTwoChar": {
"type": "string",
"description": "Set a custom color for the text on two character long markers."
},
"vim.easymotionMarkerWidthPerChar": {
"type": "number",
"description": "Set the width (in pixels) allocated to each character in the match.",
"default": 8
},
"vim.easymotionMarkerHeight": {
"type": "number",
"description": "Set the height of the marker.",
"default": 14
},
"vim.easymotionMarkerFontFamily": {
"type": "string",
"description": "Set the font family of the marker text.",
"default": "Consolas"
},
"vim.easymotionMarkerFontSize": {
"type": "string",
"description": "Set the font size of the marker text.",
"default": "14"
},
"vim.easymotionMarkerFontWeight": {
"type": "string",
"description": "Set the font weight of the marker text.",
"default": "normal"
},
"vim.easymotionMarkerYOffset": {
"type": "number",
"description": "Set the Y offset of the marker text (the distance from the top).",
"default": 0
},
"vim.easymotionKeys": {
"type": "string",
"description": "Set the characters used for jump marker name",
"default": "hklyuiopnm,qwertzxcvbasdgjf;"
},
"vim.easymotionJumpToAnywhereRegex": {
"type": "string",
"description": "Regex matches for JumpToAnywhere motion",
"default": "\\b[A-Za-z0-9]|[A-Za-z0-9]\\b|_.|#.|[a-z][A-Z]"
},
"vim.sneak": {
"type": "boolean",
"description": "Enable the Sneak plugin for Vim.",
"default": false
},
"vim.sneakUseIgnorecaseAndSmartcase": {
"type": "boolean",
"description": "Case sensitivity is determined by 'ignorecase' and 'smartcase'",
"default": false
},
"vim.surround": {
"type": "boolean",
"description": "Enable the Surround plugin for Vim.",
"default": true
},
"vim.hlsearch": {
"type": "boolean",
"description": "Show all matches of the most recent search pattern",
"default": false
},
"vim.incsearch": {
"type": "boolean",
"description": "Show where a / search matches as you type it.",
"default": true
},
"vim.history": {
"type": "number",
"description": "How much search or command history should be remembered",
"default": 50
},
"vim.autoindent": {
"type": "boolean",
"description": "Indent code automatically.",
"default": true
},
"vim.startInInsertMode": {
"type": "boolean",
"description": "Start in Insert Mode."
},
"vim.handleKeys": {
"type": "object",
"description": "Option to delegate certain key combinations back to VSCode to be handled natively",
"default": {
"<C-d>": true
}
},
"vim.statusBarColorControl": {
"type": "boolean",
"description": "Allow VSCodeVim to change status bar color based on mode",
"default": false
},
"vim.statusBarColors.normal": {
"type": "string",
"description": "Status bar color when in Normal mode",
"default": "#005f5f"
},
"vim.statusBarColors.insert": {
"type": "string",
"description": "Status bar color when in Insert mode",
"default": "#5f0000"
},
"vim.statusBarColors.visual": {
"type": "string",
"description": "Status bar color when in Visual mode",
"default": "#5f00af"
},
"vim.statusBarColors.visualline": {
"type": "string",
"description": "Status bar color when in VisualLine mode",
"default": "#005f5f"
},
"vim.statusBarColors.visualblock": {
"type": "string",
"description": "Status bar color when in VisualBlock mode",
"default": "#86592d"
},
"vim.statusBarColors.replace": {
"type": "string",
"description": "Status bar color when in Replace mode",
"default": "#00000"
},
"vim.visualstar": {
"type": "boolean",
"description": "In visual mode, start a search with * or # using the current selection",
"default": false
},
"vim.changeWordIncludesWhitespace": {
"type": "boolean",
"description": "Includes trailing whitespace when changing word",
"default": false
},
"vim.foldfix": {
"type": "boolean",
"description": "Uses a hack to move around folds properly",
"default": false
},
"vim.mouseSelectionGoesIntoVisualMode": {
"type": "boolean",
"description": "Does dragging with the mouse put you into visual mode",
"default": true
},
"vim.disableExtension": {
"type": "boolean",
"description": "Disables the VSCodeVim extension.",
"default": false
},
"vim.enableNeovim": {
"type": "boolean",
"description": "Use neovim on backend. (only works for Ex commands right now). You should restart VScode after enable/disabling this for the changes to take effect. NOTE: Neovim must be installed (v0.2.0) and neovimPath must be set the executable in order for this setting to work. Otherwise, vscodevim will crash.",
"default": false
},
"vim.neovimPath": {
"type": "string",
"description": "Path to run neovim executable. For example, /usr/bin/nvim, or C:\\Program Files\\Neovim\\bin\\nvim.exe",
"default": "nvim"
},
"vim.substituteGlobalFlag": {
"type": "boolean",
"description": "Automatically apply the global flag, /g, to substitute commands. When set to true, use /g to mean only first match should be replaced.",
"default": false
},
"vim.cursorStylePerMode.normal": {
"type": "string",
"description": "Cursor style for Normal mode"
},
"vim.cursorStylePerMode.insert": {
"type": "string",
"description": "Cursor style for Insert mode"
},
"vim.cursorStylePerMode.replace": {
"type": "string",
"description": "Cursor style for Replace mode"
},
"vim.cursorStylePerMode.visual": {
"type": "string",
"description": "Cursor style for Visual mode"
},
"vim.cursorStylePerMode.visualline": {
"type": "string",
"description": "Cursor style for VisualLine mode"
},
"vim.cursorStylePerMode.visualblock": {
"type": "string",
"description": "Cursor style for VisualBlock mode"
},
"vim.autoSwitchInputMethod.enable": {
"type": "boolean",
"description": "Switch input method automatically when mode changed",
"default": false
},
"vim.autoSwitchInputMethod.defaultIM": {
"type": "string",
"description": "The input method for your normal mode, find more information here:https://github.com/VSCodeVim/Vim#use-im-select",
"default": ""
},
"vim.autoSwitchInputMethod.switchIMCmd": {
"type": "string",
"description": "The shell command to switch input method",
"default": "/path/to/im-select {im}"
},
"vim.autoSwitchInputMethod.obtainIMCmd": {
"type": "string",
"description": "The shell command to get current input method",
"default": "/path/to/im-select"
},
"vim.whichwrap": {
"type": "string",
"description": "Comma-separated list of motion keys that should wrap to next/previous line.",
"default": ""
}
}
}
},
"scripts": {
"vscode:prepublish": "gulp build",
"build": "gulp build",
"test": "node ./node_modules/vscode/bin/test",
"forceprettier": "gulp forceprettier",
"postinstall": "node ./node_modules/vscode/bin/install"
},
"dependencies": {
"appdirectory": "0.1.0",
"clipboardy": "1.2.3",
"diff-match-patch": "1.0.4",
"lodash": "4.17.11",
"mkdirp": "0.5.1",
"neovim-client": "2.1.0",
"promised-neovim-client": "2.0.2",
"untildify": "3.0.3",
"winston": "3.1.0",
"winston-console-for-electron": "0.0.3"
},
"devDependencies": {
"@types/clipboardy": "1.1.0",
"@types/copy-paste": "1.1.30",
"@types/diff": "3.5.1",
"@types/diff-match-patch": "1.0.32",
"@types/lodash": "4.14.117",
"@types/mocha": "5.2.5",
"@types/node": "9.6.35",
"@types/sinon": "5.0.5",
"gulp": "4.0.0",
"gulp-bump": "3.1.1",
"gulp-git": "2.8.0",
"gulp-sourcemaps": "2.6.4",
"gulp-tag-version": "1.3.1",
"gulp-tslint": "8.1.3",
"gulp-typescript": "4.0.2",
"minimist": "1.2.0",
"mocha": "5.2.0",
"plugin-error": "1.0.1",
"prettier": "1.14.3",
"sinon": "7.0.0",
"tslint": "5.11.0",
"typescript": "3.1.3",
"vscode": "1.1.21"
}
}