GVIM用的多了后,有时会习惯性的按着hjkl,有时看比较长篇的文章时又懒得去动鼠标,所以尝试着写了以下的脚本。需要
Greasemonkey来支持。
// kb_like_vim.user.js
// ==UserScript==
// @name kb_like_vim
// @namespace http://blog.csdn.net/binjo
// @description use "j","k" to scoll up and down, just like gvim.
// @include *
// @exclude http://www.google.com/reader/view/
// ==/UserScript==
( function()
{
window.addEventListener( 'keydown', keyHandler, false );
function keyHandler( event )
{
if ( event.target && event.target.nodeName )
{
var t_nodeName = event.target.nodeName.toLowerCase();
var t_type = event.target.type;
// don't mess up with normal input
if
( t_nodeName == "textarea" ||
( t_nodeName == "input" && t_type && t_type.toLowerCase() == "text" )
)
{
return false;
}
}
// press key "j"
if ( event.keyCode == 74 )
{
scrollBy( 0, 15 );
}
// press key "k"
else if ( event.keyCode == 75 )
{
scrollBy( 0, -15 );
}
else
{
}
}
}
)();
// kb_like_vim.user.js
// ==UserScript==
// @name kb_like_vim
// @namespace http://blog.csdn.net/binjo
// @description use "j","k" to scoll up and down, just like gvim.
// @include *
// @exclude http://www.google.com/reader/view/
// ==/UserScript==
( function()
{
window.addEventListener( 'keydown', keyHandler, false );
function keyHandler( event )
{
if ( event.target && event.target.nodeName )
{
var t_nodeName = event.target.nodeName.toLowerCase();
var t_type = event.target.type;
// don't mess up with normal input
if
( t_nodeName == "textarea" ||
( t_nodeName == "input" && t_type && t_type.toLowerCase() == "text" )
)
{
return false;
}
}
// press key "j"
if ( event.keyCode == 74 )
{
scrollBy( 0, 15 );
}
// press key "k"
else if ( event.keyCode == 75 )
{
scrollBy( 0, -15 );
}
else
{
}
}
}
)();