GUI Options をトグルする Vimperator プラグイン toggleGuiOptions.js
初めての vimperaotr plugin を書いてみました。
guioptions の設定をトグルしてツールバーなどの表示/非表示を切り替えるコマンドです。激しく車輪の再発明な気がしますが、ここはひとつ勉強用ということで。
使い方はこんな感じ。
:toggleGuiOptions mT
とやると、guioptions の m(メニューバー)と T(ツールバー)の表示/非表示をトグルします。
オプションが無指定か 'all' の場合は、全ての guioptions をトグルします。
現時点では以下の3つですね。
- m : メニューバー
- T : ツールバー
- b : ブックマークバー
オプションに toolbox を指定すると、メニューバーやツールバーの親要素の #navigator-toolbox の表示/非表示を切り替えます。
:toggleGuiOptions toolbox
これで Web Developer などの拡張が表示するツールバーなどもまるごと消してくれます。
このアイデアはこちらからいただきました。ありがとうございます。
Piro - 2008-02-10 18:19:02
ツールバーの表示、非表示を切り替えるvimperatorプラグイン - /halt/Snapshot
toolbarの上にあるtoolboxごと消すとか。
_vimperatorrc で guioptions は全部オン、toolbox をオフにしておいて、何かが必要なときだけ toolbox をまるごとトグルしてオン/オフするのが良いかなと思います。
追記
参考に _vimperatorrc を貼っておきます。
"guioptions を全部オンにして toolbox を非表示に set guioptions=mTb js document.getElementById("navigator-toolbox").collapsed = true; "Alt + b を :toggleGuiOptions toolbox にマップ js <<EOM liberator.mappings.addUserMap([liberator.modes.NORMAL], ['<A-b>'], 'Toggle toolbox collapsed', function () { liberator.commands.get("toggleGuiOptions").execute("toolbox"); } ); EOM
ご使用の場合は、以下のスクリプトを $HOME/vimperator/plugins/toggleGuiOptions.js に保存してください。
/** * ==VimperatorPlugin== * @name toggleGuiOptions.js * @description Toggle GUI Options. * @version 0.1 * @date 2008-06-29 * @author teppeis@gmail.com http://d.hatena.ne.jp/teppeis/ * ==/VimperatorPlugin== * * Usage: * :toggleGuiOptions [charlist] * -> Toggle GUI Options in charlist. * ex) :toggleGuiOptions mT * -> Toggled menubar and toolbar. * * :toggleGuiOptions all * -> Toggle ALL available GUI Options. * * :toggleGuiOptions * -> Same to 'all'. * * :toggleGuiOptions toolbox * -> Toggle collapsed of $(navigator-toolbox). * Enable for any toolbar of other extentions. */ (function() { function toggleGuiOptions(key) { if (! liberator.config.guioptions[key]) return false; var guioptions = liberator.options.get("guioptions"); if (guioptions.value.indexOf(key) != -1) { guioptions.value = guioptions.value.replace(key, ""); } else { guioptions.value += key; } return guioptions.value; } function toggleCollapsedById(id) { var elem = document.getElementById(id); if (! elem) return null; if ( ! elem.collapsed || elem.collapsed == false ) { elem.collapsed = true; } else { elem.collapsed = false; } return elem.collapsed; } liberator.commands.addUserCommand(['toggleGuiOptions'], "Toggle GUI Options", function(arg) { var guioptions = liberator.options.get("guioptions"); if (arg == "toolbox") { toggleCollapsedById("navigator-toolbox"); return; } if (arg == "all" || arg == "") { arg = ""; for (var key in liberator.config.guioptions) { arg += key; } } for (var i = 0; i < arg.length; i++) { toggleGuiOptions(arg.charAt(i)); } }, { completer: function(filter) { var options = { all : "All GUI Options", toolbox : "Whole navigator-toolbox", }; for (var key in liberator.config.guioptions) { options[key] = liberator.config.guioptions[key]; } var completion_list = []; var re = new RegExp('^' + filter); for (var key in options) { if (re.test(key)) { completion_list.push([key, options[key]]); } } return [0, completion_list]; } } ); })(); // vim:sw=4 ts=4 et: