Ctrl + c で選択範囲のコピーと読み込みの中断

iframe対応<C-c>でコピーとロードの中止 - vimpな日々 - vimperatorグループに改良バージョンを載せたので、そちらを参照のこと。

vimperator 0.5.3用に書き直しました
0.6pre用のも書いてみました(まだ開発版なのでまた変わるかもしれません
vimperatorのデフォルトはctrl + cはページ読み込みの中断で、Yが選択範囲のコピーとなっている。無闇に、map <C-c> Yで上書きすると読み込みの中断ができなくなる。((EXモードで:stopという方法もあるが...面倒だ))

選択範囲の有無で動作を切り分けた方が良いのではないかと思って作ってみた。

バージョン 0.5.3用

vimperator.mappings.add(new vimperator.Map(vimperator.modes.NORMAL,
    ['<C-c>'],
    function() {
        var sel = window.content.document.getSelection();
        if (sel) {
            vimperator.copyToClipboard(sel);
            vimperator.echo('Yanked: '+sel);
        } else {
            BrowserStop();
            vimperator.echo('Stopped loading !');
        }
    },{
        shortHelp: 'Copy selected text or ',
        help: 'The currently selected text is copied to the system clipboard.<br/>' +
              'If selected text is none, stops loading the current web page.'
    }
));

バージョン 0.6pre用

vimperator.mappings.add(new vimperator.Map(
    [vimperator.modes.NORMAL,vimperator.modes.VISUAL],
    ['<C-c>'],
    function() {
        var sel = window.content.document.getSelection();
        if (sel) {
            vimperator.copyToClipboard(sel, true);
        } else {
            BrowserStop();
            vimperator.echo('Stopped loading !');
        }
    },{
        shortHelp: 'Copy selected text or ',
        help: 'The currently selected text is copied to the system clipboard.<br/>' +
              'If selected text is none, stops loading the current web page.'
    }
));

バージョン 1.2 or 2.0pre用

javascript <<EOF
mappings.addUserMap([modes.NORMAL,modes.VISUAL],['<C-c>'], 'Copy selected text or stop loading',
  function(){
    var sel = window.content.window.getSelection().toString();
    if (sel){
      util.copyToClipboard(sel,true);
    } else {
      BrowserStop();
      liberator.echo('Stopped loading !');
    }
  },{
    rhs: 'Copy selected text or stop loading'
  }
);
EOF