var PLUGIN_INFO = localkeymode assign temporary keymap 一時的なキーマップの割り当て 0.2.1c pekepeke 2.0pre 2.0pre http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/localkeymode.js || let g:localkeymode_enable = "true" javascript <?', {noremap:true}], ['q', 'd', {noremap:true}], ], ]; EOM ||< Url_RegExp: 設定を有効にしたいURL(正規表現での指定) key: 割り当てたいキー名(Arrayで複数指定可能) command/function: キーに割り当てたいコマンド/メソッド。 コマンドは ':hoge' のように先頭に':'を付加してください。 extra: noremap, count 等の指定。addUserMap にて使用されます。 ]]> ; liberator.plugins.LocalKeyMode = (function() { // アイコン定義 const DISABLE_ICON = 'data:image/png;base64,' +'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAZ0lEQVR4nGNcvXo1AymAiSTV' +'WDSEhISEhITg0cDy+PFjTFGsgmQ6ieXz58+YolgFybXh06dPmKJYBcm1gY+PD1MUqyC5NvDy' +'8mKKYhWEasAqWlhYiCbS398PYTDOmTOHJCdRnPgIAgBfBxpKyax43AAAAABJRU5ErkJg' +'gg=='; const ENABLE_ICON = 'data:image/png;base64,' +'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAa0lEQVR4nGP0+OzAQApgIkk1Fg3b' +'efZv59mPRwMjwycU/n/e/wwMDIyfGanmJBaG16gCvAwMDAzogpTZ8AJVQImBgYEBXZAyGySwCWMV' +'JNcGUWzCWAWhGrABSPQhA3hUMvo9Js1JFCc+ggAAYtsQ+fmaz5UAAAAASUVORK5CYII='; const BINDING_ICON = 'data:image/png;base64,' + 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAVElEQVR4nGP8v5eBJMBEmnIs' + 'Gpz+Mzj9x6OBheEZNmGsguQ5iYXhHjZhrILk2vAVmzBWQXJt4MYmjFWQXBuUsAljFYRqwApi' + 'MCJ7CSOEZqR/4iMEAOh5DfER9lQKAAAAAElFTkSuQmCC'; const rhsRegExp = /[ \r\n]+/g; var _isEnable; var _isBindLocalKey = false; var _enableTabs = []; var _names; var feedKeys = liberator.modules ? liberator.modules.events.feedkeys : liberator.events.feedkeys; // utility function function cloneMap(org, key) { return new Map( org.modes, key || org.names, org.description, org.action, {flags:org.flags, rhs:org.rhs, noremap:org.noremap } ); } var Class = function() function() {this.initialize.apply(this, arguments);}; var LocalKeyMode = new Class(); LocalKeyMode.prototype = { // 初期化メソッド initialize: function() { this.storekeymaps = []; //キー待避用(戻し) this.delkeychars = []; //キー待避用(削除) this.keymapnames = []; // 対応URI保持 this.localkeymaps = []; // キーマップ保持用 this.completeNames; // 補完用 this.tabinfo = []; // タブごとの状態保持用 this.helpstring = ''; var global = liberator.globalVariables; this.panel = this.setupStatusBar(); this.isEnable = global.localkeymode_enable != undefined ? window.eval(global.localkeymode_enable) : false; this.setupEnvironment(); this.initLocalKeyMap(); }, // ステータスバーにアイコンを生成 setupStatusBar: function() { var self = this; var panel = document.getElementById('localkeymode-status'); if (panel) { let parent = panel.parentNode; parent.removeChild(panel); } panel = document.createElement('statusbarpanel'); panel.setAttribute('id', 'localkeymode-status'); panel.setAttribute('class', 's
// Vimperator plugin: uaSwitch
// Maintainer: mattn <mattn.jp@gmail.com> - http://mattn.kaoriya.net
// Require: User Agent Switcher - https://addons.mozilla.org/firefox/addon/59
// Usage:
//   :ua MyUserAgent     - set user agent named MyUserAgent.
//   :ua Default         - reset user agent to default.
//   :ua!                - open user agent switcher setting dialog.
//   :ua                 - show current user agent.

(function() {
	if (typeof useragentswitcher_reset != 'function') return;

	// activate user agent siwtcher
	useragentswitcher_displayUserAgentSwitcherMenu(document.getElementById('useragentswitcher-popup-menu'), 'menu');

	// return user agent list
	function getItems()
		Array.map(document.getElementById('useragentswitcher-menu')
		                  .getElementsByAttribute('type', 'radio'),
		          function(n) {
			return {
				label : n.getAttribute('label'),
				oncommand : n.getAttribute('oncommand'),
				checked : n.getAttribute('checked')
			}
		});

	// register Vimperator command
	liberator.modules.commands.addUserCommand(['ua'], 'Switch User Agent', function(args){
    if (args.bang) useragentswitcher_options();
		else if (!arg.string) liberator.echo('UserAgent: ' + getItems().filter(function(n) n.checked)[0].label);
		else window.eval(getItems().filter(function(n) n.label == arg.string)[0].oncommand);
	}, {
        bang: true,
		completer: function(filter)
			[0, getItems().map(function(n) [n.label, n.label])]
	});
})();
efined ? args : args.string); if (!arg) { liberator.echo(self.helpstring); return; } self.releaseClosedTabCache(); self.deleteCurrentTabCache(); var tabId = getBrowser().selectedTab.linkedPanel; var names = self.completeNames; for (let i=0, l=names.length; i