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

背景

C语言使用vim编写时,需要快速对函数进行说明头插入;文章来源地址https://uudwc.com/A/R6gx3

代码

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>

原文地址:https://blog.csdn.net/sz66cm/article/details/133206566

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年09月24日 14:26
从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式
下一篇 2023年09月24日 14:27