2016年9月27日星期二

可信商品评价:汇集可信的产品评测信息

收集国内及港台的较可信的商品评测网站,利用Google自定义搜索,做出可信商品评价,链接是:
主要来源网站有:
注意,要在下方的搜索框输入关键词。

2016年9月22日星期四

巧妙搜索,快速找到可用的草榴社区最新地址

1. 草榴社区

草榴社区在中文互联网称得上大名鼎鼎,深受广大男性网民的喜好。它最大的优点是干净、便捷,无需注册即可下载、看图,不用忍受大量的弹窗、大块的广告。
不过受到GFW的屏蔽,草榴网站的主链接不能正常打开。而能访问的链接,过段时间可能就会失效。本文提供一种搜索方式,可以快速得到可用的最新地址。

2.搜索方式

节省大家时间,先给出关键词。点击下面的链接,即可快速找到。

3.解析

搜索最核心的技巧,是构建恰当的关键词(搜索表达式)。怎么算恰当,关键词只在目标网页上出现,而其它网页没有。这样,出来的结果都是想找的。
这次用的关键词是inurl:thread0806 intitle:powered。它的含义是告诉搜索引擎,请给出满足下列两个条件的结果:
  1. inurl:thread0806, 表示结果的链接(url)里要出现 thread0806
  2. intitle:powered, 表示结果的标题(title)要包含 powered
而草榴社区各个版块符合这两个条件。url都含有thread0806.php?fid=,标题都出现草榴社區 - powered by phpwind.net.其它网页很少同时命中。
所以,这个inurl:thread0806 intitle:powered有奇效,排除了无关页面,前面结果都是想找的草榴社区各个版块。

多行文本粘贴到Excel,行数变少的解决方法

1.现象描述

多行文本数据粘贴到Excel后,有时会发现行数减少。原来有10000行,Excel里却只有9000行,甚至8000行。

2.原因

经过观察比对,发现是单个英文双引号(")导致的。如果某一行包含某个双引号,那粘贴到Excel后,会将该行及以后的行合并到一个单元格,直到遇到另外的英文双引号为止。

3.解决办法

使用正则表达式, 每一行的行首加上一个空格以gVim为例,,表达式是:
  1. :%s/^/ /g
  2. 简单解释,s表示替换,^表示行首位置,%表示作用于整个文本。将每一行的开始位置替代为空格,即行首加了一个空格。

2016年9月13日星期二

我最常用的提高效率的几个软件

作为一个爱摸索,注重效率的IT从业者,介绍几个我最常用的软件。 注意:我用的是Windows系统。

1.Total Commander

简称TC,是一款文件管理软件,可能代替系统自带的“资源管理器”。它有两个窗口,支持多标签,同时展示多个文件夹;能极大的提高操作速度。
更多请参考善用佳软TC教程

2.gVim文本编辑器

增强型的“记事本”。功能超级强大,支持正则表达式,可能灵活地批量操作。 不过,入门有些困难。
帮助文件非常棒,认真阅读并实际操作,即可较快地掌握gVim。

3.StrokeIt 让任何软件都能使用鼠标手势

如果你使用过浏览器的鼠标手势,肯定能体会到方便快捷。StrokeIt可以让其它软件也支持鼠标手势。
参考:StrokeIt教程

autohotkey脚本实例:复制选中的内容,然后搜索或者打开链接

第1版:复制当前选中的内容并搜索

工作需要,我要经常搜索。以往都要经过繁琐的步骤:在Excel或记事本中选中——复制——切换到浏览器——定位到搜索框——粘贴——按Enter键。数量少时还好说,有时一天要搜索上百次,频繁的Ctrl+C、Ctrl+V按得手指酸痛。
接触了Autohotkey,尝试制作脚本减轻工作量,提高效率。经过搜索尝试,第一版代码见下:
  1. $^c:: ;^表示Ctrl键。前面加一个$就不会递归了。说实话,我也不太清楚啥意思,是从知乎上查到了。
  2. Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
  3. Sleep 100 ;等待100毫秒
  4. Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
  5. ;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。

第2版:快捷键改为Shift+C,及打开链接

第一版用起来遇到两个问题。
  • Ctrl+C是系统级的快捷键。有时候,我按下Ctrl+C只是想复制,不想搜索。所以修改快捷键为Shift+C。
  • 有时复制的是链接,我希望打开链接,而不是搜索。
又是一番搜索尝试,第二版代码:
  1. +c:: ; +表示Shift键。
  2. Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
  3. Sleep 100 ;等待100毫秒
  4. StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
  5. StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
  6. if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
  7. ; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
  8. Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
  9. ;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。
  10. else
  11. Run %clipboard% ;打开链接
  12. return

第3版:同时打开多个链接

某些时候需要查看多条链接。一条条打开还是慢,希望选中多条链接后能一次性打开。
又是一番折腾,第3版代码:
  1. +c:: ; +表示Shift键。
  2. Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
  3. Sleep 100 ;等待100毫秒
  4. StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
  5. StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
  6. if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
  7. ; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
  8. Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
  9. ;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。
  10. else
  11. {
  12. Loop,parse, clipboard, `t`n, ;循环解析剪贴板的内容,tab和换行符是表示分隔的符号
  13. {
  14. Run %A_LoopField% ; %A_LoopField% 表示每次解析得到的内容
  15. Sleep 20
  16. }
  17. }
  18. return

第4版 选中多行文本时,希望能同时搜索

一个查询词占一行,选中多行后,我想同时搜索这些查询词。并且,如果中间有空行,则删除空行,不搜索。
代码见下:
  1. +c:: ;+ 表示Shift键。
  2. Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
  3. Sleep 100 ;等待100毫秒
  4. StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
  5. StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
  6. Result := RegExReplace(clipboard, "(*BSR_ANYCRLF)\R+", "`n") ;去除文本中的空行。不过发现无法删除最后一行
  7. if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
  8. ; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
  9. Loop,parse, Result, `n, ;循环解析剪贴板的内容,换行符是表示分隔的符号
  10. {
  11. myvar3 := Trim(A_LoopField, OmitChars=" `t") ;去除首尾的空格和tab
  12. myvar4 := StrLen(myvar3) ;取得该行的长度
  13. { if (myvar4)>0 ;长度大于0,表示不是空行
  14. { Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%A_LoopField%
  15. ; %A_LoopField% 表示每次解析得到的内容
  16. Sleep 20
  17. }
  18. else
  19. return
  20. }
  21. }
  22. else
  23. {
  24. Loop,parse, clipboard, `t`n, ;循环解析剪贴板的内容,tab和换行符是表示分隔的符号
  25. {
  26. Run %A_LoopField% ; %A_LoopField% 表示每次解析得到的内容
  27. Sleep 20
  28. }
  29. }
  30. return