• This repository has been archived on 09/Feb/2021
  • Stars
    star
    214
  • Rank 183,611 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

vim emulator for Visual Studio Code

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!

More Repositories

1

flyingwhale

This makes a container as a command line tool from many package management systems. (Apache License)
Go
38
star
2

vscode-monokaicharcoal

monokai Charcoal with High Contrast frame
Vim Script
33
star
3

m5dial-trackpad

C++
26
star
4

xonsh-direnv

xonsh extension for using direnv
Python
24
star
5

vscode-book-typescript

Visual Studio Code 実践ガイド 2.10章 TypeScriptでの開発 サンプルコード
TypeScript
15
star
6

sparrow62-buildguide

DIY Keyboard Kit Sparrow62 Build Guide
HTML
12
star
7

stickpoint-firmware

Pointer module with joystick (PIM447 Compatible)
C
11
star
8

rp2040-dev-board

C++
11
star
9

vscode-typescript-handson

TypeScript
10
star
10

vscode-scrollkey

key shortcuts for scrolling the lines of preference (VSCode extension)
TypeScript
8
star
11

kicad-highcontrast-monokai-theme

KiCad High Contrast Monokai like color
Python
6
star
12

ch32v-dev-boards

6
star
13

dotfiles

74thのdotfiles
Shell
6
star
14

docker-redmine-all-in-one

dockernize redmine include some plugins
Dockerfile
6
star
15

workflow-permission-action

JavaScript
5
star
16

x32promicro

x32micro - STM32F103CxT6, CH32V203C8T6 ProMicro size board
5
star
17

m5-trackpad-module

M5Stack Device as Trackpad Module
C++
5
star
18

vscode-snippets-with-yaml

Editing user snippets with yaml
TypeScript
4
star
19

74th-kicad-parts

74thが使うKiCad Parts
4
star
20

dive9-buildguide

音楽ゲームコントローラ Dive 9 ビルドガイド
3
star
21

vscode-book-line-length-linter

Visual Studio Code 実践ガイド 第3部 リント サンプルコード
TypeScript
3
star
22

sparrow62-kmk

Python
3
star
23

reset-bootsel-via-serial-tool

Tool to boot RP2040(Raspberry Pi Pico) in BOOTSEL mode via USB
Go
3
star
24

mini-wch-linke

3
star
25

nginx-tcp-proxy

Dockerfile
2
star
26

ch32v003-uart-programmer

Go
2
star
27

ch32v203-daplink-pcb

DAPLink PCB (CH32V203)
2
star
28

vscode-book-r2-python

Python
2
star
29

usb-spec

2
star
30

sparrow24-ble-calculator-firmware

Sparrow24 BLE Calculator Firmware
C++
2
star
31

esp32c3-iot-server-board

Board for converting Grove device to IoT Server using ESP32-C3-WROOM-02.
2
star
32

techbook-builder

HTML
1
star
33

dockervolumebackup

docker volume backup
Shell
1
star
34

tensorflow-build-mac-nvidiagpu

Shell
1
star
35

tv-side-keyboard-SparrowTV

TV Side Keyboard SparrowTV
C
1
star
36

mcu-pin-check-firmware

C
1
star
37

remote-vscode-cmd

Calling client VS Code from remote host.
Go
1
star
38

adventcalendar2017-go3-4

Advent Calender Go3 12/4の記事のコード GOとCのポインタ渡し
C
1
star
39

vscode-book-markdown-goplay

Visual Studio Code 実践ガイド 第3.14章 テキストを編集する拡張機能の開発
TypeScript
1
star
40

usb-pd-exporter

Adapter to extract 5, 9, 12, and 20V power using CH214K, a USB PD Sink controller.
1
star
41

esp32-dev-boards

ESP32 Dev Boards PCB
Python
1
star
42

usb-rebooter

C
1
star
43

systemd-docker-registry

docker registry systemd
Shell
1
star
44

sparrow24-ble-calculator-buildguide

Sparrow62 BLE Calculator ビルドガイド
1
star
45

74th

https://github.com/74th
1
star
46

vscode-update-news

1
star
47

vscode-json-yaml-schema-selector

Selecting JSON/YAML schema easier (VS Code Extension)
TypeScript
1
star
48

try-rust-esp32c3-network

ESP32-C3 を Rust を使って HTTP GETやPOSTのテスト
Rust
1
star
49

qmk_firmware_sparrow_keyboard

Sparrow keyboard series QMK Firmware fork
C
1
star
50

vscode-book-r2-webview-extension

TypeScript
1
star
51

relay-switch-usbhub

Relay Switch USB 2.0 Hub
C
1
star
52

esp32-air-quality-monitor

空気品質モニター Air Quality Monitor
Python
1
star
53

test-preemptive-instance-signal

Go
1
star
54

dockervolumerestore

Docker volume restore
Shell
1
star
55

vscode-naturalcontrast-with-hc

NaturalContrast with HighContrastFrame theme for VSCode
Makefile
1
star
56

vscode-book-python

Visual Studio Code 実践ガイド 第2.12章 サンプルコード
Jupyter Notebook
1
star
57

analog-cpu-meter

ESP32-C3 で PC の CPU 使用率を、アナログ電圧計で表示する
C++
1
star
58

esp32c3-iot-server-firmware

C++
1
star
59

try-az1uball

Python
1
star
60

github-actions-self-hosted-runner-container

Python
1
star
61

jenkins-dotnet

jenkins docker image for building dotnet projects
Shell
1
star