Listary——给DOpus和Everything搭个桥

尽管Directory Opus很好用了,但是一直以来的问题就是他没法和everything这一超强的搜索引擎结合起来,尽管之前我也翻译过DOpus论坛上的解决方法,但是毕竟是一种硬编码的形式,路径什么的一旦不对就没法使用,现在好了,Listary的最新beta版本支持DOpus的beta版本,并且可以直接调用everything的搜索结果,让DOpus-Listary-Everything构成了强大的文件管理工具链。

Listary设置

安装好之后,我做的设置是:

  • 搜索-磁盘搜索中,使用Everything

  • 窗口类型独立设置里面,Directory Opus关闭「查找你键入的内容」(Find-As-You-Type)选项,这样是为了不和DOpus自己的Find-As-You-Type功能冲突

  • 窗口类型独立设置-Desktop,关闭「鼠标在空白区域弹出Listary快捷菜单」,以免和DOpus的双击唤出冲突。

使用

从桌面搜索

只要焦点在桌面,只要开始输入就是在桌面内查找你输入的内容

以「>」开始的搜索则是全局搜索

在DOpus里搜索

按Win+s或者鼠标中键,打开Listary工具栏,同样,在当前路径下查找你输入的内容,如果输入以「>」开头,则是全局搜索

在文件打开菜单中

比如在Gmail里面点击「添加附件」,在「打开文件」对话框下面就会有Listary的工具栏,在这里输入的任何内容都是搜索,用「>」开头的都是全局搜索,如果焦点不在Listary上的话,按Win+s聚焦到Listary的对话框上。

其他

Listary支持搜索的时候用拼音首字母查询,弥补了DOpus的不足,不过如果你使用的是Everything的引擎,则全局搜索的时候就没法用拼音首字母了。

Listary和TC可以更好的集成使用,就是在上述「打开文件」对话框中按Win+o可以打开一个TC标签,然后在此TC标签中进行操作,选中文件后再按Win+o,选中文件的路径就通过TC传给Listary然后传给「打开文件」的对话框了,这样在「打开文件」也可以使用TC进行操作。详见Listary+TC: 提高效率,取代传统低效的”打开/保存”对话框 | 善用佳软。然而现在对DOpus还没有Win+o支持,不过作者说这已经在他的开发计划之内了。

另外,Listary Pro现在正在以50人民币的优惠价进行销售,我本身这个软件用得不多,Pro版的介绍和购买详情也请移步善用佳软大哥的文章Listary:搜索增强软件,新版v4发布(赠Pro许可+优惠销售) | 善用佳软

DOpus 10.5 更新日志

2013年1月31日,Directory Opus稳定版升级到了10.5.0.0,以下是升级日志的大致翻译

Windows 8

已官方支持Windows 8,以下问题已解决

  • 双击文件启动的只是桌面程序,而不是Metro程序
  • 双击未知格式文件不再打开同步中心
  • 打开新列表窗的快捷键改为Win+Shift+E,Win+O不再生效
  • 「复制文件路径」功能正常

原生支持MTP设备

本版本开始原生支持MTP(Media Transfer Protocol)设备,MTP设备在DOpus里面以mtp://语法打开,现在在「计算机」里面可以看到已经连接的MTP设备并双击可以打开

标签群组可分别设置左右栏

现在标签群组里面新增一个选项「特定边框」(Specific Sides,这里中文译得不好)可以制定组中的标签是在左栏还是右栏打开

当勾选这一选项后,其左边的按钮可以用来将标签从左边移动到右边或者反过来

标签栏的右键菜单新增「Save Both Sides,保存两者」(中文还是没译好)命令,可以将目前打开的标签按照分栏保存成标签群组。

标签组管理

「首选项-文件夹标签-标签群组」中可以用文件夹来管理,只需要点击「新建文件夹」按钮并拖拽。 另外也新增一个「标记为隐藏」按钮。一旦一个标签群组被标记为隐藏,它就不会出现在标签栏右键菜单中。

可链接标签

在双栏视图中,可以将左右的标签页链接起来,点击已链接标签中的一个,在另一栏会自动跳到和它链接的那个标签。同时最多设置8对链接标签页。已链接标签会用不同颜色标识,该颜色可在首选项中修改。

已链接标签可选择为「Slave Tab, 附属模式」。一旦设置为附属模式,该标签的内容会和它的链接标签保持一致。附属模式的标签会变成斜体。附属模式的设置和取消在标签栏的右键菜单中。

首选项-文件夹标签-标签群组的编辑中也可以设置链接标签

链接标签的快捷键:

  • Ctrl+点击:设置/取消到当前标签的链接
  • Ctrl+Shift+点击:设置/取消到当前标签的附属模式链接
  • Shift+点击:在另一栏中不跳转到链接的标签

列表窗样式使用标签群组

在列表窗样式中,之前是可以分别定义左右栏的标签,现在该功能用标签群组代替。

标签外观改进

标签栏改进

  • 「首选项-文件夹标签」新增外观页
  • 「首选项-文件夹标签-选项」,新增「点击列表窗关闭按钮时只关闭活动标签」(而不是关闭整个列表窗),「显示新标签按钮」「在当前标签旁打开新标签」以及「当标签减少时显示菜单」
  • 把一个标签拖到桌面可以打开一个新的列表窗
  • 直到鼠标按键释放才激活标签(就是你拖动标签的时候不会马上切换过去)
  • 鼠标中键可以关闭标签(就是按滚轮),双击标签也可以(需要在「首选项-文件夹标签-选项」中设置)
  • 「首选项-文件夹树-选择事件」新增「切换至现有标签」选项,选中后在文件夹树里面点击一个已经在标签中打开的文件夹的时候会切换到该标签,而不是在当前标签打开这个文件夹。

即时查找可以切换标签

快捷键是「@」,可以在「首选项-列表窗-即时查找」中修改 在使用即时查找切换标签时,会弹出符合描述的标签列表,匹配的是路径和标签标题

文件夹树高亮当前文件夹路径

在「首选项-文件夹树-高亮显示所选文件夹的路径」中设置。勾选「高亮显示当前所有打开的标签」后非活动标签的高亮颜色较淡

群组栏

当文件以群组方式显示时,可以显示一个群组栏,在「首选项-文件夹-文件夹显示-当文件被分组时自动添加‘群组’栏」,群组栏的颜色和宽度可在首选项中设置。

Ctrl+滚轮可以调整字体和缩略图大小

  • 在缩略图中,可以调整缩略图尺寸
  • 在详细信息或者加强模式视图中,可以调整字体大小

列表窗可以自定义标题

在「首选项-显示-选项」中,可以自定义列表窗标题栏,其中可以用到几个特殊控制字

  • %P 当前文件夹完整路径
  • %N 当前文件夹名
  • %R 当前文件夹根目录
  • %D 当前目标文件夹完整路径
  • %M 当前目标文件夹名
  • %L 当前列表窗布局名
  • %T 最初标题

%P,%N和%R还可以在给标签命名的时候使用

其他改进和bug fix

(略)

在AWS上搭建shadowsocks-nodejs环境并搭配obfsproxy使用

本文作者为unclepulp,感谢赐稿

本文服务端为Amazon Linux AMI 2012.09(32bit),客户端为Windows7。

Amazon AWS的注册、EC2的开通(电话验证如不成功,可用Google voice验证)以及实例的启用请参考Amazon AWS 漫游指南

首先使用PuTTY登录EC2,然后输入如下命令:

sudo su

为避免部署的过程中出现网络中断的情况,可使用screen命令创建一个会话(screen命令的使用请参考SSH远程会话管理工具 - screen使用教程):

screen -S nodejs

接着更新一下系统:

yum update

部署服务端

部署shadowsocks-nodejs

mkdir tmp
cd tmp
yum install git
git clone https://github.com/clowwindy/shadowsocks-nodejs.git
cd shadowsocks-nodejs
vi config.json

i开始修改,修改server_port(如12345)和password。修改好后按ESC,然后输入 :wq 保存退出。

cd ..
mkdir /var/shadowsocks
cp shadowsocks-nodejs/ /var/shadowsocks -r

安装并部署nodejs

nodejs最新版可以在官网获取

wget http://nodejs.org/dist/v0.8.18/node-v0.8.18-linux-x86.tar.gz
tar zfvx node-v0.8.18-linux-x86.tar.gz
cp node-v0.8.18-linux-x86/bin/node /usr/bin/
echo "(node /var/shadowsocks/server.js >/dev/null 2>&1 &)" >> /etc/rc.local

部署obfsproxy

安装obfsproxy支持环境

yum install autoconf automake gcc make openssl-devel pkgconfig

安装libevent2

libevent2最新版本可在官网获取

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zfvx libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
make install
cd ..

安装并配置obfsproxy

git clone https://git.torproject.org/obfsproxy.git
cd obfsproxy
export libevent_CFLAGS=-I/usr/local/include
export libevent_LIBS="-L/usr/local/lib -levent"
export LD_LIBRARY_PATH=/usr/local/lib/
./autogen.sh
./configure
make
make install
cp /usr/local/lib/libevent-2.0.so.5 /usr/lib/
cd ..
echo "(/usr/local/bin/obfsproxy obfs2 --dest=127.0.0.1:12345 server 0.0.0.0:54321 >/dev/null 2>&1 &)" >> /etc/rc.local
iptables -A INPUT -p tcp --dport 54321 -j ACCEPT
yum install policycoreutils
service iptables save
service iptables restart
exit
exit
exit

此处端口12345为shadowsocks-nodejs的server_port,54321为obfsproxy 负责接收和发送混杂数据的端口。

然后请参考Amazon AWS 漫游指南三:VPN一文里的防火墙设置,并将12345和54321两个端口添加一下,添加好后重启实例。


部署客户端

  1. tor官网下载含Obfsproxy的Tor包,此包是自解压包,将解压后得到的APP目录中的所有文件拷贝到一个合适的目录,如D:\nodejs

  2. nodejs官网下载node Windows包,下载得到node.exe直接拷贝到D:\nodejs

  3. 访问shadowsocks-nodejs项目主页,点击界面中的zip,下载得到一个zip包,解压后将shadowsocks-nodejs-master目录中的所有文件全部拷贝至D:\nodejs

  4. 编辑config.json,将password修改为之前制定的密码,其它无需修改。

  5. 在D:\nodejs目录中新建一个文件,输入:

     START node.exe local.js
     START obfsproxy obfs2 –dest=111.111.111.111:54321 client 127.0.0.1:8388
     EXIT
    

    其中111.111.111.111为服务器IP地址,例如,如果Amazon EC2实例的public dns为ec2-111-111-111-111.us-west-1.compute.amazonaws.com,那么,此处的IP就填111.111.111.111。然后将文件保存为批处理文件,后缀为bat

  6. 双击该批处理文件,并将浏览器的代理设置为SOCKS5 127.0.0.1:1080 即可。

参考

鼠须管里使用颜文字

综合参考官方文档和这个教程。鼠须管里使用颜文字步骤如下,设置目录为~/Library/Rime

新增一个输入法

default.custom.yaml里面添加patch

patch:
  schema_list:
    - schema: kaomoji

编辑颜文字输入法

新建kaomoji.schema.yaml文件,内容如下

schema:
  schema_id: kaomoji
  name: kaomoji

engine:
  processors:
    - key_binder
    - speller
    - selector
    - navigator
    - express_editor
  segmentors:
    - abc_segmentor
    - fallback_segmentor
  translators:
    - r10n_translator
  filters:
    - uniquifier

translator:
  dictionary: kaomoji
  spelling_hints: 1

key_binder:
  import_preset: default

speller:
  alphabet: zyxwvutsrqponmlkjihgfedcba
  delimiter: " ;'"
  algebra:
    - "derive/^.+$/all/"

编辑词库

新建kaomoji.dict.yaml文件,建立颜文字词库,文件格式为:

---
name: kaomoji
version: "0.1"
sort: origin
...
颜文字1[TAB键]输入码1
颜文字2[TAB键]输入码2

例如

d=====( ̄▽ ̄*)b [顶!]    ding

在当前输入法中使用颜文字

修改你输入法的*.schema.custom.yaml文件,添加

patch:
  schema/dependencies:
    - kaomoji

重新部署

重新部署鼠须管即可生效

注意此时文件夹内应该多出来kaomoji.table.bin, kaomoji.reverse.binkaomoji.prism.bin三个文件

截图

颜文字整理下载

Snipmate在Windows下和pathogen的兼容问题

今天在Windows台式机上写LaTeX的时候忽然发现怎么Snipmate不好使了,Tab键都要被按烂了居然还不能补全,但是OSX上用又是好的。

Google了各种关键字,都没有能直接解决问题的。StackOverflow和superuser上的问题更多的是关于如何载入自定义的代码段。

后来把Snipmate直接拷贝到Vim的安装文件夹下面,改名vimfiles,发现是可以用的,再结合googlecode上的一个issue,发现是snipmate/after这个文件夹pathogen没有载入,估计是不符合vim插件的通常结构。

于是解决方法很简单了,在.vimrc文件中加入

set runtime+=~/.vim/bundle/snipmate/after

因为我环境变量里面有$HOME,所以就可以用~来代替个人文件夹了

vimflowy: workflowy的vim实现

在很早一篇《像发微博一样做GTD》里面,我提到可以在Vim里面实现workflowy的功能。经过参考 Vimoutliner 和 VimOrganizer,我自己做了一个vim插件,可以实现workflowy的大部分功能。同时因为是基于纯文本的,随便扔一个网盘就可以同步了,移动设备上也可以方便的查看。

特点

  • 大纲列表,用缩进表示层级,TAB键可以切换展开/折叠
  • #和@关键字高亮和过滤
  • 标记完成功能

安装

项目主页在 http://www.github.com/laoyang945/vimflowy

安装只需要把文件拷贝到pathogen设定的插件目录即可

使用

用vim打开后缀为otl的文本文件后,插件就自动加载了。使用方法和workflowy基本相同,都是使用缩进来标记大纲层次,用冒号或者分号来标记补充内容。由于是基于vim的,对快捷键的支持当然是必须的

快捷键

  • [normal],,N(N=0~9): 所有条目展开到第N级,当N=0的时候表示全部展开
  • [normal],,dn: 标记当前节点及其所有子节点完成,并附加完成时间
  • [normal]zs: 显示所有含有光标下单词的条目(不包括补充内容)
  • [normal]zn: 和,,0的效果一样
  • [normal & insert],,d: 插入日期
  • [normal & insert],,t: 插入时间

截图

大纲,折叠,关键字和标记完成

文本过滤

欢迎各位Vimer和GTDer使用并提出意见和建议。

用Dropbox(或者其他网盘)同步Zotero需要注意的事项

不知道像我一样有两台电脑,又是zotero的忠实粉丝的人多不多。这种情况下就需要保持两台电脑上zotero数据的同步,免得在台式机上添加的文献后来在笔记本上看不了。

但是如果你只是简单的在zotero的设置-高级选项里面将zotero的文件夹放到dropbox(或者其他网盘)里面的话,你可能会遇到一个很大的问题:zotero.sqlite文件,就是zotero的数据库文件里面的数据会不完整,或者你发现在zotoro的数据文件夹里面有一堆的conflict文件,如果你的zotero.sqlite文件有数十兆的话,二三十个冲突文件就能有快1G的容量了。

这个问题的原因是,zotero.sqlite在打开的时候会被zotero锁定,此时Dropbox就认为这个文件已经有了修改,经过二进制对比,Dropbox会把修改部分上传并同步。如果两台电脑同时打开zotero/firefox的话,Dropbox会认为两边都是在更新这个文件,于是他会把对应修改的二进制文件合并到一块去,如果不能合并到一块去的话就生成冲突文件,在这个过程中很有可能就造成数据库文件的损坏(回想一下数据库课程里面是怎么说的)。因为这个原因,我一直避免同时打开两台电脑上的firefox。

昨天稍微研究了一下,这个问题还是挺容易解决的。其实只需要让zotero自己提供的网络同步功能同步数据库文件即可,然后存储在zotero里面的附件文件夹用符号链接的方式放到Dropbox目录里就可以了,这样把数据库和外部附件分开,以免Dropbox去处理zotero.sqlite。

具体的操作就是先把Zotero从Dropbox里面移出并在Firefox里面设置好,然后在Mac终端里

ln -s Zotero目录/storage Dropbox目录/zotero/storage

或者在Windows下,打开命令行

mklink /D Zotero目录/storage Dropbox目录/zotero/storage

Mac用户文件夹移动后恢复默认图标

很多人把MBP里面的光驱拆掉换成SSD+HDD的搭配,然后把个人文件夹中的一部分,比如音乐或者视频,放到HDD里面去,然后用软链接链回来。这样做的问题就是,这些文件夹没有特定的图标了。

如果想要把图标找回来,其实也挺简单,只需要在/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources下找到对应的icns文件,打开icns文件并复制其中某个分辨率的图标图像,然后在文件夹上右键选择Get Info,在新窗口点一下左上角的图标,然后粘贴即可。

有一个挺好使的免费软件Candybar(最近才免费的),可以替换系统图标,但是我并不是想替换系统默认的图标只是要使用默认图标而已。

至于侧边栏的图标,找了一圈没有什么好的方法,只有用XtraFinder开启彩色模式才能显示文件夹的图标。

最终的效果

Directory Opus和Everything共同使用设置

有很多人在DO技术讨论群里面问这个问题,我索性整理出来

用Dopus中打开Everything搜索结果

很简单,只要编辑Everything的设置ini文件,修改以下两行,即可以制定用Dopus打开Everything的搜索结果

open_folder_path_command=$exec("Dopus安装路径\dopusrt.exe" /cmd GO "$parent(%1)" NewTab)
open_folder_command=$exec("Dopus安装路径\dopusrt.exe" /cmd GO "%1" NewTab)    

在Dopus中添加Everything按钮

下载这个文件,将压缩包内所有文件解压到Everything的安装路径

复制以下代码(如果你的Everything安装路径不同请稍作修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0"?>
<button display="both" label_pos="right" separate="yes" type="three_button">
   <label>Everything</label>
   <icon1>#default:find</icon1>
   <button display="both" icon_size="large" label_pos="right">
      <label>Everything (Dialog)</label>
      <tip>Search Everything for Specified Keyword(s)</tip>
      <icon1>#default:find</icon1>
      <function type="normal">
         <instruction>@admin</instruction>
         <instruction>Everything路径\SearchEverything.exe "{dlgstring}"</instruction>
      </function>
   </button>
   <button display="both" icon_size="large" label_pos="right">
      <label>Everything (Clipboard)</label>
      <tip>Search Everything for Current Clipboard Text</tip>
      <icon1>#default:find</icon1>
      <function type="normal">
         <instruction>@admin</instruction>
         <instruction>Everything路径\SearchEverything.exe "{clip}"</instruction>
      </function>
   </button>
   <button backcol="none" display="both" icon_size="large" label_pos="right" textcol="none">
      <label>Everything (Program)</label>
      <tip>Starts / Brings Everything to Front</tip>
      <icon1>#find</icon1>
      <function type="normal">
         <instruction>cd Everything路径</instruction>
         <instruction>Everything路径\Everything.exe</instruction>
      </function>
   </button>
</button>

如上图,在Dopus菜单栏上右键-自定义(customize),再在菜单栏上右键选粘贴(paste),你就会看到一个叫做Everything的按钮出现在你的菜单栏上。其功能为:

  • 左键点击:用Everything搜索文件

  • 右键点击:用Everything搜索剪贴板内容

  • 中键点击:打开Everything窗口

中州韵(小狼毫,鼠须管)输入法设置

大概半年之前就看到有人推荐这个号称是神级的输入法,当时试了试,响应快速,对正体字的支持较好(不会出现一对多的问题),不仅是一个输入法这么简单,可以说是一个输入法的框架。但是就是因为其本身支持的东西较多,造成了文档的冗长,设置的麻烦,当时还对gVIm有那么一点点的的不兼容。所以我还是没有继续用这个输入法,老老实实的使用我的谷歌拼音。

但是现在我换新电脑了,2012的MacBook Pro,也没有谷歌拼音可以用,我也不想用那些国内的搜狗百度啥的,又捡起来了鼠须管输入法,发现其实经过一番简单的设置,也是可以用得很顺手的,下面我总结一下设置方法(鼠须管0.9.11)

设置目录

  • Windows下是%APPDATA%\Rime,也可以在任务栏图标里面右键-用户文件夹

  • Mac下是~/Library/Rime,也可以在任务栏图标里面右键-Settings

外观设置

新建或修改设置目录里面的weasel.custom.yaml(Windows)或squirrel.custom.yaml (Mac),内容是(注意缩进和冒号后面的空格) patch: "style/color_scheme": luna "style/font_point": 18 其中color_scheme的选择有

  • 碧水 - aqua

  • 青天 - azure

  • 明月 - luna

  • 墨池 - ink

  • 孤寺 - lost_temple

  • 暗堂 - dark_temple

  • 星際爭霸 - starcraft

然后保存,右击任务栏上鼠须管的图标,选择Deploy或者重新部署即可

双拼设置

在设置目录里面新建或编辑 default.custom.yaml 文件,内容是(注意缩进和冒号后面的空格) patch: schema_list: -schema: double_pinyin_mspy 当然你也可以选择其他的双拼方案,如double_pinyin_abc,double_pinyin_flypy,double_pinyin分别对应智能ABC、小鹤和自然码的双拼方案。

保存文件之后,右击任务栏上鼠须管的图标,选择Deploy或者重新部署即可

双拼默认简体

原作者是台湾人,所以默认是正体字输出,但是其实这个框架也提供了简体字的输出方式,只需要在设置目录里新建或者编辑double_pinyin_mspy.custom.yaml这个文件,如果你用的是其他双拼方案就把文件名作对应修改。文件内容增加(注意缩进和冒号后面的空格)
patch: switches:
- name: ascii_mode reset: 0
states: [ 中文, 西文 ] - name: full_shape
states: [ 半角, 全角 ]
- name: simplification reset: 1
states: [ 漢字, 汉字 ] 保存后重新部署鼠须管即可

双拼模糊拼音

同样是修改double_pinyin_mspy.custom.yaml这个文件,将以下内容附到后面即可,保持speller/algebra和上面的switch对齐:

"speller/algebra":
    - erase/^xx$/
    - derive/^([zcs])h/$1/ 
       - derive/^([zcs])([^h])/$1h$2/ 
       - derive/^n/l/ 
       - derive/^l/n/ 
       - derive/^([bpmf])eng$/$1ong/ 
       - derive/([ei])n$/$1ng/ 
       - derive/([ei])ng$/$1n/ 
    - derive/^([jqxy])u$/$1v/
    - derive/^([aoe].*)$/o$1/
    - xform/^([ae])(.*)$/$1$1$2/
    - xform/iu$/Q/
    - xform/[iu]a$/W/
    - xform/er$|[uv]an$/R/
    - xform/[uv]e$/T/
    - xform/v$|uai$/Y/
    - xform/^sh/U/
    - xform/^ch/I/
    - xform/^zh/V/
    - xform/uo$/O/
    - xform/[uv]n$/P/
    - xform/i?ong$/S/
    - xform/[iu]ang$/D/
    - xform/(.)en$/$1F/
    - xform/(.)eng$/$1G/
    - xform/(.)ang$/$1H/
    - xform/ian$/M/
    - xform/(.)an$/$1J/
    - xform/iao$/C/
    - xform/(.)ao$/$1K/
    - xform/(.)ai$/$1L/
    - xform/(.)ei$/$1Z/
    - xform/ie$/X/
    - xform/ui$/V/
    - derive/T$/V/
    - xform/(.)ou$/$1B/
    - xform/in$/N/
    - xform/ing$/;/
    - xlit/QWRTYUIOPSDFGHMJCKLZXVBN/qwrtyuiopsdfghmjcklzxvbn/

保存后,重新部署即可。

词库导入

下载某位仁兄导出的搜狗词库 http://cl.ly/033g2x3k2J05 后解压得到sogou.txt文件,

Windows下右键选择用户词典管理,选择『导入文本码表』功能,将sogou.txt导入你的用户词典

Mac下下载用户词典管理工具并把rime_dict_manager解压到~/Library/Rime,执行如下命令

cd ~/Library/Rime
killall Squirrel
./rime_dict_manager --import luna_pinyin 路径/sogou.txt