On Sun, 29 Jan 2012, Clark J. Wang wrote:
On Monday, January 30, 2012 2:24:55 PM UTC+8, Markus Osterhoff wrote:
* Clark J. Wang <[email protected]> [120130 07:01]:
So I wonder if the `jj' mapping can be ignored when doing
copy-n-paste and only work when I'm typing from a keyboard.
:set paste
do your paste
:set nopaste
I knew 'paste' can work that around.
My idea is to introduce a new option, say 'mapwait' which is a number
in milliseconds. For example, if 'mapwait' is set to 100 then two 'j'
chars entered in less than 100ms will not be considered as the `jj'
mapping.
Interesting. I was about to suggest setting 'timeoutlen' to 100. But,
that's the opposite of what you're looking for. (It will wait up to 100
milliseconds for the next keystroke.)
I like the idea of 'mapwait', because it seems like the false-positive
rate could be very low (problems w/ spotty internet?), but the
true-positives that it would catch would be pretty numerous. Maybe set
it much lower, though, around 10ms. I'm an okay typist (60 WPM
according to an online test¹), but testing it via some Perl², my minimum
time between keystrokes was around the 50ms mark.
On the other hand, probably a less error-prone approach would be to
provide (or fix?) support for bracketed paste mode³. It's been
available in XTerm for a long time, and it's also supported by
rxvt-unicode. Unsure of its support in derivatives of either. And it
was disabled by default for a long time (might still be?).
--
Best,
Ben
¹: http://patorjk.com/typing-speed-test/
²: perl -MTerm::ReadKey -MTime::HiRes=time -lwe 'my $stop = "="; print "Type $stop
to exit"; ReadMode 4; END { ReadMode 0 } my @times; while (1) { next unless defined($k =
ReadKey -1); push @times, time; last if $k eq $stop; } print for map { int(1000 *
($times[$_]-$times[$_-1])) } 1..$#times'
³: http://www.xfree86.org/current/ctlseqs.html#Bracketed%20Paste%20Mode
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php