51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1535|回复: 1
打印 上一主题 下一主题

使用python编写简单vim插件

[复制链接]
  • TA的每日心情
    无聊
    2024-9-27 10:07
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2018-2-7 16:22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
           1 脚本编写方法
           在vim的normal模式中输入:h python可以查看编写vim插件时python的具体写法,包括:

           vim插件的标准函数开头 结尾
           vim提供给python的包vim
           python如何操作vim中的内容,包括buffer、window、cursor等
           vim的大部分元素都可以当成list来处理
           2 放置位置

           在编写完自己的vim插件后,只需要将其放入~/.vim目录中即可,同样放入~/.vim/comment/目录中
    也行,其中comment名字可以根据自己情况去修改

           3 使用方法

           在.vimrc最后添加source ~/.vim/comment/comment.vim,这里修改成自己所编写插件的路径即可
           在vim的normal模式中:call Comment()调用对应函数,这里我插件所使用的函数名字为Comment(),
    需要根据自己的情况做对应修改
           (可以不做)在.vimrc中添加,本质上就是vim的按键映射,详细用法见vim键盘映射
           :map <F5> <Esc>:call Comment()<CR>

           1举个简单的例子

           下面是我所编写自动添加C语言函数注释模板插件comment.vim
    1. function! Comment()  #自己使用的插件函数名
    2. python << EOF   #标志性开头
    3. #####下面便是python代码部分#####
    4. import vim      
    5. import re

    6. def add_comment():
    7.     cb = vim.current.buffer
    8.     cw = vim.current.window
    9.     row = cw.cursor[0]
    10.     line_str = cb[row-1]
    11.     print line_str

    12.     const_str0 = '/**'
    13.     const_str1 = ' * '
    14.     const_str2 = ' */'
    15.     str_list = []
    16.     str_list.append(const_str0)

    17.     largs = re.findall(r'\w+', line_str)
    18.     print largs
    19.     if len(largs) <=1:
    20.         print 'you maybe at wrong line now'
    21.         return

    22.     ret = largs[0]
    23.     del largs[0]

    24.     fun_name = largs[0]
    25.     del largs[0]
    26.     str_list.append(const_str1 + fun_name + ' - ')
    27.     str_list.append(const_str1 + '@return:' + ' - ')

    28.     for i,item in enumerate(largs):
    29.         if i%2 == 1:
    30.             str_list.append(const_str1 + '@' + item + ' - ')

    31.     str_list.append(const_str2)
    32.     cb[row-1:row-1] = str_list
    33.     return

    34. add_comment()  #执行上面所编写函数
    35. #####python代码结束#####
    36. EOF            #与之前的EOF相对应
    37. endfunction    #函数编写结束
    复制代码



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 08:02 , Processed in 0.062707 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表