Make a perfect terminal experience from zero in 3 steps

Step1 – 确认已经在使用 zsh

kamus@Kamus-MBP-2015 ~ % echo $SHELL
/bin/zsh

如果不是,安装zsh并设置成默认shell

brew install zsh
chsh

Step2 – 安装必须的字体

因为我们期望在终端中可以显示丰富的图标,因此需要Nerd Font,可以从这个页面中挑选自己喜欢的字体

https://github.com/ryanoasis/nerd-fonts

我个人很喜欢Sauce Code Pro这款。

Sauce Code Pro Nerd Font Complete.ttf

Configure your terminal to use this font: Sauce Code Pro Nerd Font

当然也可以选择本文要介绍的zsh4humans以及神级zsh样式powerlevel10k的原作者Roman Perepelitsa推荐的MesloLGS NF。

https://github.com/romkatv/powerlevel10k/blob/master/font.md

Configure your terminal to use this font: MesloLGS NF

Step3 – 安装zsh4humans

https://github.com/romkatv/zsh4humans

if command -v curl >/dev/null 2>&1; then
sh -c “$(curl -fsSL https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)”
else
sh -c “$(wget -O- https://raw.githubusercontent.com/romkatv/zsh4humans/v5/install)”
fi

z4h不但内置了powerlevel10k的配置,而且自身还实现了很多ohmyzsh的插件功能,因此使用了z4h之后就不再需要单独进行onmyzsh的安装和配置,非常方便。

z4h在安装的同时也会拉取一份最新的ohmyzsh,如果确实需要修改z4h的默认配置而要加载更多ohmyzsh的插件,可以在~/.zshrc中进行修改。参看“z4h load ”部分的例子,可以自行加载需要的ohmyzsh包含的插件。

比如如果你更喜欢用autojump,而不是用z4h内置的fzf来进行历史目录的快速跳转;比如你喜欢sudo插件,双击ESC键就可以在上一条命令的前面加上sudo,可以通过在~/.zshrc文件中增加如下行来加载这些插件。

z4h load ohmyzsh/ohmyzsh/plugins/autojump
z4h load ohmyzsh/ohmyzsh/plugins/sudo

注意:以上的autojump仅仅是for zsh的插件,本体程序autojump还是要通过brew install autojump来安装的。

GitHub – wting/autojump: A cd command that learns – easily navigate directories from the command line

实际上根据z4h作者的说法,有很大用处的插件或者功能都基本上已经内置到z4h里了,比如对于上述的autojump功能,z4h内置了fzf,默认的快捷键是Alt(Option)+r,按一下有惊喜。同时还内置了Shift+左箭头快速跳转到之前的目录;Shift+上箭头快速跳转到父目录等快捷键。这些快捷键的设置在.zshrc中可以找到。

# Define key bindings.
z4h bindkey undo Ctrl+/ Shift+Tab # undo the last command line change
z4h bindkey redo Option+/ # redo the last undone command line change

z4h bindkey z4h-cd-back Shift+Left # cd into the previous directory
z4h bindkey z4h-cd-forward Shift+Right # cd into the next directory
z4h bindkey z4h-cd-up Shift+Up # cd into the parent directory
z4h bindkey z4h-cd-down Shift+Down # cd into a child directory

后续如果需要,可以执行一条命令就更新z4h

❯ z4h update
z4h: fetching z4h.zsh
z4h: updating zsh4humans
z4h: updating zsh-history-substring-search
z4h: updating zsh-autosuggestions
z4h: updating zsh-completions
z4h: updating zsh-syntax-highlighting
z4h: updating terminfo
z4h: updating fzf
z4h: updating fzf binary
z4h: updating tmux
z4h: updating ohmyzsh/ohmyzsh
z4h: updating powerlevel10k
z4h: updating gitstatus binary
z4h: initializing zsh
z4h: update successful
z4h: restarting zsh

如何在MarsEdit中使用Markdown编写文章

一直在寻找一个适合编写完毕以后直接发布到Wordpress中,同时又能完美支持Markdown语法的工具,尝试过Ulysess还有Typora,Ulysess本身对于Markdown的支持很奇怪,当粘贴的代码中有一些Markdown语法的关键字时,会出现很难编辑的情况;而Typora本身确实是很好的Markdown编辑器,但是无法直接将本地编写的文章一键发布到Wordpress中是致命弱点。

Setapp中近期引入了MarsEdit,这是一个较为著名的Blog编写工具,一键发布到Wordpress中是这类工具的标准功能,而稍作配置之后,又可以完美支持Markdown语法。

设置MarsEdit

首先需要设置MarsEdit
NewImage

NewImage

设置Wordpress

还需要设置Wordpress。在Wordpress中首先先安装Jetpack插件,实际上Jetpack已经基本上变为Wordpress的标准插件了。
在Jetpack插件的设置界面,将“使用Markdown语法编写纯文本文章”的选项勾上。
NewImage

用MarsEdit编写文章的优点

在MarsEdit中可以混用HTML和Markdown标志来编写文章,因此一些容易记忆的Markdown语法,比如标题,这是我最常用的Markdown语法,没有之一。比如代码块,对于写技术文章的人来说,代码块是非常方便的。

Markdown示例

以下是代码块的例子。

package main

import (
    "fmt"
    "database/sql"
    _ "gopkg.in/goracle.v2"

How to Use Port in Mac OS X to Install New Utilities

假设我们想要在Mac OS X中安装:
MySQL,这是一个开源的免费的数据库,当然备Oracle收购之后有一些变化。
postgreSQL,这又是另外一个开源的免费的数据库。
perl,这是一种流行的编程语言。
lua,这又是另外一种流行的编程语言。
watch,这是一个实用程序,可以默认每隔2秒重复执行某条命令,比如你想监控一个目录下的文件生成情况,这条命令就很有用。
tree,这是一个实用程序,可以提供类似于ls -R的功能,但是输出是更加直观的树状结构。

当然,我们可以在网络中一个一个地找这些程序,然后一个一个地安装,用不同的安装方法,但是,你也可以选择非常简单的方法,这就是本文要介绍的MacPorts。

在Linux中如果我们要安装一些软件,要解决各个软件之间的包依赖性关系,我们会使用到apt-get(Ubuntu)或者yum(Redhat,CentOS)或者zypper(openSUSE),如果你熟悉一些Linux的话,对于这些软件包管理程序应该有所耳闻。而MacPorts正是在Mac OS X上的软件包管理程序。

安装MacPorts最简单的方法是直接下载dmg文件,双击安装 - Lion版安装文件 | Snow Leopard版安装文件

MacPorts安装完以后,我们就可以通过命令行的方式来安装其它软件了,可以参看具体命令文档。以下列出常用的命令:

1. 更新本地软件库列表,该命令可以不定时多次执行(sudo以后需要输入密码,输入你自己用户的密码即可)。

sudo port selfupdate

2. 列出软件库中有哪些软件,注意,该命令会输出大量软件名称,因此建议添加more来查看,或者使用后面的search命令。

port list | more

3. 检索需要安装的软件。

port search 

当然,还有更精确地搜索,比如如果直接port search tree会出现上百个结果,但是如果执行以下命令,就只会出现一个结果。

$ port search --name --exact tree
tree @1.6.0 (sysutils)
    display tree-view of directories with optional color/HTML output

4. 列出已经通过port安装的软件。

port installed

5. 安装软件,一些具有依赖性的软件会连带自动安装,比如安装LUA,会安装ncurses和readline。

sudo port install 

6. 卸载软件。

sudo port uninstall 

7. 清理未成功安装的软件,比如一些软件由于编译问题或者其它原因没有安装成功。

sudo port clean --all 

8. 查看安装的软件都安装了哪些内容。

port contents 

比如查看tree都安装了哪些内容。

$ port contents tree
Port tree contains:
  /opt/local/bin/tree
  /opt/local/share/doc/tree/CHANGES
  /opt/local/share/doc/tree/LICENSE
  /opt/local/share/doc/tree/README
  /opt/local/share/man/man1/tree.1.gz

9. 升级当前安装过的软件。

sudo port upgrade 

升级全部有新版本的软件。升级以后将会保留以前的旧版本,只是将旧版本设置为Inactive。

sudo port upgrade outdated

当确认新版本软件工作正常以后,可以通过以下命令删除所有旧版本软件。

sudo port uninstall inactive

或者通过以下命令,删除指定的旧版本软件。

sudo port uninstall makedepend @1.0.2_0

如果想在升级的时候就直接删除旧版本软件,可以在upgrade时使用-u参数。

sudo port -u upgrade 

10. Troubleshooting
由于MacPorts与Xcode联系紧密,因此如果在升级完操作系统(比如从10.8升级到10.9),可能之前运行正常的MacPorts就无法使用了,比如出现以下报错。

localhost:~ Kamus$ sudo port selfupdate

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed
localhost:~ Kamus$ sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed

解决方法是将Xcode的Command Line Tools再安装一遍,通过以下方法。

$ sudo xcode-select --install

然后再运行port命令就功能正常了。

localhost:~ Kamus$ sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl


The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated

VMware and scsi_id

VMware Fusion中测试Cent OS 6中的udev功能时,发现scsi_id命令无法返回设备的SCSI ID。

# fdisk -l /dev/sdb

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

这个问题在Oracle VirtualBox中并不会出现,当然并不是说VirtualBox就比VMware好,作为Mac中的原生app,VMware Fusion确实要比VirtualBox美观,但是在功能上而言,VirtualBox毫不逊色,而且VirtualBox是免费的,所以如果要在自己的台式机或者笔记本中测试虚拟机,仍然强烈推荐使用VirtualBox。

言归正传,如何修改VMware Fusion,让其可以提供正确的设备SCSI ID呢?参考文章是:
The Case of VMware and the missing SCSI ID

方法如下:
1. 在虚拟机关闭以后,进入虚拟机的目录

2. 用文本编辑器修改vmx文件

$ ls *vmx
[ VMplanet ] CentOS 6.0.vmx
$ vi "[ VMplanet ] CentOS 6.0.vmx"

3. 在vmx文件中任意位置(通常在最后)添加如下行:

disk.EnableUUID = "TRUE"

4. 重新启动虚拟机,此时可以正确获取SCSI ID

#/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
36000c29577b5db74013db535e0155e01

注意:在手工修改完vmx文件以后,如果再进行任何虚拟机的设置,比如添加磁盘,修改网卡类型或者其它的操作,disk.EnableUUID参数又会重置为FALSE,所以每次进行虚拟机设置以后,都需要手工再次修改该参数。当然重启虚拟机,或者虚拟机内Guest操作系统中的任何操作,都不会重置该参数。

How to using Quick Look to view SQL scripts in Mac OS X

Update@2021-11-06

直接安装SourceCodeSyntaxHighlight,可以完美解决该问题,而且还增加了代码高亮。

===以下所有内容可以不再关注===

在开始本文之前,先介绍两个与本文毫无关系但是很酷的QuickLook插件。
Zip Quick Look Plugin - 直接在QuickLook中查看zip包中的内容。
Folder Quick Look Plugin - 直接在QuickLook中查看文件夹的内容。

Mac OS X的Quick Look是很强大的功能。在Finder中高亮需要查看的文件,然后按空格键就可以在弹出的新窗口中直接预览该文件的内容,支持几乎所有需要预览的文件类型,比如txt文本,pdf,微软office文档,苹果iWork文档,可以用Quicktime播放的视频等等。

但是正如Apple的很多产品一样,预置的功能已经很好,但是却几乎不给使用者任何调整的方法,比如在我的机器里有很多.sql扩展名的SQL脚本文件,我很想能够用Quick Look来快速查看,但是在Mac OS X中天生的Quick Look是不支持快速预览sql文件的,并且没有给于任何选项来将某些文件类型加入到Quick Look中。

在默认情况下,用Quick Look打开SQL脚本,将仅仅显示如下文件信息窗口。我个人的系统设置是如果双击SQL脚本,则用TextWrangler打开,因此这里显示为“TextWrangler text document”。

我们需要手工修改一些文件,来让Quick Look也可以直接预览SQL脚本。

  1. 修改Info.plist文件,在我的例子中是修改TextWrangler的plist文件,如果你选择不同的应用程序打开SQL脚本,那么需要修改相应程序的plist。
vi /Applications/TextWrangler.app/Contents/Info.plist

在最后这两行的前面:

</dict>
</plist>

添加下面这些内容:

<key>UTExportedTypeDeclarations</key>
<array>
<dict>
  <key>UTTypeConformsTo</key>
  <array>
    <string>public.text</string>
    <string>public.plain-text</string>
  </array>
  <key>UTTypeDescription</key>
  <string>SQL Script file</string>
  <key>UTTypeIdentifier</key>
  <string>com.barebones.textwrangler</string>
  <key>UTTypeTagSpecification</key>
  <dict>
    <key>com.apple.ostype</key>
    <string>TEXT</string>
    <key>public.filename-extension</key>
    <array>
      <string>sql</string>
    </array>
  </dict>
</dict>
</array>

其中com.barebones.textwrangler可能需要改成你使用的应用名称,比如TextMate则是com.macromates.textmate,VSCode则是com.microsoft.VSCode,通常这个名字可以在plist文件的前面部分找到。

  1. 使改动生效
touch /Applications/TextWrangler.app

然后再次使用Quick Look就可以直接查看SQL脚本内容了。

参考文档:
Add Quick Look support for certain file formats

Sync Twitter to Sina/QQ/Fanfou etc. with tw2other Step by Step

Update@2011-06-05
对于使用了以前版本(Tw2other Version 0.90.2及以前版本)的tw2other,需要更新到新版本(编写本文时最新版本为Tw2other Version 0.92)的朋友,请注意以下几点。
1. 请将以前目录中的tweet.id文件copy到新版目录中,否则配置完毕以后,tw2other会重新同步以前已经同步过的推文,导致新浪微博等同步站点产生刷屏。
2. config.php文件有了一些改动,建议使用新版的config-sample.php文件,将以前的内容再重新修改一遍。
3. 不要忘记修改新版的cron.php,填入tw2other的Web访问URL。
4. 需要在浏览器里面访问一次tw2other/sina和tw2other/qq,完成这两个微博的OAuth验证。如果之前已经做过腾讯微博OAuth认证,确认原来的oauth目录还在,那么就无需再次访问tw2other/qq来获取认证。

正文修改版@2011-06-05

本文中某些链接需要翻墙才能访问,不过在现在这个社会,不会翻墙应该都不好意思跟人打招呼吧。

如果你觉得本文有用,请在twitter中fo @cluries,他是本文中主角tw2other的作者,当然fo我@kamusis也很欢迎。

需求:
Twitter使用者,但是鉴于某些需要交流的朋友仍然定居在新浪微博/腾讯微博/饭否等国内微博站点的,希望能够通过某种方法将Twitter上的推文自动同步到这些国内微博中。

前提条件:
1. 有一个在墙外的支持php的虚拟主机,这是最方便的,比如Dreamhost/Linode。
2. 有Twitter帐号
3. 有你想要同步的国内微博帐号

步骤:
1. 下载Tw2other:主页下载地址

2. 将zip文件上传到虚拟主机的某个目录中,该目录应该可以在Web上被访问到,解压,会生成Tw2other目录。

3. 注册Twitter OAuth App
登录Twitter Dev站点。
选择Register an Application。
Application Name随意填写,最好比较特别一些,保证和其他人不重复。
Application Type选择默认的Browser。
Callback URL填写可以在Web访问的tw2other中callback.php的地址,比如http://yourdomain/Tw2other/callback.php。(注意:默认解压出来的目录是Tw2other,不是tw2other,大小写敏感的)
Default Access type选择Read & Write。
提交并成功以后,在新页面会显示Settings信息,其中Consumer keyConsumer secret在后面的配置中会用到,请记好。

4. 如果要同步到新浪微博,需要注册新浪微博API,如果不需要同步到新浪微博,可以跳过此步。
点击此处申请新浪微博AppKey。
申请完毕以后,需要创建一个新App。基本上与申请Twitter App的界面很像。我的设置参看下图。
Create Sina Weibo App

注册完毕以后,在应用状态页面可以看到App Key,在后面的配置中会用到,请记好。

Update@2011-06-05:在Tw2other 0.92版本以后,还将使用到App Secret。

5. 修改Tw2other配置
将config-sample.php改名为config.php。修改config.php中的以下项:

//注意,在Twitter注册Application的时候,Application Type这一项要选中Browser 
define ( 'CONSUMER_KEY', '此处填入上面注册的Twitter OAuth App的Consumer key' );
define ( 'CONSUMER_SECRET', '此处填入上面注册的Twitter OAuth App的Consumer secret' );

//填写tw2other的url,注意目录的大小写 。
define ( 'TW2OTHER_URL', '此处填入tw2other的URL比如http://yourdomain/Tw2other/' );

//填写为你自己申请的SINA API KEY和API Secret
define ( 'SINA_API_KEY', '此处填入上面注册的新浪微博 App的AppKey' );
define ( 'SINA_API_SECRET', '此处填入上面注册的新浪微博 App的AppSecret');

填入自己的新浪微博用户名和密码

Update@2011-06-05:在Tw2other 0.92版本以后,由于同步新浪微博也使用OAuth认证,因此不再需要在config.php中再填入新浪微博的用户名和密码了。但是需要如5.1中描述完成OAuth验证

5.1 完成新浪微博OAuth验证
在浏览器里访问tw2other下的sina目录,比如:http://yourdomain/Tw2other/sina/,跟随页面提示,将会带你去新浪完成认证。

6. 授权tw2other访问Twitter
在浏览器里面访问tw2other,就是访问在config.php中定义的TW2OTHER_URL。打开页面如下图。
tw2other

点击“Sign in with Twitter”,进入twitter授权页面,这个页面大家应该很熟悉了,点击“Allow”就OK了。
Twitter authoriza

7. 如果要同步到腾讯微博,那么需要使用腾讯OAuth,不同步到腾讯微博的,跳过这步。
在浏览器里面访问tw2other下的qq目录,比如:http://yourdomain/Tw2other/qq/
认证方式跟上一步认证twitter相仿,不再赘述。

在完成了twitter,新浪微博,腾讯微博三个OAuth认证以后,在oauth目录中将存在以下三个文件。该目录通常在tw2other目录的上两层目录中,../../oauth/,由config.php中的OAUTH_DIR参数定义。

$ ls -l
total 12
-rw-r--r-- 1 wiskyorg pg480077 218 2011-03-21 00:34 tw2other.oauth
-rw-r--r-- 1 wiskyorg pg480077 156 2011-06-05 08:58 tw2other_qq.oauth
-rw-r--r-- 1 wiskyorg pg480077 163 2011-06-05 08:47 tw2other_sina.oauth

8. 如果要同步到饭否,需要修改config.php,不同步饭否的,跳过此步。
填入自己的饭否用户名和密码:

"fanfou" => array ('username' => 'your_username', 'password' => 'your_password'

9. 其他还可以同步的微博包括嘀咕,豆瓣,follow5等都是需要修改config.php,填入用户名密码即可。

10. 最后一步,也是最重要的一步,需要设置tw2other被定期调用,这样才能完成定期同步的功能。
修改tw2other下的cron.php文件,填入tw2other的Web访问URL。

$url = "http://yourdomain/Tw2other/index.php";

修改完毕的cron.php文件必须被某种机制定期调用,才能完成定期同步的功能,在Linux主机中通常通过crontab来完成。

一般带cPanel的主机都自带crontab job设置界面,但是在Dreamhost的cPanel界面中设置只能最小设置到10分钟运行一次程序,这不满足我们的需求,我们想1分钟同步一次,而Dreamhost是支持ssh登录的,因此可以直接在命令行中设置。

在任意目录中创建crontab.tw文件,文件名随意,文件内容如下。

$ cat crontab.tw
# tw2other
MAILTO="your_mail_address"
*/1 * * * * /usr/local/bin/php /yourdirectory/Tw2other/cron.php

然后执行以下命令,将cron配置更新到crontab中。

$ crontab crontab.tw

在配置到crontab中之前,可以手工执行/usr/local/bin/php /yourdirectory/Tw2other/cron.php这个命令,看看是否能够同步成功。

注意:其中的MAILTO表示每次cron执行以后都会将结果发送到指定邮件地址,这是为了在一开始测试使用,在tw2other功能正常以后,将此行删除,否则每分钟收到一封邮件很恐怖。
在收到的邮件里,邮件内容是no update或者Can’t update now!都是正常的,前者表示没有需要同步的内容,后者表示在指定的间隔时间内多次更新了,tw2other的默认更新时间间隔是50秒,由config.php中的INTERVAL变量控制,通常我们会保持默认值50秒不变。

至此,整个tw2other算是设置完毕。

更多的资源请访问:tw2other主页 | 作者cluries主页 | 作者cluries Twitter ID

Using Safari5 Reader for Reading Technical Posts

最新Release的Mac下的浏览器Safari5除了全面支持HTML5之外,还有一个着重提到的功能就是Reader。

关于Reader的赞美之辞可以参看《改变阅读习惯的Safari 5阅读器》

那么实际上Reader对于我个人的用处是在浏览DBAsupport.com站点的文章,此站点文章质量较高而且还时常出现不少新奇有趣的文章。但是这个站点恼人的地方在于:1.在Google Reader中无法看到全文 2.在站点上直接浏览文章的话要承受大量的广告。

比如原站点中的文章大概看上去是这样五颜六色的。

使用了Safari5 Reader以后,变成了一篇白底黑字的清爽文章。

但是目前这个版本的Reader仍然有需要改进的地方,特别是对于可能会有大量代码的技术文章,那些代码在原文中有rss格式化,但是Reader转换以后格式就不正确了,这样会导致较长的代码有一部分无法看到。

仍然是上面这片技术文章。原文中的格式如下图,虽然也不尽美观,但是注意那些小字体的部分,至少可以看到全部文字。

而在Reader中最后超出页面的那些文字都无法看到了,而且似乎是苹果太在意用户阅读体验了,甚至连横向的滚动栏也没有。是的,我知道Reader中的字体可以缩小,但是即使缩到最小也仍然有一部分在页面之外。

Hope will be fixed soon.

How to Install older extention for Firefox 3.5

Firefox已经升级到最新的3.5版本,暂且不论是不是启动速度和页面渲染都变快(实际上我并没有感觉出来 Orz),以前可以使用的一些扩展如果作者没有及时更新的话,在新版本下就无法安装了。

比如Scrapbook这样优秀的扩展,如果无法使用的话简直是一种折磨。

通过以下的方法可以将旧版本的扩展从Mozilla Addons的官方网站上直接安装到Firefox 3.5中。

1. 安装MR Tech Toolkit扩展,该扩展除了自己的强大功能之外,还可以允许其它扩展安装的时候,跳过版本验证步骤。安装完毕以后,将该扩展功能选项中“Enable AddOn Compatibility Checking”之前的勾取消,如下图。

2. 在Mozilla Addons站点注册一个免费的用户,登录之后,才可以在安装扩展的页面上看到“Ignore version check”这样的字样,点击它,本来不允许安装的按钮将变为绿色的“Add to Firefox”。如下图。

3. 像之前一样安装,然后重启Firefox,就可以正常使用扩展了。