Tk-TextVi
view release on metacpan or search on metacpan
lib/Tk/TextVi.pm view on Meta::CPAN
package Tk::TextVi;
use strict;
use warnings;
our $VERSION = '0.015';
#use Data::Dump qw|dump|;
use Tk;
use Tk::TextUndo ();
use base qw'Tk::Derived Tk::TextUndo';
use Carp qw'carp croak';
Construct Tk::Widget 'TextVi';
# Constants for keys that Tk treats special
sub BKSP () { "\cH" }
sub TAB () { "\cI" }
sub ESC () { "\c[" }
# Constants used for exceptions
sub X_NO_KEYS () { "VI_NO_KEYS\n" }
sub X_BAD_STATE () { "VI_BAD_STATE\n" }
sub X_NO_MOTION () { "VI_NO_MOTION\n" }
# Constants used for flags
sub F_STAT () { 1 }
sub F_MSG () { 2 }
sub F_ERR () { 4 }
# Indentifier-legal names for special characters
my %names = (
'<' => '_lt',
'>' => '_gt',
);
my %settings = (
# name => [ value, default, type ]
# name => \'longname'
'softtabstop' => [ 4, 4, 'int' ],
'sts' => \'softtabstop',
);
# Default command mappings and what file holds their test data
my %map = (
n => {
a => \&vi_n_a, # 30-insert
b => \'B',
d => \&vi_n_d, # 20-delete
e => \'E',
f => \&vi_n_f, # 13-findchar
g => {
a => \&vi_n_ga, # 60-info
g => \&vi_n_gg, # 10-move
},
h => \&vi_n_h, # 10-move
i => \&vi_n_i, # 30-insert
j => \&vi_n_j, # 10-move
k => \&vi_n_k, # 10-move
l => \&vi_n_l, # 10-move
m => \&vi_n_m, # 11-mark
n => \&vi_n_n, # 15-search
o => \&vi_n_o, # 30-insert
p => \&vi_n_p, # 40-register
q => \&vi_n_q, # 41-macro
r => \&vi_n_r, # 21-replace
t => \&vi_n_t, # 13-findchar
u => \&vi_n_u,
v => \&vi_n_v, # 32-vchar
( run in 0.530 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )