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

Mozest™

  • 正在加载用户菜单…

开放、分享、互助

转播到腾讯微博
返回列表 回复 发帖

[交流] Pentadactyl[vimperator分枝]使用心得,期待交流

本帖最后由 hoolooday 于 2011-6-7 18:27 编辑

上一帖不幸的消失.
感谢Eric站长给予的帮助.虽然帖子没有打捞成功,但是,很感动.
幸好还有google在.快照了一页.先帖下快照,还有一些近期个的心得.

Vimperator是神器.同Firebug一样的神器.只是最近更新有点慢了.幸好我们还有
Dactyl.更新快,启动快.功能应该说已经超过了vimperator不少(与最新vimperator比较之后,应该用可能比较好一点).当然,还要感谢Vimperator
的原作者.是他让Firefox更加的Vim化.
想Vim同时还有Keysanil等,曾经给这个作者写过信,可能我英语不好,可能他不在意.反正是没有反应.
VimperatorDactyl的作者交流,却让我感到了国外友人的客气.
算了,费说不说,开始发帖了.
主要是DactylVimperator的不同.
1.请留意Dactyl有一个新的功能g;
Start an extended hint mode and stay there until
<Esc> is pressed. Like ;, except that
after a hint is selected, hints remain visible so that
another one can be selected with the same action as the
first.
似乎是个不错的功能,但是我没有看懂什么意思...
2.Vimperator下的好多的插件在Dactyl下都不能正常使用了.
最多的情况是他会提示一些红色的错误,但是却不影响正常的使用.比如
-smooth.js这个插件.
liberator is deprecated:PLease use dactyl instead
等等.
这个时候,需要修改.附件提供的已经是修改好的了.
3.Dactyl的使用到的一些插件.
        _smooziee.js 可以让页面的滚动更改的平滑,很有爱,有阻尼的感觉.
        walk_input.js 可以让你在文本档跳转,来去自如.默认的按键是<A-i>
        pinyi-hints.js 可以让你在hint
        mode下面使用拼音的简写实现url的选定.感谢国人.
        imageextender.js
        在Dactyl作者的帮助之下,它也可以在Dactyl下面用了.可以快速的查当前页面中的图片,复制其url,甚至于可以将其保存.
        applancher.js 实现调用别的浏览器来查看当前页面.
        More等着你的发现.
4.Dactyl的一些功能.
实现快速的重启,查看下载,查看扩展等
  1. noremap <leader>r :restart<cr>

  2. noremap <leader>a :addons<cr>

  3. noremap <leader>d :downloads<cr>
复制代码
实现页面的编码的快速切换
  1. noremap <leader>es :set encoding=Shift_JIS<CR>

  2. noremap <leader>ec :set encoding=EUC-JP<CR>

  3. noremap <leader>eu :set encoding=UTF-8<CR>

  4. noremap <leader>eg :set encoding=GB2312<CR>
复制代码
实现在页面中快速搜索当前选定词.(google和dict.cn)
  1. command! gs -nargs=* tabopen http://www.google.com.hk/search?9&q=<args>

  2. map s :gs

  3. map <silent> S :exe ":gs "+content.getSelection()<CR>

  4. command! dict -nargs=* tabopen http://dict.cn/<args>

  5. map w :dict

  6. map <silent> W :exe ":dict "+content.getSelection()<CR>
复制代码
实现调用其它浏览器来查看当前页面
  1. map <leader>ie :js io.run("c:\\program files\\internet explorer\\iexplore.exe", [buffer.URL])<CR>
复制代码
实现其它的功能,比如Autoproxy的快速切换代理(不过好像最近的版本本来就可以实现,就不写了)
附件中,插件以上介绍到的都有

dactyl插件介绍:
imageextender
imageextender 是一个可以快速查看当前页面图片的插件.功能如下
';m' to yank image URL
';M' to save image
':downimageall' is also available. This is to download all images of current
page
- ';m'
- ';i' to zoom in image
- ';x' to zoom out image
- ';X' to zoom reset image
- ';z' to zoom fit image
- ';Z' to custom zoom image
要了解到;;模式,才能理解它的妙处
;;模式的一些特殊用法.
; to focus a link
            ;?? to show information about the element (incomplete)
            ;ss to save its destination
            ;aa to save its destination (prompting for save location)
            ;ff to focus a frame
            ;oo to open its location in the current tab
            ;tt to open its location in a new tab
            ;bb to open its location in a new background tab
            ;ww to open its destination in a new window
            ;OO to generate an :open prompt with hint’s URL
            ;TT to generate a :tabopen prompt with hint’s URL (like ;O)
            ;WW to generate a :winopen prompt with hint’s URL (like ;T)
            ;SS to add a search keyword for the hint’s form
            ;vv to view its destination source
            ;VV to view its destination source in the external editor
            ;yy to yank its destination location
            ;YY to yank its text description
            ;cc to open its context menu
            ;ii to open an image
            ;II to open an image in a new tab.
其中最为重要的,就是上面的;c ;ii ;II ;yy等
tuantuan兄的配置文件
分享下我的配置文件:
  1. " Modeline and Notes {
  2. "   vim: set foldmarker={,} foldlevel=0 filetype=vimperator:
  3. "   
  4. "   This is my personal _vimperatorrc, I don't recommend you copy it, just
  5. "   use the pieces you want.
  6. "   Contact me : tuantuan <dangoakachan@gmail.com>
  7. "
  8. "   Last updated: 2010-11-10
  9. " }

  10. " Options {
  11.     " Default
  12.     set runtimepath=C:/Users/Tuantuan/AppData/Roaming/Mozilla/Firefox/Profiles/tuantuan/vimperator

  13.     " For vimperator
  14.     set defsearch=g
  15.     set guioptions=
  16.     set showstatuslinks=2
  17.     set verbose=9
  18.     set focuscontent
  19.     set status=input,tabcount,position
  20.     set maxitems=10
  21.     set editor='D:/Programming/vim/vim73/gvim.exe -f'
  22.     let mapleader=','
  23.     set wildoptions=auto

  24.     " For about:config
  25.     set! ui.key.generalAccesskey=0
  26.     "Next Page and Previous Page
  27.     set nextpattern=\s*下一页|下一张|下一篇|下页|后页\s*,^\bnext\b,\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b
  28.     set previouspattern=\s*上一页|上一张|上一篇|上页|前页\s*,^\bprev|previous\b,\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$
  29. " }

  30. " Qmarks {
  31.     qmark c http://www.cc98.org
  32.     qmark v http://vimfox.info
  33.     qmark t http://dango-akachan.appspot.com
  34.     qmark m http://g.mozest.com
  35. " }

  36. " Maps {
  37.     " Source config file
  38.     map <leader>s :runtime _vimperatorrc<CR>

  39.     " Exchange y and Y
  40.     noremap y Y
  41.     noremap Y y
  42.    
  43.     " Toggle the toolbar
  44.     map <C-Up> :se go+=T<cr>
  45.     map <C-Down> :se go-=T<cr>

  46.     " search by google
  47.     command! google -nargs=* tabopen g <args>
  48.     map s :google
  49.     map S :exe ":google "+content.getSelection()<CR>

  50.     " Map for plugins or scripts
  51.     map <silent> <F2> :js toggle_bar()<CR>
  52.     map <silent> <F3> :js toggle_autoproxy()<CR>
  53.     map <silent> <F1> :js openProfileDirectory()<CR>
  54. " }

  55. " Scripts {
  56. js << EOF
  57.    // Toggle menubar and toolbar
  58.    liberator.globalVariables['tt_gopt'] = 'T';
  59.    toggle_bar = function() {
  60.        toggle_status = liberator.globalVariables['tt_gopt'];
  61.        liberator.globalVariables['tt_gopt'] = (toggle_status==''?'T':'');
  62.        liberator.execute('set guioptions='+toggle_status);
  63.    }

  64.    // Toggle autoproxy
  65.    liberator.globalVariables['tt_autoproxy'] = false;
  66.    toggle_autoproxy = function() {
  67.        toggle_status = liberator.globalVariables['tt_autoproxy'];
  68.        liberator.globalVariables['tt_autoproxy'] = toggle_status = !toggle_status;

  69.        if (toggle_status) {
  70.            liberator.execute('set! extensions.autoproxy.proxyMode='+'auto');
  71.            liberator.execute('echo "Autoproxy Enabled"');
  72.        } else {
  73.            liberator.execute('set! extensions.autoproxy.proxyMode='+'disabled');
  74.            liberator.execute('echo "Autoproxy Disabled"');
  75.        }
  76.    }
  77.    // Enable by default

  78.     function openProfileDirectory() {
  79.       // Get the profile directory.
  80.         var file = Components.classes["@mozilla.org/file/directory_service;1"].  
  81.                  getService(Components.interfaces.nsIProperties).  
  82.                  get("ProfD", Components.interfaces.nsIFile);
  83.         let profileDir = file.path;

  84.         // Show the profile directory.
  85.         let nsLocalFile = Components.Constructor("@mozilla.org/file/local;1","nsILocalFile", "initWithPath");
  86.         new nsLocalFile(profileDir).reveal();
  87.     }
  88. EOF
  89. " }

  90. " Plugins {
  91. " }

  92. " Theme {
  93.     highlight! StatusLine color: black; background:transparent; font-weight:bold;
  94.     highlight! CmdLine color:#d8d8d8; background:#2b2b2b;
  95.     highlight! ModeMsg  color:darkgreen; background: white;font-weight:bold;
  96.     highlight! ErrorMsg font-weight:normal; color:red; background:white;
  97.     hi! Hint font-family: monospace; font-size: 9px; text-transform: uppercase; color: white; background-color: #1E90FF; padding:1px;
  98.     hi! HintElem clear
  99. " }
复制代码
个人看法,因为vimp或者dactyl提供了各种映射,所以打开网站有很多方法,比如:
map key :open www.example.com<cr>
也可以
qmark k www.example.com 弄一个quick mark,然后gnk 或者 gok 打开。
可能还有其它的,但是只要选一种方法就好了,万一键设置的太多,以后又不怎么用到……
本帖最后由 hoolooday 于 2011-6-6 01:06 编辑

今天研究dacty的stylish样式.有一些感受..
  1. sty -n=xxx http://xxx.com/* #ad_wrapper{display:none !important;}table#torrent_table{width: 100% !important;}
复制代码
通过上面可以看到.当我们需要两条规则对于同一网站时.传统的sytlish是这样子的格式.
  1. {
  2. #ad_wrapper{display:none !important;}
  3. #torrent_table{width: 100% !important;}
  4. }
复制代码
而在dactyl的样式中,因为没有最上面一层的大括号.,直接一个样式一个样式写就行了.(感谢harnack兄弟提醒)
--------------------------
另外,还有一个更改样式的方法,就是可以将其放到插件目录下.以xx.css就可以的.这个的写法和stylish是一样的.具体可以再研究下.
本帖最后由 lll9p 于 2012-4-23 12:44 编辑

贴上从这里偷的配置。
2012年4月重新改了下配置,再帖出来~~
  1. "Pentadactyl hg6757 (created 2012/04/19 00:00:07) running on:
  2. "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0
  3. "Configured by lll9p   lll9p.china@gmail.com
  4. "created:2011/07/24 10:44:08 modified:2012/04/19/ 16:00:15
  5. loadplugins '\.(js|penta)

  6. group user
  7. "set设置{{{
  8.     "界面设置,在tab上显示序号{
  9.         set go+=n
  10.     "}
  11.     "dict.js插件设置{
  12.         set dict-langpair=g:'|zh-CN',y:eng
  13.     "}
  14.     "Hint{
  15.     "设置hint为字母模式
  16.         "set hintkeys=asdfg;lkjh
  17.     "中文hints
  18.         :set hintmatching=custom
  19.     "
  20.         :set chinesehints=wubi
  21.     "}
  22.     "防止在最后一个tab的时候按d退出firefox{
  23.         set! browser.tabs.closeWindowWithLastTab=false
  24.     "}
  25.     "tab显示方式{
  26.         "set showtabline=multitab
  27.     "}
  28.     "高亮搜索{
  29.         set hlfind
  30.     "}
  31.     "gmail 和 google reader键设置{
  32.         set passkeys=www\.google\.com/reader/.*:Ajkov,ga,gF,gu
  33.         set passkeys='mail\.google\.com/':c/kjnpouex!ra#[]zN?
  34.     "}
  35.     " ]]/[[转到上一页/下一页{
  36.     "下一页
  37.         set nextpattern^='\s*[下后][一]?[页张个篇章]\s*','››'
  38.     "上一页
  39.         set previouspattern^='\s*[上前][一]?[页张个篇章]\s*','‹‹'
  40.     "}
  41. "}}}
  42. "设置map{{{
  43.     "选中文字用t o打开google搜索,google的关键字设置为g{
  44.     "设置google为默认引擎,否则以下设置工作不正常
  45.         set defsearch=g
  46.         map t -js content.getSelection().toString()!=""?dactyl.execute(":tabopen "+ content.getSelection()):CommandExMode().open("tabopen ")
  47.         map o -js content.getSelection().toString()!=""?dactyl.execute(":open "+ content.getSelection()):CommandExMode().open("open ")
  48.     "结合dict插件翻译选中字符串
  49.         "map -a -ex s dict -e <arg>
  50.     "dict.cn
  51.         map s -js content.getSelection().toString()!=""?dactyl.execute(":dict -e d "+ content.getSelection()):""
  52.     "google翻译
  53.         map sa -js content.getSelection().toString()!=""?dactyl.execute(":dict -e g "+ content.getSelection()):""
  54.     "qq
  55.         map sq -js content.getSelection().toString()!=""?dactyl.execute(":dict -e q "+ content.getSelection()):""
  56.      "有道
  57.         map sw -js content.getSelection().toString()!=""?dactyl.execute(":dict -e y "+ content.getSelection()):""
  58.    "汉典
  59.         map sz -js content.getSelection().toString()!=""?dactyl.execute(":dict! -e z "+ content.getSelection()):""
  60.     "}
  61.     "加快移动{
  62.         map -builtin j 5j
  63.         map -builtin k 5k
  64.     "}
  65.     "标签移动加速{
  66.         map K :tn<CR>
  67.         map J :tp<CR>
  68.     "}
  69.     "F2来显示隐藏工具栏{
  70.         map <F2> -e set go!=T
  71.     "}
  72.     "实现快速的重启,查看下载,查看扩展等{
  73.         "set mapleader=','
  74.         "noremap <leader>a :addons<cr>
  75.         "noremap <leader>d :downloads<cr>
  76.     "}
  77.     "快速改变页面编码{
  78.         map -builtin ,eu :set encoding=UTF-8
  79.         map -builtin ,eg :set encoding=GB2312
  80.     "}
  81.     "搜索选中的字符串,并可选搜索引擎{
  82.         command! -nargs=? -complete=search SearchSelect exe 't <args> ' + content.getSelection()
  83.         map S :SearchSelect<Space>
  84.     "}

  85. "}}}
  86. "自定义命令{{{
  87.     "开启和关闭javascript或图片{
  88.         command! noimg set! permissions.default.image=2
  89.         command! nojs set! javascript.enabled=false
  90.         command! ysimg set! permissions.default.image=1
  91.         command! ysjs set! javascript.enabled=true
  92.     "}
  93.     "网站应用{
  94.         "http://validator.w3.org{{{
  95.             command! valid :open javascript:void(location='http://validator.w3.org/check?uri='+escape(location));
  96.         "}}}
  97.         "http://getfirebug.com/firebuglite{{{
  98.             command! firebug :open javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');
  99.         "}}}
  100.         "http://sr3d.github.com/GithubFinder/{{{
  101.             command! bml-ghfinder -description "Bookmarklet: Open any Github repo in GHFinder" open javascript:%20(function%20()%20{%20var%20a%20=%20(new%20RegExp("github.com/(.+)",%20"i")).exec(window.location.href);%20var%20f%20=%20a%20?%20a[1].split("/")%20:%20[];%20var%20b%20=%20f[0];%20var%20d%20=%20f[1];%20var%20e%20=%20f[3];%20var%20c%20=%20"http://sr3d.github.com/GithubFinder/?utm_source=bml"%20+%20(a%20?%20"&user_id="%20+%20b%20+%20"&repo="%20+%20d%20+%20(e%20?%20"&branch="%20+%20e%20:%20"")%20:%20"");%20if%20(!c)%20{%20alert("Invalid%20Github%20URL");%20return%20}%20window.open(c)%20})();
  102.         "}}}
  103.         "http://www.instapaper.com/u{{{
  104.             command! bml-instapaper -description "Bookmarklet: A simple tool to save web pages for reading later" open javascript:function%20iprl5(){var%20d=document,z=d.createElement('scr'+'ipt'),b=d.body,l=d.location;try{if(!b)throw(0);d.title='(Saving...)%20'+d.title;z.setAttribute('src',l.protocol+'//www.instapaper.com/j/bQ1lnqqYCoKr?u='+encodeURIComponent(l.href)+'&t='+(new%20Date().getTime()));b.appendChild(z);}catch(e){alert('Please%20wait%20until%20the%20page%20has%20loaded.');}}iprl5();void(0);
  105.         "}}}
  106.         "http://page2rss.com/{{{
  107.             command! bml-page2rss -description "Bookmarklet: Turn any page to RSS" open javascript:(function(){if(!window.page2rss_bookmark_urlr)window.page2rss_bookmark_urlr=function(ur){if(ur.error)alert(ur.error);if(ur.page&&ur.page.page)location.href=ur.page.page};var%20r=document.getElementById('urlFormRequest');if(r)r.parentNode.removeChild(r);r=document.createElement('script');r.id='urlFormRequest';r.type='text/javascript';r.src='http://page2rss.com/api/page?url='+encodeURIComponent(location.href)+'&callback=page2rss_bookmark_urlr';document.body.appendChild(r);})();
  108.         "}}}
  109.         "http://www.readability.com/bookmarklets{{{
  110.             command! bml-readability -description "Bookmarklet: Make webpage readable using readability" open javascript:%20((function%20()%20{%20window.baseUrl%20=%20'http://www.readability.com';%20window.readabilityToken%20=%20'';%20var%20s%20=%20document.createElement('script');%20s.setAttribute('type',%20'text/javascript');%20s.setAttribute('charset',%20'UTF-8');%20s.setAttribute('src',%20baseUrl%20+%20'/bookmarklet/read.js');%20document.documentElement.appendChild(s);%20})());
  111.         "}}}
  112.         "http://readable.tastefulwords.com/{{{
  113.             command! bml-readable -description "Bookmarklet: Make webpage readable" open javascript:(function(){_readableOptions={'text_font':'quote(Palatino%20Linotype),%20Palatino,%20quote(Book%20Antigua),%20Georgia,%20serif','text_font_monospace':'quote(Courier%20New),%20Courier,%20monospace','text_font_header':'quote(Times%20New%20Roman),%20Times,%20serif','text_size':'18px','text_line_height':'1.5','box_width':'30em','color_text':'#282828','color_background':'#F5F5F5','color_links':'#0000FF','text_align':'normal','base':'blueprint','custom_css':''};if(document.getElementsByTagName('body').length>0);else{return;}if(window.$readable){if(window.$readable.bookmarkletTimer){return;}}else{window.$readable={};}window.$readable.bookmarkletTimer=true;window.$readable.options=_readableOptions;if(window.$readable.bookmarkletClicked){window.$readable.bookmarkletClicked();return;}_readableScript=document.createElement('script');_readableScript.setAttribute('src','http://readable-static.tastefulwords.com/target.js?rand='+encodeURIComponent(Math.random()));document.getElementsByTagName('body')[0].appendChild(_readableScript);})();
  114.         "}}}
  115.         "http://readitlaterlist.com/add.php{{{
  116.             command! bml-readitlater -description "Bookmarklet: A simple tool to save web pages for reading later" open javascript:%20(function%20()%20{%20ISRIL_H%20=%20'5979';%20ISRIL_SCRIPT%20=%20document.createElement('SCRIPT');%20ISRIL_SCRIPT.type%20=%20'text/javascript';%20ISRIL_SCRIPT.src%20=%20'http://readitlaterlist.com/b/r.js';%20document.getElementsByTagName('head')[0].appendChild(ISRIL_SCRIPT)%20})();
  117.         "}}}
  118.         "http://www.pdfdownload.org/pdf_bookmarklet.html{{{
  119.             command! bml-savepage -description "Bookmarklet: Convert web pages into PDF files" open javascript:void(window.open(%27http://www.web2pdfconvert.com/convert.aspx?cURL=%27+escape(location.href)));
  120.             command! bml-shareit -description "Bookmarklet: Universal sharing" open javascript:void((function(svc)%20{var%20d=document,w=window,p=0,b=function(){if(!p){p=1;if(_atc.xol)_adr.onReady();if(w.addthis_sendto)addthis_sendto(svc||%27bkmore%27,{product:%27bmt-%27+_atc.ver})}else{p=0;if(_atw)_atw.clb()}};if(!w._atc){var%20ol=w.addthis_onload||[],o=d.createElement(%27script%27);w.addthis_product%20=%20%27bmt-250%27;o.src=%27//s7.addthis.com/js/250/addthis_widget.js#domready=1&username=bookmarklet%27;ol.push(b);w.addthis_onload=ol;d.getElementsByTagName(%27body%27)[0].appendChild(o)}else%20b()})());
  121.             command! bml-subscribe -description "Bookmarklet: Subscribe using Google reader" open javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');void(b.appendChild(z));}else{location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)};
  122.         "}}}
  123.         "http://labs.microsofttranslator.com/bookmarklet/{{{
  124.             command! bml-translate -description "Bookmarklet: Translate any page with the simple click" open javascript:(function(){var%20s%20=%20document.createElement('script');%20s.type%20=%20'text/javascript';%20s.src%20=%20'http://labs.microsofttranslator.com/bookmarklet/default.aspx?f=js&to=en';%20document.body.insertBefore(s,%20document.body.firstChild);})();
  125.         "}}}
  126.         "https://dev.twitter.com/docs/share-bookmarklet{{{
  127.             command! bml-twitter -description "Bookmarklet: Share on Twitter" open javascript:(function(){window.twttr=window.twttr||{};var%20D=550,A=450,C=screen.height,B=screen.width,H=Math.round((B/2)-(D/2)),G=0,F=document,E;if(C>A){G=Math.round((C/2)-(A/2))}window.twttr.shareWin=window.open('http://twitter.com/share','','left='+H+',top='+G+',width='+D+',height='+A+',personalbar=0,toolbar=0,scrollbars=1,resizable=1');E=F.createElement('script');E.src='http://platform.twitter.com/bookmarklets/share.js?v=1';F.getElementsByTagName('head')[0].appendChild(E)}());
  128.         "}}}
  129.         "http://chengyinliu.com/whatfont.html{{{
  130.             command! bml-whatfont -description "Bookmarklet: Find out the fonts used in a webpage" open javascript:(function(){var%20d=document,s=d.createElement('scr'+'ipt'),b=d.body,l=d.location;s.setAttribute('src','http://chengyinliu.com/wf.js?o='+encodeURIComponent(l.href)+'&t='+(new%20Date().getTime()));b.appendChild(s)})();
  131.         "}}}
  132.     "}
  133. "}}}
  134. "风格设置{{{
  135.     "命令行模式禁用输入法{
  136.         style -name commandline-ime http://*,https://* input,textarea {ime-mode: active;}
  137.         style -name commandline-ime chrome://* #dactyl-commandline-command input , #dactyl-statusline-field-commandline-command input {ime-mode: inactive;}
  138.         "cmap <A-i> -js styles.user.get("cmd-ime").enabled ^= true; dactyl.focusedElement.blur();
  139.         
  140.     "}
  141.     "显示dict查询状态{
  142.     style chrome://browser/content/browser.xul statuspanel#statusbar-display { display:block; visibility: visible }
  143.     "}
  144.     "加大hint的字号{
  145.         hi Hint font:bold 15px "Droid Sans Mono", monospace !important; margin:-.2ex; padding: 0 0 0 1px; outline:1px solid rgba(0, 0, 0, .5); background:rgba(255, 248, 231, .8); color:black; text-transform:uppercase;
  146.     "}

  147. "}

  148. " Qmarks快速书签设置{
  149.     silent qmark r http://www.renren.com/home#nogo
  150.     silent qmark p https://plus.google.com
  151.     silent qmark t https://twitter.com
  152.     silent qmark f https://facebook.com
  153.     silent qmark d http://www.douban.com
  154. " }}}
  155. " vim: set ft=vim:
复制代码
本帖最后由 harnack 于 2011-6-6 01:17 编辑

2# hoolooday

没了那帖之后我的发帖量突然少了很多,本来已经成功跻身首页右侧的“活跃会员”,现在从里面消失了。得多灌点水补回来……

其实Stylish格式里大括号间也不需要分号的,比如:
  1. @-moz-document domain(example.com) {
  2.   selector1 {property1: value1; property2: value2;}
  3.   selector2 {property3: value3; property4: value4;}
  4. }
复制代码
事实上标准的CSS语法就是这样的,Pentadactyl和Stylish并无区别。另外如果把CSS文件丢到plugins目录里的话,记得在配置文件里加上se lpl='\.(css|js|penta)$',因为Pentadactyl默认是不加载CSS脚本的。

顺便提下:最新的每夜版里引入了Hint[ambiguous],用来标识哪些hint需要按回车键才能打开,比如设置
  1. :hi Hint[ambiguous] background-color: red;
复制代码
按f后出现的hint里红色的那些必须在输完hint的数字后再按回车键才能打开,不是红色的那些输完hint不需按回车即能打开。(当然了,如果你设置了hto那又另当别论。)

最后重新贴下自己乱改的caret-hint.js,用法见:h Caret-Hint-plugin。
附件: 您所在的用户组无法下载或查看附件
听老人说,今生做千件好事,来世方能讨生为猫。
贴上从这里偷的配置。"hg6168 "(created 2011/06/02 00:00:08)"
":rehash重新载入配置
loadplugins '\.(js|penta)
group user
"" ]]/[[ turn next/previous page
set nextpattern&
set nextpattern^=\s*(下 ...
lll9p 发表于 2011-6-6 00:49
提两点不成熟的建议:
1、如果用的是每夜版的话,第6行和第8行可以去掉了,现在已经没有必要担心重复添加的问题了;
2、第14行的写法用-e或许更简洁些:
  1. map <F2> -e set go!=T
复制代码
听老人说,今生做千件好事,来世方能讨生为猫。
再添加个插件walk-input
在文本输入框的时候,可以快速的切换,最有用的是,页面最上面 到最下面的切换.(因为平常的可以直接tab的)
用法(建议)
先gi,确定到文本框.
然后<A-i>,在文本框之间切换.
附件: 您所在的用户组无法下载或查看附件
本帖最后由 hoolooday 于 2011-6-6 01:24 编辑

再贴上tuantuan兄更改的一个插件.
Hint模式下可以用拼音来快捷打开链接..
-------------------------------------------
tuantuan兄好久不见了.再不出来,他的插件都让我贴完了...
顺带求下lll9p兄更改的五笔插件...
附件: 您所在的用户组无法下载或查看附件
7# hoolooday

呵呵


附件: 您所在的用户组无法下载或查看附件
5# harnack



我用的是nightly版,呵呵,,受教了~
8# lll9p

请问有没可能支持双拼呢(微软双拼方案)?
听老人说,今生做千件好事,来世方能讨生为猫。
8# lll9p

请问有没可能支持双拼呢(微软双拼方案)?
harnack 发表于 2011-6-6 11:17
应该从拼音更改过去,比较容易些.具体不懂.只知道,是从CJK中
4E00-9FBF这部分做了替换..
一个一个改太麻烦了,不过也没发现有什么能整体替换的办法。
听老人说,今生做千件好事,来世方能讨生为猫。
8# lll9p

请问有没可能支持双拼呢(微软双拼方案)?
harnack 发表于 2011-6-6 11:17
可以的,,可是我找不到双拼的单字unicode码表。。。自己做有点麻烦,我这里没linux.....
我只在vim下做了一下,,还要把重复字的行去掉,再按unicode
排序。。。。


附件: 您所在的用户组无法下载或查看附件
13# lll9p

太感谢了,我是菜鸟,请问怎么把它放到pinyin-hints的脚本里呢?咋样才能让它按Unicode排序呢?
听老人说,今生做千件好事,来世方能讨生为猫。
可以的,,可是我找不到双拼的单字unicode码表。。。自己做有点麻烦,我这里没linux.....
我只在vim下做了一下,,还要把重复字的行去掉,再按unicode
排序。。。。
24665

24666 ...
lll9p 发表于 2011-6-6 14:51
这个码表有好多的重复好像.按unicode排序,是4E00到9FBF的顺序吗?
其实这个我不懂.
15# hoolooday


是的。。。
14# harnack

这个没有整理好的啊。。。。还不能用。。。等高人来做吧。。。。
17# lll9p

嗯,这个排起来貌似还不太容易。而且双拼好像也没啥人用……
听老人说,今生做千件好事,来世方能讨生为猫。
17# lll9p

嗯,这个排起来貌似还不太容易。而且双拼好像也没啥人用……
harnack 发表于 2011-6-6 17:51
呵呵。。
分辨不出不同拼音输入法之间有任何区别,完全不会啊!
我已经完全习惯用数字了,靠的是眼疾手快!

感觉标题不太准确,我的理解是:
pentadactyl与vimperator对应,dactyl与liberator对应。
本帖最后由 harnack 于 2011-6-7 02:58 编辑

其实双拼和全拼相差不大,对声母而言(pinyin-hints里只用到声母)双拼就是把全拼里面的zh、ch、sh用v、i、u代替,其它都一样。可是不能简单地把脚本里的z、c、s替换成v、i、u,因为z、c、s本身也可以单独做声母……

楼主应该是把dactyl当作Pentadactyl的简写了吧,因为在Google Code上Kris建的项目名称就是dactyl:
http://code.google.com/p/dactyl/

不过我也觉得还是用Pentadactyl做标题更好一些,别人用搜索引擎搜索时也比较容易搜索到嘛~
听老人说,今生做千件好事,来世方能讨生为猫。
本帖最后由 weide 于 2011-6-7 09:01 编辑

今天来遗憾地发现原来盖了这么多层的帖子没了,之前发了个问题贴从历史里面找出来,贴出来继续请教:
从Pinyin-hints请教下dactyl的插件编写的问题:
1.重新编写后的方法是替换原来的,还是在原来的方法执行前或执行后被执行?
dactyl.modules.hints.show=function...
按照我的理解,这样子就覆盖了原来hints.js中定义的show函数
但从实际使用这个插件来看貌似并没有覆盖hints.js中的show函数,javascript中对属性貌似也没有类似委托这样的实现方式,所以有点搞不懂,这个插件是如何来起作用的?
2.如何屏蔽这种利用拼音、五笔、或通常的按照内容进行过滤的筛选操作?
通常这种筛选是有益的,不过当set hintkeys=abcefhilmopqrsuvwxyz之后,这种过滤变得没有什么意义,尤其在g;b模式下,每次在后台打开一个链接都会闪烁一次,感觉不爽。尝试写了个插件:
  1.     dactyl.modules.hints._hintMatcher_orig=dactyl.modules.hints._hintMatcher;
  2.     dactyl.modules.hints._hintMatcher=function (hintString){
  3.             if(this._submode == "b") return function(){return true;};
  4.             return dactyl.modules.hints._hintMatcher_orig(hintString);
  5.     };
复制代码
我设想的是在;b或g;b模式下不进行过滤,其它模式下仍然采用默认的过滤方式,但遗憾的是这个插件貌似没起任何作用:(
然后又参考了拼音、五笔的类似写法,整了下面代码:
  1.     dactyl.modules.hints.show = function(mode, opts) {
  2.         this.hintSession = HintSession(mode, opts);
  3.         this.hintSession.pageHints.forEach(function(h) {
  4.             h.text ="abcdefghijklmnopqrstuvwxyz";
  5.         });
  6.     }
复制代码
结果仍然很悲剧的发现没起任何作用,该过滤的依然过滤
请教下,屏蔽过滤功能应该如何实现?
3.尝试理解上述三个问题时,试装了ChromeBug,定位到hints.js文件并设置断点,但发现无论如何也不能停顿在断点上。大家有用这个扩展的吗?能实现成功的调试扩展代码没有?venkman听说也可以,还没试过
本帖最后由 yhmybsy 于 2011-6-30 14:57 编辑

我自己用的几个脚本,可能不很完善(可怜我之前辛辛苦苦码的字,本来打字就慢)。


readability

下载地址:
https://github.com/grassofhust/d ... gins/readability.js

简介:
www.readability.com 网站交互(也可使用本地),提供了一个命令 :read 和三个参数 read,save,send
  1. :read                       " Read Now
  2. :read read                  " Read Now
  3. :read save                  " Read Later
  4. :read send                  " Send to Kindle
  5. :set real                   " 使用本地脚本载入,默认为使用远程时,
  6.                             " 效果较好,但速度较慢。
复制代码
editor.penta

下载地址:
https://github.com/grassofhust/d ... lugins/editor.penta

简介:
当你调用外部编辑器时,自动跳转到对应的行和列,同时设定对应的文件类型。
  1. :set editor='gvim -f -c ":set ft=bbcode" -c ":call cursor(<line>, <column>)" <file>'
复制代码
打开当前编辑器时,设定文件类型为 bbcode, 同时跳转到对应的行和列,默认的 'editor' 选项只跳转到对应的行,并不能跳转到对应的列。

当用 gF 查看网页源代码时,自动设置文件类型为 html
从 firebug 的命令行中调用外部编辑器时,设定文件类型为 javascript


shorten

下载地址:
https://github.com/grassofhust/d ... /plugins/shorten.js

简介:
短网址服务,支持 goo.gl bit.ly is.gd

选项:
  1. :set shorten-engine=b           " 使用 bit.ly的短网址服务,默认值为'i'
  2. :set !shorten-yank              " 不复制结果到剪贴板,默认为'true'
  3. :shorten [url]                  " url 可选,sht为简写形式。如果未指定
  4. :sht                            " url, 则使用当前页面地址。
  5. :sht -e g                       " 指定使用 goo.gl
复制代码
sites.js

地址:https://github.com/grassofhust/d ... yl/plugins/sites.js
不推荐下载,看看就得了。我不保证它总是可用。
目前就对百度帖吧有修正。


buftabs

下载地址:
https://github.com/grassofhust/buftabs

简介:
  1. :help buftabs-plugin
复制代码




dict.js


下载地址:
https://github.com/grassofhust/dict.js

简介:
  1. :help dict.js-plugin
复制代码
edit

快速打开 与 firefox 相关的文件与目录,方便修改 firefox 配置文件,脚本等。详情见:
https://g.mozest.com/viewthread.php?tid=38908&page=4#pid261246

direct_bookmark.js

快速添加书签到 delicious, google bookmark,移植自  vimperator 同名插件。

见 66 楼

caret-hint.js

见 169 楼

zenburn.penta

下载地址:
https://github.com/grassofhust/zenburn.penta

简介:
vim zenburn 主题的克隆



还有些在我硬盘里,不过还没整理好。
至此结束!
附件: 您所在的用户组无法下载或查看附件
上面的几个插件都有一些或多或少的更新,如果以前有下载过的,可以考虑重新下载一下。

以后加上 Changelog, 之前把这个东西都忘了。
上面的几个插件都有一些或多或少的更新,如果以前有下载过的,可以考虑重新下载一下。

以后加上 Changelog, 之前把这个东西都忘了。
yhmybsy 发表于 2011-6-7 16:35
有这么多的插件,喜欢buftab
很喜欢delicious.一直希望可以在dacty下使用delicious.可以实现添加书签(tags也能支持最好),并且可以浏览dilicious书签.
找到了以下两个vimperator的插件.不知道能不能帮忙更改下.
1.https://github.com/vimpr/vimpera ... ster/direct_delb.js
可以实现向dilicious添加书签.但是,不仅是dilicious.还有google mark.
2.https://gist.github.com/70963
可以搜索delicious的书签.
有这么多的插件,喜欢buftab
很喜欢delicious.一直希望可以在dacty下使用delicious.可以实现添加书签(tags也能支持最好),并且可以浏览dilicious书签.
找到了以下两个vimperator的插件.不知道能不能帮忙更改下.
1.htt ...
hoolooday 发表于 2011-6-7 18:04
delicious 不是个没人疼的孩子么? 可恶的yahoo。
delicious 不是个没人疼的孩子么? 可恶的yahoo。
yhmybsy 发表于 2011-6-7 18:20
其实主要是觉得delicious的tag管理起来很好用.当然也可以用fx的weave.
但是,有时候,不能用fx的时候,要看书签,还是delicious比较方便些.
上面两个可以更改吗?
其实主要是觉得delicious的tag管理起来很好用.当然也可以用fx的weave.
但是,有时候,不能用fx的时候,要看书签,还是delicious比较方便些.
上面两个可以更改吗? ...
hoolooday 发表于 2011-6-7 18:26
我看看吧,也可以顺便学习下。
我看看吧,也可以顺便学习下。
yhmybsy 发表于 2011-6-7 18:32
感谢.兄弟出手.肯定没有问题了.最好合并为一个就好.如果能将google;mark也更改了
那就无求了.
本帖最后由 harnack 于 2011-6-7 21:05 编辑

感谢yhmybsy的分享。

至于weide的问题,我觉得重新定义后的函数肯定会替换原来的,事实上从源代码里能看出来dactyl.modules.hints.show原本只有一句(用:echo也能直接显示出来):
  1. show: function show(mode, opts) {
  2.         this.hintSession = HintSession(mode, opts)
  3. };
复制代码
而pinyin-hints.js重定义dactyl.modules.hints.show时也包括了这一句,只不过又在后面加入了一段新的代码:
  1. this.hintSession.pageHints.forEach(function(h) {
  2.         h.text = getpinyin(h.text);
  3. });
复制代码
这样就对pageHints进行了重新赋值(即拼音)。其它的我就不知道了。
听老人说,今生做千件好事,来世方能讨生为猫。