2012年1月31日星期二

用 Vim 来编辑 Google Docs 文档吧

感谢读者 Claud Xiao 的投递。

原文地址:http://www.iclaud.net/2010/06/edit_google_docs_by_vim/

一、为什么要这么做?
Google Docs文档保存在云端,具有比本地更高的安全性和可用性,也便于共享与协作。但它采用基于浏览器的所见即所得编辑器,编辑过程中鼠标操作较为频繁。因此可以采用本文的方法,实现使用Vim创建和编辑Google Docs文档。

二、实现方法
以下操作环境为Ubuntu 8.10或更新版本。其他系统,包括Linux、Unix、Windows、Mac,请参考文中两个主要工具的相关文档。

安装Python,版本至少为2.4.3
sudo apt-get install python
安装gdata-python-client,项目地址是http://code.google.com/p/gdata-python-client/
下载gdata-2.0.10.tar.gz
解压缩:tar xzvf gdata-2.0.10.tar.gz,进入该目录:cd gdata-2.0.10
安装:sudo python setup.py install,如果遇到问题,请查看INSTALL.txt文件
更新$PYTHONPATH到bash配置文件
vim ~/.bashrc
添加:PYTHONPATH=$PYTHONPATH:/home/claud/source/gdata-2.0.10/src/
(这里假设gz文件被解压缩到/home/claud/sourc/目录)
重新载入配置文件:source ~/.bashrc
测试gdata-python-client
运行./test/run_all_tests.py,如果所有输出都是OK,则测试通过,否则重新检查前面步骤是否正确
安装GoogleCL,项目地址是http://code.google.com/p/googlecl/
下载googlecl_0.9.5-1_all.deb
安装:sudo debi googlecl*.deb
第一次使用
命令行输入:google docs edit –title “Test GoogleCL” –editor vim
根据提示输入google账户名
得到一个URL,使用浏览器将其打开,登录google账户,并为本项使用授权
回到命令行,按回车
进入vim,开始编辑
编辑完成后,:wq保存退出,等待编辑内容更新到服务器,重新显示$提示符,即完成
三、FAQ
为什么要手工安装gdata-python-client?
在Ubuntu下, googlecl_0.9.5-1_all.deb依赖的gdata-python-client版本为1.2,而docs功能需要gdata-python-client 2.0作为支持。因此仅仅通过Ubuntu软件包管理器进行依赖检查和自动安装是不够的。

为什么运行“google *”命令后,出现“Editing documents is not supported for gdata-python-client < 2.0”错误提示?
有两种原因可能导致这一错误 :

gdata-python-client未安装或版本过低,请参考前一条FAQ;
$PYTHONPATH未正确配置,请参考安装步骤第3步,并保证第4步测试正常通过。
四、其他Google服务

在安装完GoogleCL后,实际上我们获得了通过命令行使用大部分google服务的能力。例如:

Blogger发表博文:google blogger post –title “foo” “command line posting”
Calendar添加行程:google calendar add “Lunch with Jim at noon tomorrow”
Contacts导出联系人:google contacts list name,email > contacts.csv
Docs编辑文档:google docs edit –title “Shopping list” –editor vim
Picasa批量上传照片:google picasa create –album “Cat Photos” ~/photos/cats/*.jpg
Youtube发布视频:google youtube post –category Education killer_robots.avi
具体的使用方法请参考:http://code.google.com/p/googlecl/wiki/ExampleScripts

此外,gdata-python-client提供了各种Google数据API接口,可以基于此根据自己的需求进行应用程序的开发。

没有评论:

发表评论