本站不兼容 8 以前的版本的 Interner Explorer 浏览器(或基于这些版本的 IE 的其他浏览器),并且页面样式不完全兼容 IE 8,我们建议你升级至 IE 9 或改用其他非 IE 浏览器

Mozest™

  • 正在加载用户菜单…

开放、分享、互助

本帖最后由 qingxinren 于 2011-6-9 20:29 编辑
以前我也困惑过当用字母做hintkeys的时候Pentadactyl如何过滤hint,看了weide的分析终于明白了。

看到上面的代码里用到,想顺便说一个大家或许没注意到的改变。最新的每夜版里mappings.js里有这么一段:
if (args[1 ...
harnack 发表于 2011-6-8 15:06
那是不是可以做这样的map
<count>g 转到<count>tab?
<count>d 关闭<count>tab?
试了几个写法,都失败了。。。。
本帖最后由 yhmybsy 于 2011-6-9 21:17 编辑
那是不是可以做这样的map
g 转到tab?
d 关闭tab?
试了几个写法,都失败了。。。。
qingxinren 发表于 2011-6-9 20:24
d本来就支持count,不用再map了。

处理g会有些问题,因为已经有些gp,gg这些键,之前可以设置timout来实现,但现在不行了。
比如你按了g之后,如果你有足够长的时间没操作(timeoutlen),这时会执行g,但实际上不会,会直接取消。1.0b6是可以的。

有人报了bug之后,Kris认为不是bug。
本帖最后由 hoolooday 于 2011-6-9 21:07 编辑

通过对yhmybsy兄的readability的插件代码学习.加上更改.
做了一个插件...可以将网页中的繁体字转换成简体了.核心用的同文堂的替换..
用法
Sim[chinese]
--------------------
发现c#学了一点之后,看js的代码容易了好多.
附件: 您所在的用户组无法下载或查看附件
请问现在dict.js脚本支持划词翻译么?在帮助
中没看到啊,似乎是用开始翻译的啊?
wxuyec 发表于 2011-6-9 18:35
还不支持划词,
看今天的代码更改有一点变化.
Add <win> parameter to load autocmds.
这样不就更方便了...
有这么多的插件,喜欢buftab
很喜欢delicious.一直希望可以在dacty下使用delicious.可以实现添加书签(tags也能支持最好),并且可以浏览dilicious书签.
找到了以下两个vimperator的插件.不知道能不能帮忙更改下.
1.htt ...
hoolooday 发表于 2011-6-7 18:04
https://github.com/grassofhust/dotfiles/tree/master/.pentadactyl/archives/

_libly.js
direct_bookmark.js
这两个都要

还不支持从google bookmark(google bookmark的功能好弱,真不敢相信是google 出品)获取tag,没测试那两个日语网站。
  1. :set bm-tag=dp " 从 delicious, 本地Places 获取 tags,用于自动补全
  2. :set bm-post=d " 只提交到 delicious
  3. :sbm " 提交书签
  4. :bentry " 查找当前页
复制代码
浏览还没有下手,原来的脚本里面也没有。
想请教各位,怎样用 js 模拟鼠标指向(悬停)的效果?比如小明牌豆瓣电台的按钮。
yefoenix 发表于 2011-6-9 09:27
https://developer.mozilla.org/samples/domref/dispatchEvent.html
d本来就支持count,不用再map了。

处理g会有些问题,因为已经有些gp,gg这些键,之前可以设置timout来实现,但现在不行了。
比如你按了g之后,如果你有足够长的时间没操作(timeoutlen),这时会执行g,但实际上不会 ...
yhmybsy 发表于 2011-6-9 21:03
刚刚第二个我说错了,应该是<count>d 关闭<count>th tab.
也就是说2d仅仅删除第二个tab,而不是删除两个...

发现可以通过:js tabs.switchTo(String(<count>),false)跳到指定的tab....
本帖最后由 yhmybsy 于 2011-6-10 00:25 编辑
请问各位我如果想当fx关闭的时候关闭某个标签页或者执行一个命令可以么?其实我就是想关闭fx的时候关闭那个1g的标签页。谢谢。
wxuyec 发表于 2011-6-9 17:38
  1. window.addEventListener("close",
  2.     function () {
  3.         let pattern = /1g1g\.com/;
  4.         Array.slice(gBrowser.tabs).forEach(function (aTab) {
  5.             if (pattern.test(aTab.linkedBrowser.currentURI.spec))
  6.                 gBrowser.removeTab(aTab);
  7.         });
  8.     },
  9.     false
  10. );
复制代码
用 pentadactyl 的方式关闭时,好像不起作用。
刚刚第二个我说错了,应该是d 关闭th tab.
也就是说2d仅仅删除第二个tab,而不是删除两个...

发现可以通过:js tabs.switchTo(String(),false)跳到指定的tab....
qingxinren 发表于 2011-6-9 21:34
  1. :nmap -c -ex d tabclose <count>
复制代码
:nmap -c -ex d tabclose
yhmybsy 发表于 2011-6-9 21:49
成功。。
另外一个问题不死心的试了试,还是不行。。。看来悲剧了。。。
谢谢了。。。
本帖最后由 hoolooday 于 2011-6-9 21:56 编辑
https://github.com/grassofhust/dotfiles/tree/master/.pentadactyl/archives/

_libly.js
direct_bookmark.js
这两个都要

还不支持从google bookmark(google bookmark的功能好弱,真不敢相信是google 出品)获 ...
yhmybsy 发表于 2011-6-9 21:27
非常感谢.我觉得最好是把那两个日本的去掉.基本上国人没有人用过
google的书签到现在还是这么烂.不用chrome的一个原因也在这里..
成功。。
另外一个问题不死心的试了试,还是不行。。。看来悲剧了。。。
谢谢了。。。
qingxinren 发表于 2011-6-9 21:51
那个你可以用 1.0b6试一下。
那个你可以用 1.0b6试一下。
yhmybsy 发表于 2011-6-9 21:54
新建了一个配置重新搞,发现1.0b6对5.0b3支持不够好。。各种问题。。。
还是坚持每夜版吧。。。
这个好像是无解,我一般是用[count]b来跳到指定标签页。
听老人说,今生做千件好事,来世方能讨生为猫。
本帖最后由 weide 于 2011-6-9 23:39 编辑
看今天的代码更改有一点变化.
Add <win> parameter to load autocmds.
这样不就更方便了...
hoolooday 发表于 2011-6-9 21:10
这个有什么用?
刚刚第二个我说错了,应该是d 关闭th tab.
也就是说2d仅仅删除第二个tab,而不是删除两个...

发现可以通过:js tabs.switchTo(String(),false)跳到指定的tab....
qingxinren 发表于 2011-6-9 21:34
我这里2d就是关闭2个标签页,还想请问有关闭从当前
标签页起右边所有标签页的命令么?
这个有什么用?
weide 发表于 2011-6-9 23:00
我觉得最大的用处就是将不太好按到的.换成这样的.
但是. 有的系统默认不知道有没有影响,最新nightly还没有加入此功能.
估计明天(应该是今天了)就有了
69# yhmybsy
请问这个东西放在哪里啊?我放在.pentadactylrc
中,不对。
我觉得最大的用处就是将不太好按到的.换成这样的.
但是. 有的系统默认不知道有没有影响,最新nightly还没有加入此功能.
估计明天(应该是今天了)就有了 ...
hoolooday 发表于 2011-6-10 00:07
这个win并不是指win键,而是指:au里增添了参数<win>,:h autocommand-args最后那个就是。
听老人说,今生做千件好事,来世方能讨生为猫。
这个win并不是指win键,而是指:au里增添了参数,:h autocommand-args最后那个就是。
harnack 发表于 2011-6-10 01:09
这个我理解错了.
69# yhmybsy
请问这个东西放在哪里啊?我放在.pentadactylrc
中,不对。
wxuyec 发表于 2011-6-10 00:08
在这样的格式好像才可以
js<<EOF
代码
EOF
我这里2d就是关闭2个标签页,还想请问有关闭从当前
标签页起右边所有标签页的命令么?
wxuyec 发表于 2011-6-10 00:04
好像没直接的命令。

我添加了一个map,e
  1. js <<EOF
  2. function removeTabs(count, arg) {
  3.         let end_pattern = /^[0-9]+$|^(\^|\$)$/;
  4.         if (!end_pattern.test(arg)) {
  5.                 dactyl.echo("Invalid Range", commandline.FORCE_SINGLELINE)
  6.                 return false;
  7.         }
  8.        
  9.         let end = 0;
  10.         if (arg == "$")
  11.                 end = tabs.visibleTabs.length;
  12.         else if (arg == "^")
  13.                 end = -tabs.visibleTabs.length;
  14.         else
  15.                 end = parseInt(arg);

  16.         let start = 0;
  17.         if (typeof count === "object")
  18.                 if (end < start)
  19.                         start = tabs.index(null, true) + 1;
  20.                 else
  21.                         start = tabs.index(null, true);
  22.         else {
  23.                 start = parseInt(count);
  24.                 if (start != 0)
  25.                         start = parseInt(count) - 1;
  26.         }

  27.         let visibleTabs = tabs.visibleTabs;
  28.         let removedTabs = [];
  29.         if (start < end )
  30.                 removedTabs = Array.slice(visibleTabs).slice(start, end);
  31.         else
  32.                 removedTabs = Array.slice(visibleTabs).slice(end, start);
  33.         let removedTabs_length = removedTabs.length;
  34.         removedTabs.forEach(function (aTab) {
  35.                 gBrowser.removeTab(aTab);
  36.         });
  37.         dactyl.echo(removedTabs_length + " tab(s) has been removed!");
  38. }
  39. EOF
  40. nmap -count -arg -javascript e removeTabs(count, arg)

  41. " e$ 删除当前及其右侧所有标签
  42. " e^ 删除当前及其左侧所有标签
  43. " 3e8 从 3 到 8 被删除
复制代码
本帖最后由 weide 于 2011-8-4 10:31 编辑
想请教各位,怎样用 js 模拟鼠标指向(悬停)的效果?比如小明牌豆瓣电台的按钮。
yefoenix 发表于 2011-6-9 09:27
在网页上的悬停,偶尔也会用到,比如本页面的”广场“、”发帖“,鼠标悬停时,会弹出个菜单供选择。一个简单的插件模拟悬停及鼠标移除的操作:hints-mouse-events.js
  1. var INFO =
  2. <plugin name="hints-mouse-events" version="2.0"
  3.         href="https://g.mozest.com/viewthread.php?tid=38908&amp;page=3#pid261071"
  4.         summary="hints mouse events: add hints to trigger mouse over/move/out event"
  5.         xmlns={NS}>
  6.     <info lang="zh-CN" summary="增加鼠标hint模式:触发鼠标移入移出事件"/>
  7.     <author>weide</author>
  8.     <license href="http://opensource.org/licenses/mit-license.php">MIT</license>
  9.     <project name="Pentadactyl" min-version="1.0"/>
  10.     <p lang="en-US">
  11.     Add two extended hint modes:
  12.         <item><spec>;h</spec><description>dispatch mouse over event to popup menu</description></item>
  13.         <item><spec>;r</spec><description>dispatch mouse out  event to remove popup menu</description></item>
  14.         <item><spec>:setmouseout</spec><description>run this command to set the ;h mode's last mouse over elem to mouse out,you may:<example>map so -ex :setmouseout</example></description></item>
  15.         <note>setmousemout is not always work as you like.</note>
  16.     </p>
  17.     <p lang="zh-CN">
  18.     添加两个扩展的hint模式:
  19.         <item><spec>;h</spec><description>触发鼠标移入事件打开弹出对象</description></item>
  20.         <item><spec>;r</spec><description>触发鼠标移出事件关闭弹出对象</description></item>
  21.         <item><spec>:setmouseout</spec><description>执行此命令触发 ;h 模式下鼠标移入对象的移出事件,也可以映射为快捷键执行:<example>map so -ex :setmouseout</example></description></item>
  22.         <note>setmouseout不是每次都能象想象的那么工作</note>
  23.     </p>
  24. </plugin>;

  25. dactyl.modules.hints.getFilter = function getFilter(events){
  26.         return function(elem){
  27.                 var els = Cc["@mozilla.org/eventlistenerservice;1"].getService(Ci.nsIEventListenerService);
  28.                 var infos = els.getListenerInfoFor(elem, {});
  29.                 for(var i=0;i<infos.length;i++){
  30.                         if(events.indexOf(infos[i].type)>=0) {
  31.                                 return true;
  32.                         }
  33.                 };
  34.                 return false;
  35.         }
  36. }

  37. dactyl.modules.hints.dispatchEvents = function dispatchEvent(elem,events){
  38.         events.forEach(function(event){
  39.                 var evt = document.createEvent("MouseEvents");
  40.                 evt.initEvent(event, true, true);
  41.                 elem.dispatchEvent(evt);
  42.         });
  43. }


  44. dactyl.modules.hints.LastMouseOverElem=null;

  45. dactyl.modules.hints.addMode(
  46.         "h" ,
  47.         "Mouse over the hint" ,
  48.         function(elem) {
  49.                 dactyl.modules.hints.dispatchEvents(elem,['mouseover','mousemove']);                                       
  50.                 dactyl.modules.hints.LastMouseOverElem = elem;
  51.         },
  52.         dactyl.modules.hints.getFilter(['mouseover','mousemove']),
  53.         ["*"]
  54. );

  55. dactyl.modules.hints.addMode(
  56.         "r" ,
  57.         "Mouse out the hint",
  58.         function(elem) dactyl.modules.hints.dispatchEvents(elem,['mouseout']),
  59.         dactyl.modules.hints.getFilter(['mouseout']),
  60.         ["*"]
  61. );

  62. group.commands.add(
  63.     ['setmouseout'],
  64.     '',
  65.     function (){
  66.         if(dactyl.modules.hints.LastMouseOverElem)
  67.                         dactyl.modules.hints.dispatchEvents(dactyl.modules.hints.LastMouseOverElem,['mouseout']);
  68.     }
  69. );
复制代码
至于”小明牌豆瓣电台“,这个是扩展吧,没用过。它上面的按钮估计需要根据它的id单独来写了
最新的版的dactyl.用weide上面的hints-more.js报错..
Sourcing file: C:\Users\xxx\pentadactyl\plugins\hint-more.js:1: SyntaxError: illegal character
这个插件,怎么操作才有效果啊?
感谢weide的分享,我试了试在最新的每夜版上没有问题。其实很早就有这样一个issue:
http://code.google.com/p/dactyl/issues/detail?id=118
但Kris一直没来得及处理,没想到在这里找到了解决方案。
听老人说,今生做千件好事,来世方能讨生为猫。
本帖最后由 hoolooday 于 2011-6-10 14:00 编辑
感谢weide的分享,我试了试在最新的每夜版上没有问题。其实很早就有这样一个issue:
http://code.google.com/p/dactyl/issues/detail?id=118
但Kris一直没来得及处理,没想到在这里找到了解决方案。 ...
harnack 发表于 2011-6-10 13:55
好像是文本格式的问题,我保存成utf-8也好了.
很神奇.
操作方法
;h
;r
感谢weide的分享,我试了试在最新的每夜版上没有问题。其实很早就有这样一个issue:
http://code.google.com/p/dactyl/issues/detail?id=118
但Kris一直没来得及处理,没想到在这里找到了解决方案。 ...
harnack 发表于 2011-6-10 13:55
有需求,就完善了一下:
  增加触发onmousemove事件
  只显示带有属性onmouseover/onmousemove/onmouseout的hint

issue里提到的click,貌似f进入hint模式就可以工作的很好呀

另外今天更新了falsh到10.3,pentadactyl更新到最新版,导致操作特别“卡”

:version
Pentadactyl hg6188 "(created 2011/06/10 00:00:07)" running on:
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
83# yhmybsy
谢谢,好用。
在网页上的悬停,偶尔也会用到,比如本页面的”广场“、”发帖“,鼠标悬停时,会弹出个菜单供选择。一个简单的插件模拟悬停及鼠标移除的操作:hints-more.js
var INFO =

   
    weide
    MIT
   
   
    A ...
weide 发表于 2011-6-10 12:20
似乎有个小bug,在本页面使用hint-more脚本时,
头像所弹出的菜单用;r去除不掉。