用Vim(gVim)发腾讯微博-weibo.vim
Published on 十二月 8, 2011
前言:
- 好久没写Vim插件了,这次给Vimer们带来个好福利!-- 用Vim(gVim)发腾讯微博
- 昨晚折腾了大半夜,总算成功实现!~~ 当然,代价就是今天头痛的厉害……
昨天突发奇想,当我用vim读文档,看代码的时候,如果有一段我觉得特别好,想要分享给大家,有没有快捷点的方式呢?
所以需求也就来了,在Vim里面分享内容~而目前用的最广的,自然是微博~(由于笔者只用腾讯微博,所以只实现了腾讯微博……)
细化一下功能:
- 分享文章中的一段文字,并支持评论
- 直接发送微博
如果你读这篇文章比较早,应该还能看到页面右侧的微博里有这条微博:
花了一晚上,终于把用vim发腾讯微博给折腾出来了,明天写博客跟大家分享,敬请期待! 来自weibo.vim
在正式开始介绍之前,声明一下:
- 文中所使用的QQ登录的API均为对外公开的API,不存在任何使用保密API的问题
- 笔者是用 vimer.cn 来申请了 QQ登录,但是access_token在生成之后,笔者不会对这个信息做任何保存,如果有所怀疑,请不要使用。
- weibo.vim插件本身不会主动发起任何发送微博的操作
OK,废话不多说,开始介绍吧
一. 环境依赖
- python
二. 安装
- 去 http://www.vim.org/scripts/script.php?script_id=3839 下载 weibo.vim
- 将 weibo.vim 放在 plugin目录
三. 配置
目前支持的配置如下:
- g:weibo_access_token oauth2.0的access_token,是由QQ登录提供的授权token,貌似过期时间是1个月。后面会写出获取这个token的方法。
- g:weibo_access_token 签名档,默认值是“来自weibo.vim”,如果不喜欢可以配置为空
在_vimrc中配置:
1 | let g:weibo_access_token = '第四步会生成的access_token' |
四. 生成access_token
- 点击如下链接:
- 在进行QQ登录之后,会跳转到类似如下链接:
- 将其配置到第二步的g:weibo_access_token中。
http://www.vimer.cn/#access_token=4E6421B8719124324217AF48E085F&expires_in=7776000
其中access_token=后面的即要获取的access_token。
如果在使用中,提示 access_token 过期的话,只要按照上面的步骤重新申请一遍即可。
五. 命令
- 分享选中的的文字
- 直接发送微博
选中要分享的文字后,按下 “,at”, 如果不需要写评论,则直接回车;如果需要评论,则输入空格后,输入评论,回车。
在normal模式下,直接按下 “,at”, 输入空格后,输入文字,回车。
OK,就是这样,enjoy it!
最后再贴一下下载地址:
http://www.vim.org/scripts/script.php?script_id=3839
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=2433
弄个新浪的吧,新浪的也有python接口
[回复]
Dante 回复:
十二月 8th, 2011 at 9:06 下午
嗯,近期考虑支持。
[回复]
helloxyz 回复:
三月 8th, 2012 at 2:09 上午
弄个twitter的才对
[回复]
Dante 回复:
三月 9th, 2012 at 4:26 下午
vim.org已经有了的。
[回复]
youanan 回复:
四月 6th, 2012 at 11:01 下午
哦,去找找看!
[回复]
发表失败! 可能原因为: access_token无效或者过期、网络有问题
按步骤四重新生成还是有问题
[回复]
Dante 回复:
十二月 9th, 2011 at 11:14 上午
没道理呀,把插件113行的注释打开
#print 'exception occur.msg[%s], traceback[%s]' % (str(e), __import__('traceback').format_exc())看一下详细错误?
[回复]
ieipi 回复:
十二月 9th, 2011 at 11:21 上午
exception occur.msg['openid'], traceback[Traceback (most recent call last):
File "", line 70, in handle_add_t
File "", line 48, in api_get_openid
KeyError: 'openid'
]
发表失败! 可能原因为: access_token无效或者过期、网络有问题
帮忙分析下吧
[回复]
Dante 回复:
十二月 9th, 2011 at 11:26 上午
貌似是access_token无效,导致没有换取成功的openid,可否打印一下82行的data?
[回复]
ieipi 回复:
十二月 9th, 2011 at 11:35 上午
是直接用print data吗?
callback( {“error”:100016,”error_description”:”access token check failed”} );
exception occur.msg['openid'], traceback[Traceback (most recent call last):
File "", line 72, in handle_add_t
File "", line 50, in api_get_openid
KeyError: 'openid'
]
发表失败! 可能原因为: access_token无效或者过期、网络有问题
[回复]
Dante 回复:
十二月 9th, 2011 at 11:40 上午
就是access_token的问题哦。。
[回复]
ieipi 回复:
十二月 9th, 2011 at 11:42 上午
那该咋整呢
[回复]
Dante 回复:
十二月 9th, 2011 at 11:55 上午
生成的方法是按照文中说的吗??
[回复]
Dante 回复:
十二月 9th, 2011 at 11:56 上午
你不会直接用的这个token把?
4E6421B8719124324217AF48E085F
[回复]
ieipi 回复:
十二月 9th, 2011 at 12:04 下午
我错了
我把后面的&expires_in=7776000也一起拷贝过去了
[回复]
Dante 回复:
十二月 9th, 2011 at 1:11 下午
汗。。。
[回复]
进来直接看到插件名字,就以为是weibo.com的插件,汗。
刚才试了下,登录跳转的时候没有出气那token链接,不知道是啥问题。
如果下次出了新浪微博的插件,不知道该叫什么名字好了。
[回复]
Dante 回复:
十二月 12th, 2011 at 5:31 下午
特意试了一下,可以出token呀。。
呃,说起来我很期待一个和我一样骨灰的vimer,特意写一个新浪微博的版本。。
[回复]
vimest 回复:
十二月 15th, 2011 at 12:06 下午
可能是浏览器的问题吧,我用的opera。
[回复]
vimest 回复:
十二月 15th, 2011 at 12:11 下午
刚刚又试了下,还是没有。但实际是有的。在用firebug看的时候会有请求,第二次的时候就速度复制下来了,嘿嘿。
[回复]
Dante 回复:
十二月 15th, 2011 at 12:13 下午
哈哈,标准程序员风格~~ 咱博客就喜欢这样的~~
[回复]
vimest 回复:
十二月 15th, 2011 at 12:56 下午
我也喜欢这样的,哈哈,可是我不喜欢男的。
[回复]
Dante 回复:
十二月 15th, 2011 at 12:58 下午
哈哈哈哈~~~
[回复]
vimest 回复:
十二月 15th, 2011 at 1:13 下午
HOHOHOHO~~~
[回复]
获取token直接就跳你博客首页了,看都没看清楚。
还有,你不会把跳过来的accessToken都保存了吧。
[回复]
Dante 回复:
十二月 14th, 2011 at 4:24 下午
关于token怎么获取,请仔细看文章。
关于token是否保存,如果有所怀疑,请不要使用。
原文引用:
笔者是用 vimer.cn 来申请了 QQ登录,但是access_token在生成之后,笔者不会对这个信息做任何保存,如果有所怀疑,请不要使用。
[回复]
能不能把access_key改成新浪那边的呢,然后就发新浪微博了,能实现么?
[回复]
Dante 回复:
十二月 16th, 2011 at 9:56 上午
这个做不到。
新浪那边有自己的权限控制,而且发微博的链接也都不一样。
[回复]
有了这插件我放弃了新浪微博了。
[回复]
zdl1016 回复:
一月 2nd, 2012 at 11:18 下午
dante, 你给腾讯微博挖了不少客户。应该授予你奖章。
[回复]
很神奇的样子
[回复]
中文编码似乎有点问题?发送出去是乱码……gVim的$LANG和langmenu都设成en_US.UTF-8了
[回复]
很精彩的文章!支持一下。
[回复]
来顶博主了。
[回复]
我用类似vim快捷键做一个客户端。可以试一下。
[回复]
Dante 回复:
一月 9th, 2012 at 7:55 下午
嗯? 链接是?
[回复]
别的都会就是那修正pythony不太懂,因为现在没有接触过python,望博主能告诉如何解决,现在的情况是打开vim提示无法加载python27.dll,此命令不可用,
[回复]
Dante 回复:
一月 10th, 2012 at 1:53 下午
装一下python2.7
[回复]
请问出现”处理 function 24 AddT 时发生错误“怎么处理!
[回复]
Dante 回复:
二月 5th, 2012 at 8:35 下午
呃,这个能把详细信息贴出来吗?
[回复]
gabriel 回复:
二月 7th, 2012 at 12:32 下午
具体信息如下:
处理 function 24 AddT 时发生错误“
第 11行:
Traceback (most recent call last);
File “”, line 8, in
File “”, line 86, in handle_add_t
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 0: ordinal not in range(128)
ps:这个是手动打的,另外想请教vim中如何导出错误信息!!
[回复]
Dante 回复:
二月 7th, 2012 at 8:31 下午
应该是编码的问题,你打开文件的默认编码是utf8吗?要是utf8才行。
这个导出的问题,之前也和很多朋友聊过。。貌似还有方案的说。。
[回复]
gabriel 回复:
二月 9th, 2012 at 9:27 上午
看了set encoding 和set fileencoding,都是utf-8,我是使用linux系统和默认的python 2.6.5,这个会有影响吗?
[回复]
呵呵
[回复]
新手。。。那个 “,at” 怎么按啊?
[回复]
专门分享vim 技巧的新浪微博,欢迎@vimtips,http://weibo.com/u/2628187703
[回复]