Vim command parser

#Vim Command Parser

Vim's commands are powerful. This library is meant to parse those that fit a general syntax of:


As defined in vim docs


var Parser = require('vim-command-parser'), parser = new Parser();


Input: command string


Output: object

    description: '{operator}{count}{motion}',
    value: ['c', 3, 'fa']

Why is this useful? Imagine implementing the actual commands like so:

//Define command handlers 
var commands = {
    '{count}{motion}'function(countmotion) {
        while(ct--) this.exec(motion);
//Use the parser to map keystrokes to handlers 
var keyBuffer = '';
vim.on('key', function(key) {
    keyBuffer += key;
    var command = parser.parse(keyBuffer);
    if(command.description in commands) commands[command.description].apply(vim,command.value


  • Registers