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

How to change I/O scheduler in Linux

Updated@2015/12/15

为什么可能会去修改Linux I/O Scheduler (elevator)?以及什么是I/O Scheduler,应该如何为数据库系统选择合适的I/O Scheduler?可以参看以下文章。

那么如果我们确认要修改I/O scheduler,该如何进行? 参考 – How to change default I/O scheduler?

大体上来说就是,比如像修改I/O scheduler为dealine:

  1. 在RHEL4/OEL4中,修改/boot/grub/grub.conf文件,添加elevator=deadline,重启生效,比如:
    title Red Hat Enterprise Linux Server (2.6.18-8.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/vg0/lv0 elevator=deadline
    initrd /initrd-2.6.18-8.el5.img
  2. 在RHEL5/OEL5以及之后的版本中(比如RHEL6和RHEL7),可以针对每块磁盘制定I/O Scheduler,修改完毕立刻生效,比如:
    --当前是是noop
    # cat /sys/block/sda1/queue/scheduler 
    [noop] anticipatory deadline cfq
    --修改为deadline
    # echo 'deadline'>/sys/block/sda1/queue/scheduler 
    --立刻生效
    # cat /sys/block/sda1/queue/scheduler 
    noop anticipatory [deadline] cfq 

Mac之路(十)- How to Change Default Programs in Mac OS X Leopard

有时候我们想双击某个文件的时候默认用另外一个程序打开,比如在Mac中视频文件默认用Quicktime打开,想改成MPlayerX;图片文件默认用Preview打开,想改为Picasa。

Change default application in Mac OS X

很简单。
1. 在Finder中找到任何一个想改变默认打开方式的文件,选中文件,按苹果键+I(也可以点击File->Get Info)打开文件信息窗口。
2. 找到Open with项,在下面的下拉菜单中就是所有可以选择的程序,选择你希望默认打开的程序。
3. 记住要点击“Change All”按钮,否则改动只对当前文件有效,而不是对与该文件类型相同的所有文件有效。