Skip to content
This repository has been archived by the owner on Feb 9, 2021. It is now read-only.

74th/vscode-vim

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

There are no plans to update this project.

I recommend using Neo Vim Extension.

Vim emulator for VSCode

vimanimetion

Build Status Version Installs Rating

Require

  • v0.3 : Visual Studio Code 1.0.0

Features

vimanimetion

  • support repeat command

vimanimetion

Installation

ext install vimStyle

Supported vim commands

  • h j k l 0 $ ^ w W b B e E { } [{ ]} tx fx Tx Fx ; , gg G

  • Nh Nj Nk Nl Nw NW Nb NB Ne NE N{ N} N[{ N]} Ntx Nfx NTx NFx N; N, NG

  • i a s o x r I A S O X gr J

  • Nx Nr Ngr

  • d y c dd yy cc D C p P d$ y$ c$ ...

  • Ndd Nyy Ncc

  • ci[ ca[ ci" ca"

  • Nci[ Nca[

  • v V v..d v..c v..y v..r v..j

  • .

  • quickref function list is here.

  • If you need Ctrl-D and Ctrl-U for scrolling, you can use additional scroll key entention.

Support to call VSCode commands from vim keybind

  • u : / n N > < %

But they do not behave exactly as vim command, and their supports may be changed.

Settings

If you needs optional settings, please copy belong json and paste to your settings.json.

// Show mode in status bar (default: true)
"vimStyle.showMode": false,
// changing cursor by mode (default: true)
"vimStyle.changeCursorStyle": false,
// motion with jkl;(default: false)
"vimStyle.useErgonomicKeyForMotion": true,
// default mode (default: "normal")
"vimStyle.defaultMode": "insert",
// disable without to uninstall (default: "true")
"vimStyle.enabled": "false",
// keys go to normal mode from insert mode (default: "" disable)
"vimStyle.imapEsc": "jj",
// some vimrc like settings
"vimStyle.vimrc": [
	"nmap Y y$", //
	"nnoremapmap Y y$", //
]

If you would like to use ctrl+[ instead of escape, please add blong setting to your keybindings.json.

{
	"key": "ctrl+[",
	"command": "vim.Esc",
	"when": "editorTextFocus"
}

If you would like more vim flavor, you can use vim.inNormalMode, vim.inInsertMode and vim.inVisualMode to your keyboard shortcuts. For example,

// in insert mode
{
	// Ctrl-h : BackSpace
	"key": "ctrl+h", "command": "deleteLeft",
	"when": "editorTextFocus && vim.inInsertMode"
},
{
	// Ctrl-w : delete word
	"key": "ctrl+w", "command": "deleteWordLeft",
	"when": "editorTextFocus && vim.inInsertMode"
},
// in visual mode
{
	// arrow up
	"key": "up", "command": "vim.type-<Up>",
	"when": "editorTextFocus && vim.inVisualMode"
},
{
	// arrow down
	"key": "down", "command": "vim.type-<Down>",
	"when": "editorTextFocus && vim.inVisualMode"
},
{
	// arrow right
	"key": "right", "command": "vim.type-<Right>",
	"when": "editorTextFocus && vim.inVisualMode"
},
{
	// arrow left
	"key": "left", "command": "vim.type-<Left>",
	"when": "editorTextFocus && vim.inVisualMode"
},

Support vimrc settings

  • nmap Y y$
  • nnoremap Y y$

Will never be supported

  • Ctrl-x Cmd-x Alt-x Meta-x

VimStyle Loadmap

the vim emulator written type script

  • basic vim keybinds
  • fix word motion bugs
  • user keybindings ( nmap )
  • user keybindings ( call vscode function )
  • text object ( diw, di{ ... )
  • resister
  • vim style plugin for chrome browser
  • complete quickref list

License

MIT License

Contributing

function list

git clone https://github.com/74th/vscode-vim.git ~/.vscode/extensions/vscode-vim
cd ~/.vscode/extensions/vscode-vim
npm install
npm run-script build

Updates

0.5.7

  • fix insert mode

0.5.5

0.5.4

  • fix multi select problem #64 #69

0.5.3

  • #57 support arrow keys in visual mode(need add keybindings)

0.5.2

  • fix #65

0.5.1

  • support J v..J V..J

0.5.0

  • support ci[ ci{ ci( ci< ca[ ca{ ca( ca<
  • support ci' ci" ci ca' ca" ca
  • treat _ as alphabet

0.4.7

  • fix visual mode moves

0.4.6

  • revert 0.4.2

0.4.5

  • some bugfix

0.4.2

  • support [(,[{,]),]}

0.4.1

  • support {,}

0.4.0

  • support nmap nnoremap (use like vimrc setting)

0.3.13

  • support vim mode contexts for keyboard shortcuts #45
  • fix word motion bugs #38

0.3.12

  • support imap ESC keybinding
  • support enable setting

0.3.11

0.3.10

0.3.9

0.3.6

  • support r gr v..r
  • fix visual mode move bug

0.3.5

  • support VSCode commands from vim keybindings %
  • fix some bug

0.3.4

  • support VSCode commands from vim keybindings : / n N > <

0.3.3

  • support ^
  • change icon

icon

0.3.2

  • update for vscode 1.0.0
  • support repeat command
  • support visual line mode
  • support tab size

0.2.4

  • support W B e E

0.2.3

  • support useErgonomicKeyForMotion option : move a cursur by jkl;
  • support visual mode

0.2.2

  • fix #21 CR+LF bug

0.2.1

  • update README

0.2.0

  • more friendly with VSCode functions
  • show block sursor
  • bug fix : dfx dFx dtx dTx
  • append indents by o O

0.1.8

  • JISキーボード向けオプション(support Win and Mac Jis keyboard option)
  • show suggestion by only alpabet and .
  • fix some bugs

0.1.7

  • gg G

0.1.1

pre release!