Skip to content

itsjoesullivan/js-vim-command

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#Vim Command Parser

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

[count][operator][count][motion]

As defined in vim docs

##Usage

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

##Format

Input: command string

parser.parse('c3fa')

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(count, motion) {
		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
});

##TODO:

  • Registers

About

Parse vim commands

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published