前言:

  • 好久没写Vim插件了,这次给Vimer们带来个好福利!– 用Vim(gVim)发腾讯微博
  • 昨晚折腾了大半夜,总算成功实现!~~ 当然,代价就是今天头痛的厉害……

昨天突发奇想,当我用vim读文档,看代码的时候,如果有一段我觉得特别好,想要分享给大家,有没有快捷点的方式呢?

所以需求也就来了,在Vim里面分享内容~而目前用的最广的,自然是微博~(由于笔者只用腾讯微博,所以只实现了腾讯微博……)

细化一下功能:

  1. 分享文章中的一段文字,并支持评论
  2. 直接发送微博

如果你读这篇文章比较早,应该还能看到页面右侧的微博里有这条微博:

在正式开始介绍之前,声明一下:

  1. 文中所使用的QQ登录的API均为对外公开的API,不存在任何使用保密API的问题
  2. 笔者是用 vimer.cn 来申请了 QQ登录,但是access_token在生成之后,笔者不会对这个信息做任何保存,如果有所怀疑,请不要使用。
  3. weibo.vim插件本身不会主动发起任何发送微博的操作

OK,废话不多说,开始介绍吧

一. 环境依赖

  1. python

二. 安装

  1. http://www.vim.org/scripts/script.php?script_id=3839 下载 weibo.vim
  2. weibo.vim 放在 plugin目录

三. 配置
目前支持的配置如下:

  • g:weibo_access_token oauth2.0的access_token,是由QQ登录提供的授权token,貌似过期时间是1个月。后面会写出获取这个token的方法。
  • g:weibo_access_token 签名档,默认值是“来自weibo.vim”,如果不喜欢可以配置为空

在_vimrc中配置:

四. 生成access_token

  1. 点击如下链接:
  2. 生成access_token

  3. 在进行QQ登录之后,会跳转到类似如下链接:
  4. http://www.vimer.cn/#access_token=4E6421B8719124324217AF48E085F&expires_in=7776000

    其中access_token=后面的即要获取的access_token。

  5. 将其配置到第二步的g:weibo_access_token中。

如果在使用中,提示 access_token 过期的话,只要按照上面的步骤重新申请一遍即可。

五. 命令

  1. 分享选中的的文字
  2. 选中要分享的文字后,按下 “,at”, 如果不需要写评论,则直接回车;如果需要评论,则输入空格后,输入评论,回车。

  3. 直接发送微博
  4. 在normal模式下,直接按下 “,at”, 输入空格后,输入文字,回车。

OK,就是这样,enjoy it!

最后再贴一下下载地址:
http://www.vim.org/scripts/script.php?script_id=3839

53则回应给“用Vim(gVim)发腾讯微博-weibo.vim”

  1. kikyous说道:

    弄个新浪的吧,新浪的也有python接口

    [回复]

    Dante 回复:

    嗯,近期考虑支持。

    [回复]

    helloxyz 回复:

    弄个twitter的才对

    [回复]

    Dante 回复:

    vim.org已经有了的。

    [回复]

    youanan 回复:

    哦,去找找看!

    [回复]

  2. ieipi说道:

    发表失败! 可能原因为: access_token无效或者过期、网络有问题
    按步骤四重新生成还是有问题

    [回复]

    Dante 回复:

    没道理呀,把插件113行的注释打开

    看一下详细错误?

    [回复]

    ieipi 回复:

    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 回复:

    貌似是access_token无效,导致没有换取成功的openid,可否打印一下82行的data?

    [回复]

    ieipi 回复:

    是直接用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 回复:

    就是access_token的问题哦。。

    [回复]

    ieipi 回复:

    那该咋整呢

    [回复]

    Dante 回复:

    生成的方法是按照文中说的吗??

    [回复]

    Dante 回复:

    你不会直接用的这个token把?
    4E6421B8719124324217AF48E085F

    [回复]

    ieipi 回复:

    我错了
    我把后面的&expires_in=7776000也一起拷贝过去了

    [回复]

    Dante 回复:

    汗。。。

    [回复]

  3. vimest说道:

    进来直接看到插件名字,就以为是weibo.com的插件,汗。
    刚才试了下,登录跳转的时候没有出气那token链接,不知道是啥问题。
    如果下次出了新浪微博的插件,不知道该叫什么名字好了。

    [回复]

    Dante 回复:

    特意试了一下,可以出token呀。。

    呃,说起来我很期待一个和我一样骨灰的vimer,特意写一个新浪微博的版本。。

    [回复]

    vimest 回复:

    可能是浏览器的问题吧,我用的opera。

    [回复]

    vimest 回复:

    刚刚又试了下,还是没有。但实际是有的。在用firebug看的时候会有请求,第二次的时候就速度复制下来了,嘿嘿。

    [回复]

    Dante 回复:

    哈哈,标准程序员风格~~ 咱博客就喜欢这样的~~

    [回复]

    vimest 回复:

    我也喜欢这样的,哈哈,可是我不喜欢男的。

    [回复]

    Dante 回复:

    哈哈哈哈~~~

    [回复]

    vimest 回复:

    HOHOHOHO~~~

    [回复]

  4. zcq100说道:

    获取token直接就跳你博客首页了,看都没看清楚。
    还有,你不会把跳过来的accessToken都保存了吧。

    [回复]

    Dante 回复:

    关于token怎么获取,请仔细看文章。

    关于token是否保存,如果有所怀疑,请不要使用。

    原文引用:
    笔者是用 vimer.cn 来申请了 QQ登录,但是access_token在生成之后,笔者不会对这个信息做任何保存,如果有所怀疑,请不要使用。

    [回复]

  5. 石牛说道:

    能不能把access_key改成新浪那边的呢,然后就发新浪微博了,能实现么?

    [回复]

    Dante 回复:

    这个做不到。
    新浪那边有自己的权限控制,而且发微博的链接也都不一样。

    [回复]

  6. vimest说道:

    有了这插件我放弃了新浪微博了。

    [回复]

    zdl1016 回复:

    dante, 你给腾讯微博挖了不少客户。应该授予你奖章。

    [回复]

  7. MiaQ说道:

    很神奇的样子

    [回复]

  8. Shiina Luce说道:

    中文编码似乎有点问题?发送出去是乱码……gVim的$LANG和langmenu都设成en_US.UTF-8了

    [回复]

  9. www.chaojishop.com说道:

    来顶博主了。

    [回复]

  10. flay521说道:

    我用类似vim快捷键做一个客户端。可以试一下。

    [回复]

    Dante 回复:

    嗯? 链接是?

    [回复]

  11. x-snail说道:

    别的都会就是那修正pythony不太懂,因为现在没有接触过python,望博主能告诉如何解决,现在的情况是打开vim提示无法加载python27.dll,此命令不可用,

    [回复]

    Dante 回复:

    装一下python2.7

    [回复]

  12. gabriel说道:

    请问出现”处理 function 24 AddT 时发生错误“怎么处理!

    [回复]

    Dante 回复:

    呃,这个能把详细信息贴出来吗?

    [回复]

    gabriel 回复:

    具体信息如下:

    处理 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 回复:

    应该是编码的问题,你打开文件的默认编码是utf8吗?要是utf8才行。

    这个导出的问题,之前也和很多朋友聊过。。貌似还有方案的说。。

    [回复]

    gabriel 回复:

    看了set encoding 和set fileencoding,都是utf-8,我是使用linux系统和默认的python 2.6.5,这个会有影响吗?

    [回复]

  13. 未来走过说道:

    呵呵

    [回复]

  14. 笨猫猫说道:

    新手。。。那个 “,at” 怎么按啊?

    [回复]

    Michael Ding 回复:

    就是依次在键盘上按”,at”三个键,要在normal模式下或者visual模式下,要按得快

    [回复]

  15. vimtips说道:

    专门分享vim 技巧的新浪微博,欢迎@vimtips,http://weibo.com/u/2628187703

    [回复]

  16. [...] 前几天把笔记本上的gVim给小搞了下,正好看到这篇用Vim(gVim)发腾讯微博-weibo.vim,所以又想着把腾讯微博改成新浪微博的,可以学习下OAUTH,顺便还能看看Vim的插件开发。 [...]

  17. Michael Ding说道:

    Hi,想参与开发新浪微博版:-),如果楼主去申请weibo的appkey,我乐意来尝试做微博版

    [回复]

  18. hi说道:

    linux终端下的vim可以实现么

    [回复]

  19. sarrow104说道:

    围脖,没用过这东西。我连个人网站、博客都没有弄过。

    [回复]

  20. Mika_sleeping说道:

    下面的分享,选中后直接按,at这怎么弄啊,还有,我的为什么只显示 发表失败! 可能原因为: access_token无效或者过期、网络有问题

    我的网没有问题啊?access_token也没有问题啊?

    [回复]

  21. charstale说道:

    测试了下,是挺方便的,但是不能同步到qq空间里的说说,求帮助,直接用腾讯微博发是可以同步的

    [回复]

发表评论