[不折腾会死][Twitter] 轻量级Twitter客户端Twicli新功能介绍+各种优化

前回提要

昔々、ある所に…

算了懒得说前回提要了,你们自己从我的订阅RSS里搜Twicli吧(拖

追加功能

  1. 多国语言选择。顾名思义不多说。目前支持的是英文和日文和简体中文。目前简体中文是我维护的,但是自从上一次把稿子直接发给作者之后发现大部分的翻译还是要通过修改插件来实现,于是我还需要重新学学Git自己Commit才行……于是目前除了Core翻译过来了之外没啥进度。另外还有顺便做繁体中文的打算,但是由于台湾那边的计算机词汇貌似和我们用的不一样?所以我也不知道怎么做,于是也请对此有兴趣的港澳台同胞协助完成,将感激不尽。
  2. 多账户切换。通过在插件列表里面追加multi_account.js重新加载便可。注意,并不是说多账户支持,而是可以在多账户之间切换。不过我也没有小号,也没测试过。
  3. 过滤插件的加强。重点内容,后述。
  4. 快捷键支持。重点内容,后述。

关于过滤插件

极为有效的关键词过滤是每个日式Twitter客户端最大的特点之一。不同于欧美的客户端从TwitterAPI接收信息之后马上显示,日式客户端在收到了信息之后,先通过过滤模块进行一系列的分类处理,然后分别的需要的地方进行显示。而数据的分类可以用在很多地方,比如说群组管理、关键词高亮、关键词屏蔽,等。当然,分类作为数据处理最先需要做的事情,只要能够分类,剩下的事情就非常地好办,而Twicli更是把这个功能发挥到了极致,甚至是超越了所有的日式客户端

过滤的规则如下,前面摘自自己的Tumblr:

  • 规则大致上是目标标签名:用户ID:发言:是否在TL上保留(0或1)这样的格式。其中中间必须是半角的冒号用户ID和发言皆可使用正则表达式
  • 如果只需要过滤用户ID活发言其中一项的话,不需要的可以留空,没留空的话当作AND来处理。
  • 处理OR关系的话使用多行规则。
  • 通过/可以定义not关系。比如月月/小月月就是过滤掉月月但是不过滤小月月(你这是什么例子啊喂!)
  • 发言规则上可以通过输入from foo这样的格式抽出指定的客户端的发言。针对机器人专用。
  • 最后一项如果是1的话,过滤抽出到目标标签的发言将会从TL上删除。也就是关键词屏蔽用
  • 重量级功能:通过过滤抽出的发言可以制定.match-tabname的样式表进行自定义。也就是说你可以让特定关键词的发言用不同的颜色不同的格式表示。这样TL真正地达到了自由定制化

然后,近期作者对过滤插件进行了飞跃性的改进,如下:

  • 把只针对TL进行过滤分类扩张到了Mentions上。也就是说目前在Mentions的标签里的信息也将会接受过滤插件的过滤。
  • 强化了过滤机制。简单地说就是最后一项的0和1扩展成为0,1,2,3,4。这些分别是:0,在原处保留。1,从TL上删除。2,在Mentions上删除。3,在TL以及Mentions上删除。4,在所有的除DM的标签上全部删除。
  • 另外,如果要过滤官方的RT推,则可以使用“by @username”来进行过滤。

可以说经过这一次强化之后,Twicli的过滤水平基本上达到了Tween的水平。用户名,发言内容,发言来源,甚至是针对官方RT,也都有相应的过滤机制,大家可以通过这些机制可以自由对自己的TL进行分类和过滤屏蔽。然而Twicli的过滤插件,这些过滤机制也不过是冰山一角而已。之所以它能够击败目前几乎所有的客户端,主要就在于过滤规则的最后一条──对过滤了的发言进行各自的CSS定制上面

我们可以针对所有的标签,通过.match-tabname的形式进行CSS的自定义。因为Twicli的字体大小、颜色、类别等等的控制,每个模块的有无和预览图等等的控制都是通过CSS完成的,所以必然就能够出现对特定标签的特定定制,甚至不仅仅体现在颜色上面。因为我的Twicli的CSS是暗色Zenburn系,因此我可以把不太关注的人暗淡显示,而经常关注的好友以高亮显示把机器人的推以别的暗系颜色显示把技术系的发言以别的颜色区分等等,不仅字体颜色可调,背景颜色可调,甚至是字体的效果(加粗,斜体),字体的大小,完全可以为所欲为。经过一番折腾之后,你的Twicli就将焕然一新,你可以从一屏幕30多条发言中很快发现自己关注的发言,也可以很快地忽略自己不太关注的发言和机器发言。

快捷键的支持

通过插件加载shortcutkey.js使用。

其实一开始使用Twicli的时候就说了,要是有快捷键支持就好了,另外作者也很是好人,最近加入了快捷键的支持,而且很蛋疼地给所有的浏览器都单独设置了相应的适合的击键类型(其中Firefox三种都支持,听说),不得不说这个作者还是相当热情的。

快捷键一览:(摘自官方Wiki)

ESC:取消选定/取消输入/关闭弹窗 m:激活输入框 0-9:激活相应的标签(从左到右) 下/j:游标向下移 上/k:游标向上移 x:关闭标签 f:收藏发言 i:显示对话 u:显示指定用户信息 e:回复 p:过滤出该发言人以及发言中所有ID的所有发言。 r:官方RT q:非官方RT d:删除发言 t:机器翻译 g:显示地图 o:打开发言中的链接

另外Vimp用户的话,还需要使用Feedsomekey来使得快捷键能够正常使用。贴上我的Feedsomekey设置(大部分快捷键都被我改了,仅作为参考):

command! -nargs=+ lazy autocmd VimperatorEnter .* <args>
" Twicli
lazy fmaps -u='.*twicli\.html' -events=vkeydown n,j m,k x tt,m z,<esc> f o,i u r,e pp,p R,r T,q c,d v,o

当然,如果只是快捷键的支持的话,我并不会专门腾出一个章节来介绍它。这一次的快捷键支持,用什么快捷键并不是一个重头戏,重头在于快捷键这个系统的建立。快捷键系统必然地建立起了游标这个设定,也就自然而然地出现了针对游标的CSS定制。能够变成什么样子?我们来看图:

真是密密麻麻的字。实现这个东西我并没有做什么,我只是把全局的发言的CSS字体调小,除了ID和发言内容全部删除并且强制一行显示,然后游标聚焦的发言正常、ID和发言之间改行显示,其余元素全部显示。另外可能截图无法体现出来,切换游标以及有图片预览图的时候,使用Transition效果进行渐变动画平滑效果,感觉是非常舒服的。

这个Twicli做得就越来越像Tween了。不过为此一个界面的信息量也就大幅度地增加了,虽然眼睛可能看的会比较累,但是因为过滤插件过滤高亮暗淡显示,所以实际上也没那么累……感兴趣的再点一下查看全文就好了,也大大提高了扫推的速度。唯一的缺点,可能就是眼睛累的程度和屏幕的大小成正比,建议新开一个浏览器窗口然后缩小显示……嗯。

最后贴上自己的快捷键相关CSS。

div.tw { font-size: x-small; white-space:nowrap;}
div.tw .utils, div.tw .fav, div.tw .uicon { display:none; }
div.tw div.selected { font-size: small; white-space:normal;-moz-transition: all 0.2s ease; -webkit-transition: all 0.3s ease; transition: all 0.2s ease; -o-transition: all 0.3s ease;}
div.tw div.selected .status {margin-left:50px;}
div.tw div.selected .utils, div.tw div.selected .fav, div.tw div.selected .uicon, div.tw div.selected .status { display:block; }
div.tw div.selected .uicon {width: 48px;height: 48px;}
div.tw div.selected .rtinfo {text-align:right !important;}
div.tw div.selected .thumbnail-image { border: solid 1px white; height: auto; max-height: 200px; }

经过这么一折腾,我也终于理解了大括号前面到底是什么东西,原来和Xpath差不多什么的……有兴趣的同学,也建议安装DOM Inspector插件分析一下Xpath然后改成自己需要的样子。


写在最后

可能我以前也说过了,效率和优化是分不开的。没有优化就谈不上效率,而优化需要以自己的需求,自己的习惯进行自定义,也就是我们现在所说的折腾。所谓的效率,当然不是说某些方面更为傻瓜化,我们只要一键便能够完成,或者说加载速度贼快(无误),而是说这一键到底能够完成所有的工作还是众多的工作的其中之一,快到底体现在系统加载的同时是否也体现在自己进行系统操作上面。一键傻瓜完成必然是一种高效率的作法,但是这个一键如果没有按照自己的需求进行优化,那就可能是很低效的;页面加载固然重要,但是一些固定的操作还要用到鼠标进行定位和选择,那就是低效的。作为工具的Twiter客户端也是一回事情,功能的强大、快捷方便,说到底还是要和自己的个性和使用风格进行探讨。因此,追求高效的我们需要的可能不是一个特定的工具,而是一个能够针对个人需求进行优化和拼搭的平台。比如Vimp,又比如Twicli。

海猫鸣泣之时翼有这么一段:如果有机会可以实现任意一个愿望,如果你回答“我要实现的愿望就是可以实现无限个愿望”就是一个很俗的回答,因为它否定了作为“有限个”的神圣性,神圣的东西变成了俗气;“需要很多的金钱”也很俗,因为他觉得钱是万能的,把自己的价值观局限在金钱上面;“需要打败一切的力量”,这个也不行,需要力量就说明自己的懦弱,需要依靠打下对方才能确认自己的地位是不是比别人高,不是懦弱是什么。无论是什么样子的愿望,我们人类把自己的自由通过各种方式束缚在一起,形成了现在的价值观,和世界观。我们如果想在某个方面达到“神的领域”,必须要突破以往的价值观,突破以往的对自由的限制。然而突破限制的同时我们也会突破我们以前依靠的东西──比如说阻碍我们和地球的地心引力的土地等──我们就必然地会“自由”落下,堕落,没入黑暗的深渊之中。

戏言耳。总之人类是一个很悲剧的生物,明知无法步入神的领域但又渴望着成为神;明知知道了之后就无法变回不知道,然后又渴望去知道一切。所以才会被命运作弄,才会在这种地方游荡不定。

Published at 15:41 CST, JAN 27 • 1084+607 views
blog comments powered by Disqus