Vim - 快速插入C语言函数注释模板

背景

C语言使用vim编写时,需要快速对函数进行说明头插入;

代码

function! InsertCFunctionHeader()
    " 获取当前行内容
    let line = getline('.')

    " 匹配 C 函数定义
    let matched = matchlist(line, '^\s*\w\+ \+\(\w\+\)(\(.*\))')

    " 如果当前行不是函数定义,退出
    if len(matched) == 0
        echo "Not a function definition!"
        return
    endif

    " 获取函数名和参数列表
    let func_name = matched[1]
    let params = matched[2]

    let current_line_number = line('.')
    let current_line_content = getline('.')
    let write_line_number = current_line_number - 1

    " 插入注释头
    call setline(current_line_number, "")
    call setline(write_line_number, '/* ' . func_name)
    let write_line_number += 1
    call append(write_line_number, ' *')
    let write_line_number += 1
    call append(write_line_number, ' * Parameters:')

    let ii = 0

    " 解析并插入参数注释
    for param in split(params[1:-1], ',')
        let param_name = matchstr(param, '\w\+$')
        if len(param_name) > 0
            let write_line_number += 1
            call append(write_line_number, ' *   ' . param_name . ':')
        endif
    endfor

    let write_line_number += 1
    call append(write_line_number, ' * Returns:')
    let write_line_number += 1
    call append(write_line_number, ' *   ')
    let write_line_number += 1
    call append(write_line_number, ' */')
    let write_line_number += 1
    call append(write_line_number, '')
    let write_line_number += 1
    call append(write_line_number, current_line_content)
endfunction

" 将该函数绑定到一个快捷键,例如 <F5>
nnoremap <F5> :call InsertCFunctionHeader()<CR>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值