星期二, 十二月 28, 2010

Goodby, Del.icio.us

新年将近,莫拉蒂忙着给国米球迷准备礼物,花点小钱送走贝秃;而Yahoo折腾地却是战略性地关闭网站(如果他们真的有战略)。美味的Del.icio.us看来保质期也不会太长了。所以,不得不说再见了,Goodby, Del.icio.us

delicious中,导出书签。

Delicious_Export

注册Zootool

Wallpaper 1440 x 900

在Settings的Sync页面中,导入先前从delicious中导出的htm文件。Zootool也提供了导出功能,可以将书签输出到浏览器,甚至重新导回到delicious中。

Zootool_Sync

导入完成后,将会收到邮件通知,并在Imported分类中看到所有导入的书签。

Zootool_Imported

而当你保存书签时,除了定义描述和标签之外,还可以将收藏分享到twitter和delicious等网络服务。

Zootool_Share

也就是说,我们在使用Zootool时,不但没有放弃delicious,而且增添了分享的便捷和悦目的体验。唯一的问题是,这网站会不会也被Yahoo收购呢?

星期日, 十二月 26, 2010

VIM学习笔记 比较文件(diff)

Vim通过调用外部的diff命令,可以对相似的文件进行比较。使用:help diff命令,可以查看关于比较文件的更多信息。

配置

在Windows系统下,请确认diff.exe已经存在于vim目录之下;并且在操作系统的PATH变量中,也包含了该目录:

diff

为了避免配色方案对比较结果显示效果的影响,我们可以在vimrc配置文件中,增加以下命令,以便在比较文件时使用默认的显示颜色:

au FilterWritePre * if &diff | colorscheme default | endif
if &diff
  colorscheme default
endif

比较

可以从命令行调用以下命令,来打开两个文件进行比较:

vim -d file1 file2

如果已经打开了文件file1,那么可以在Vim中用以下命令,再打开另一个文件file2进行比较:

:diffsplit file2

如果已经使用split打开了两个文件,那么可以分别在两个窗口里面输入以下命令,进行比较:

:diffthis

屏幕将被水平分隔,分别显示一个文件,其中不同的部分将被高亮显示。

  • 只在某一文件中存在的行,显示为蓝色
  • 而在另一文件中的对应位置的行,显示为绿色
  • 在两个文件中都存在的行,显示为紫色
  • 行中不相同的字符,显示为红色
  • 相同的行,没有高亮显示并且会被折叠。

如果想要垂直比较两个文件,可以使用以下命令:

:vert diffsplit file2

diff

折叠

使用zo命令,可以展开被折叠的相同的文本行;而zc命令,则可以重新折叠相同的行。

查看

比较文件时,经常需要结合上下文来确定最终要采取的操作。缺省情况下,是会把不同之处上下各6行的文本显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以使用以下命令:

:set diffopt=context:3

滚动

如果你在一个文件中滚动屏幕,那么另一个文件也会自动滚动以显示相同的位置。你可以使用以下命令,取消联动:

:set noscrollbind

使用以下命令,将重新绑定联动:

:set scrollbind

利用以下命令,可以定义滚动方式:

:set scrollopt ver,hor,jump

其中:选项ver ,启用垂直同步滚动;选项hor ,启用水平同步滚动;而jump 选项,则在切换窗口时,使垂直滚动始终同步。

如果光标停留在两个文件的不同位置,那么可以使用下面的命令同步滚动:

:syncbind

更新

如果更改了某个文件的内容,vim又没有自动更新diff检查,那么可以使用如下命令更新:

:diffupdate

跳转

你可以用[c命令;跳转到前一个不同点;或者用]c命令,跳转到后一个不同点。

命令小结
:diffsplit分隔窗并比较文件
:diffthis比较文件
:diffupdate更新比较结果
zo展开
zc折叠
[c跳转到前一个不同点
]c跳转到后一个不同点

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

星期二, 十二月 14, 2010

VIM学习笔记 缩写(Abbreviation)

利用:ab[breviate]缩写命令,我们可以用一个缩写来代替一组字符,此后只要输入缩写,就可以自动插入其代表的字符串以提高输入效率。

设置缩写

使用以下命令,将定义ad来代替advertisement:

:abbreviate ad advertisement

当想要输入advertisement时,只要输入ad,然后:

  • 如果按下Ctrl-]键,可以输入advertisement并停留在插入模式;
  • 如果按下Esc键,将插入扩展字符并返回命令模式;
  • 如果按下SpaceEnter键,那么将在插入扩展字符后,自动增加空格或回车,并停留在插入模式;。

不同模式下的缩写

使用下表中不同形式的abbreviate命令,可以针对特定的模式设置缩写:

Command
命令
Insert Only
插入模式
Command Line
命令行模式
:abbreviateyy
:iabbrevy
:cabbrevy

缩写实例

我们可以为多个单词设置缩写。例如以下命令,将设置Jack Berry的缩写为JB。

:abbreviate JB Jack Berry

如果你编写程序,那么利用以下设置,可以加快添加注释的速度:

:abbreviate #b /**********************

:abbreviate #e **********************/

如果你设计网页,那么利用以下缩写可以快速增加标签。其中<CR><LF>将在标签间自动插入换行,以方便你继续输入内容。

:iabbrev p <p><CR><LF></p>

利用以下命令,我们甚至还可以定位光标所处的位置:

:iabbrev icode <code class="inset">!cursor!</code><Esc>:call search('!cursor!','b')<CR>cf!

我们还可定义命令缩写。例如以下命令,将在新的标签页中显示帮助信息:

:cabbrev h tab h

我们可以将常用的缩写命令定义在vimrc配置文件之中,它们将在Vim启动时自动装载,而不需要再逐一重新定义。

查看缩写

abbreviate

使用:abbreviate命令,将列出所有缩写定义,其中第一列显示缩写的类型:

标记模式
!插入模式,命令行模式
i插入模式
c命令模式

取消缩写

可以使用以下命令,移除某个缩写:

:unabbreviate ad

针对不同模式下的缩写,需要使用与其相对应的unabbreviate命令。例如:使用:iunabbreviate命令,取消插入模式下的缩写,而:iabclear命令则会清除所有插入模式的缩写定义;依此类推,取消和清除命令行模式下的缩写,则需要使用:cunabbreviate:cabclear命令。

如果想要清除所有缩写,可以使用以下命令:

:abclear

命令小结
:abbreviate定义缩写
:unabbreviate取消缩写
:abclear清除所有缩写

Ver: 1.0<上一篇 | 目录 下一篇>

星期日, 十二月 12, 2010

从文字到语音 (TTS-Mac)

苹果早在1993年就为其电脑引入了文字到语音的合成能力,到了Mac OS X Jaguar和Panther两个发行版本,这种功能已经变得非常成熟和容易使用。

Text-to-Speech

如果你遇到某个单词不知道发音,或者希望用耳听代替疲劳的眼观,那么聪明的苹果电脑可以很轻松的帮助你。

Menu菜单

利用Mac内置的语音功能(这意味着你不需要再安装任何软件),在文本编辑器中,你可以利用上下文菜单选择“语音”和“开始朗读”来阅读整篇文字或选中的文字。

Text2Voice_TextEdit

Shortcut快捷键

如果你觉得从菜单中选择阅读还不够方便,那么可以设置快捷键来阅读文本。在“系统偏好设置”中,点击“语音”图标,选择“文本至语音”选项页,选中“按下按键时朗读所选文本”,在随后弹出的对话框中设置快捷键。按下设置的快捷键,Mac就将为你朗读选中的文本;再按一次快捷键就将终止朗读。

TTS_Options

如果你不喜欢默认的男声发间,那么还可以选择其它声音来为你朗读。Mac OS X Leopard共内置了24种语音,点击“系统嗓音”下拉列表,从男声Alex到女声Agnes,再到模拟机器人的Zarvox,你将获得丰富的选项。点击“朗读速率”滑块,你还可以降低和加快朗读速度。 进行设置之后,点击“播放”按钮,就可以收听到效果了。

Automator工作流

如果你还想保存语音文件,那么可以制作自己的工作流来自动完成。

注意:Mac OS X 10.6对Automator做了重大改进,操作方法也有很大不同。以下将分别介绍不同版本中的设置过程。

Snow Leopard10.6

  1. 打开Automator
  2. 选取“服务”模板;
  3. 增加“文本至音频文本”动作;
  4. 增加“导入音频文件”动作,选择使用“MP3编码器”,并勾选“编码后删除源文件”检查框;
  5. 选择“文件”菜单“存储”,在弹出的对话框中输入名称“选定文本到语音文件”;

Automator_1_Service

Automator_Service_2

现在应用程序(比如TextEdit或MacVim)中,选择想要朗读的文字;然后从服务菜单中,选择刚才设置完成的Automator;最后生成的语音文件将被自动加入到你的iTunes库中。

Automator_Service_2

Leopard10.5

  1. 打开Automator
  2. 增加“获得文本编辑文稿的内容”动作;
  3. 增加“文本至音频文件”动作;
  4. 增加“更改Finder项的名称”动作,在第一个下拉框中选择–使连续起来–,选择将数字添加至“现有项名称”,选择将数字添加至“名称之后”,选择分隔符为“破折号”;
  5. 增加“输入音频文件”动作,选择使用“AAC编码器”,并勾选“编码后删除源文件”检查框;
  6. 选择“文件”菜单“存储为插件...”,在弹出的对话框中输入名称“Text2Speech”,并选择插件用于“脚本菜单”

Text2Voice_Automator

Text2Voice_Automator_Save

现在用TextEdit打开你要朗读的.txt文件,然后从菜单的脚本图标调用你刚才设置完成的Automator。你将在菜单中看到Automator的执行状态,最后生成的语音文件将被自动加入到你的iTunes库中。

MenuBar_Script

Software软件

如果你还需要更丰富的功能和更简单的操作,那么在Mac下有很多免费软件可供你选择。比如CakeHole,她可以根据你输入的文字和选择的嗓音进行朗读,还可以将语音保存为AIFF文件。

CakeHole

附:AIFF(Audio Interchange File Format) 是在Mac系统中广泛使用的一种音频文件格式。1988年,由Apple公司在IFF(Interchange File Format)基础上开发,它以非压缩的方式存储音频数据,所以其文件尺寸远远大于压缩格式的音频文件。

Tags: , , , , ,

星期一, 十二月 06, 2010

VIM学习笔记 键盘映射 (Map)

设置键盘映射

使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来。例如使用以下命令,可以通过F5键将单词用花括号括起来:

:map <F5> i{ea}<Esc>

其中:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。

不同模式下的键盘映射

使用下表中不同形式的map命令,可以针对特定的模式设置键盘映射:

Command
命令
Normal
  常规模式  
Visual
可视化模式
Operator Pending
运算符模式
Insert Only
插入模式
Command Line
命令行模式
:map:noremapyyy
:nmap:nnoremapy
:vmap:vnoremapy
:omap:onoremapy
:map!:noremap!yy
:imap:inoremapy
:cmap:cnoremapy

Operator-pending模式,是指当你输入操作符(比如d)时,然后继续输入的移动步长和文本对象(dw)的状态。

第一列命令定义的映射,仍然可以被重新映射;第二列命令(包含noremap)定义的映射,是不可以被重新映射的。

键盘映射实例

使用以下命令,可以在Normal Mode和Visual/Select Mode下,利用Tab键和Shift-Tab键来缩进文本:

nmap <tab> V>
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv

使用以下命令,指定F10键来新建标签页:

:map <F10> <Esc>:tabnew<CR>

其中:<Esc>代表Escape键;<CR>代表Enter键;而功能键则用<F10>表示。首先进入命令行模式,然后执行新建标签页的:tabnew命令,最后返回常规模式。

同理:对于组合键,可以用<C-Esc>代表Ctrl-Esc;使用<S-F1>表示Shift-F1。对于Mac用户,可以使用<D>代表Command键。

注意:Alt键可以使用<M-key>或<A-key>来表示。

关于键盘符号的详细说明,请使用:h key-notation命令查看帮助信息。

查看键盘映射

map

使用:map命令,可以列出所有键盘映射。其中第一列标明了映射在哪种模式下工作:

标记模式
<space>常规模式,可视化模式,运算符模式
n常规模式
v可视化模式
o运算符模式
!插入模式,命令行模式
i插入模式
c命令模式

使用下表中不同形式的map命令(不带任何参数),可以列出针对特定模式设置的键盘映射:

Command
命令
Normal
  常规模式  
Visual
可视化模式
Operator Pending
运算符模式
Insert Only
插入模式
Command Line
命令行模式
:mapyyy
:nmapy
:vmapy
:omapy
:map!yy
:imapy
:cmapy

取消键盘映射

如果想要取消一个映射,可以使用以下命令:

:unmap <F10>

注意:必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。

针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:iunmap命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:nunmap命令。

Command
命令
Normal
  常规模式  
Visual
可视化模式
Operator Pending
运算符模式
Insert Only
插入模式
Command Line
命令行模式
:unmapyyy
:nunmapy
:vunmapy
:ounmapy
:unmap!yy
:iunmapy
:cunmapy

可以使用以下命令,取消所有映射。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。

:mapclear

Ver: 1.0<上一篇 | 目录 下一篇>