当前位置: 首页 > news >正文

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

背景

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

代码

function! InsertCFunctionHeader()" 获取当前行内容let line = getline('.')" 匹配 C 函数定义let matched = matchlist(line, '^\s*\w\+ \+\(\w\+\)(\(.*\))')" 如果当前行不是函数定义,退出if len(matched) == 0echo "Not a function definition!"returnendif" 获取函数名和参数列表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 += 1call append(write_line_number, ' *')let write_line_number += 1call 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) > 0let write_line_number += 1call append(write_line_number, ' *   ' . param_name . ':')endifendforlet write_line_number += 1call append(write_line_number, ' * Returns:')let write_line_number += 1call append(write_line_number, ' *   ')let write_line_number += 1call append(write_line_number, ' */')let write_line_number += 1call append(write_line_number, '')let write_line_number += 1call append(write_line_number, current_line_content)
endfunction" 将该函数绑定到一个快捷键,例如 <F5>
nnoremap <F5> :call InsertCFunctionHeader()<CR>

相关文章:

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

背景 C语言使用vim编写时&#xff0c;需要快速对函数进行说明头插入&#xff1b; 代码 function! InsertCFunctionHeader()" 获取当前行内容let line getline(.)" 匹配 C 函数定义let matched matchlist(line, ^\s*\w\ \\(\w\\)(\(.*\)))" 如果当前行不是函…...

Leetcode171. Excel 表列序号

给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 题解&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱…...

自主设计,模拟实现 RabbitMQ - 实现 拒绝/否定 应答机制

目录 一、拒绝/否定 应答机制 1.1、需求分析 什么是 拒绝/否定 应答呢?...

在github上设置不同分支,方便回滚

在github上设置不同分支&#xff0c;方便回滚 步骤可能出现的问题couldnt find remote ref gpuVersion1. 确保您处于正确的分支2. 添加并提交更改&#xff08;如果还未进行&#xff09;3. 推送本地分支到远程仓库4. 验证操作 步骤 之前在github上上传了一个项目代码&#xff0c…...

【Elsevier旗下】JCR2/3区,最快25天录用!计算机与娱乐、教育、游戏、新媒体均可

期刊简介&#xff1a; 出版社&#xff1a;Elsevier 影响因子&#xff08;2022&#xff09;&#xff1a;2.5-3.0 期刊分区&#xff1a;JCR2/3区&#xff0c;中科院4区 检索数据库&#xff1a;SCIE 在检 数据库检索年份&#xff1a;2016年 预警情况&#xff1a;无中科院预警…...

TSINGSEE视频AI智能分析技术:水泥厂安全生产智能监管解决方案

一、方案背景 随着人工智能技术的快速发展以及视频监控系统在全国范围内的迅速推进&#xff0c;基于AI视频智能分析技术的智能视频监控与智慧监管系统&#xff0c;也已经成为当前行业的发展趋势。在工业制造与工业生产领域&#xff0c;工厂对设备的巡检管理、维护维修、资产管…...

Whisper + NemoASR + ChatGPT 实现语言转文字、说话人识别、内容总结等功能

引言 2023年&#xff0c;IT领域的焦点无疑是ChatGPT&#xff0c;然而&#xff0c;同属OpenAI的开源产品Whisper似乎鲜少引起足够的注意。 Whisper是一款自动语音识别系统&#xff0c;可以识别来自99种不同语言的语音并将其转录为文字。 如果说ChatGPT为计算机赋予了大脑&…...

795. 区间子数组个数

795. 区间子数组个数 给你一个整数数组 nums 和两个整数&#xff1a;left 及 right 。找出 nums 中连续、非空且其中最大元素在范围 [left, right] 内的子数组&#xff0c;并返回满足条件的子数组的个数。 生成的测试用例保证结果符合 32-bit 整数范围。 示例 1&#xff1a;…...

Request method ‘GET‘ not supported,不支持GET形式访问

org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘GET’ not supported 原因&#xff1a;异常提示的很明确&#xff0c;请求不支持GET方式访问&#xff0c;出现这种问题一般都是由于限制请求接口为POST&#xff0c;然后使用GET形式访问造成的…...

数据结构与算法(C语言版)P2---线性表之顺序表

前景回顾 #mermaid-svg-sXTObkmwPR34tOT4 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sXTObkmwPR34tOT4 .error-icon{fill:#552222;}#mermaid-svg-sXTObkmwPR34tOT4 .error-text{fill:#552222;stroke:#552222;}#…...

AI写文章软件-怎么选择不同的AI写文章软件

在如今信息爆炸的时代&#xff0c;无论是学生、职场人士&#xff0c;还是创作者和企业家&#xff0c;写文章都是一项常见而又重要的任务。然而&#xff0c;随着科技的不断进步&#xff0c;AI写文章的软件也逐渐走进了人们的视野。 147GPT批量文章生成工具​www.147seo.com/post…...

VSCode远程连接服务器报错:Could not establish connection to

参考&#xff1a;https://blog.csdn.net/weixin_42538848/article/details/118113262 https://www.jb51.net/article/219138.htm 刚开始把ssh文件夹中的known_hosts给删除了&#xff0c;发现没啥用。 之后在扩展Remote-SSH里面&#xff0c;把config file路径设置为ssh文件夹里…...

openssl 用法整理 —— 筑梦之路

用法一 生成自签名数字证书 # 生成私钥 openssl genpkey -algorithm RSA -out private.key# 生成证书请求 openssl req -new -key private.key -out certificate.csr# 使用私钥签署证书 openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certifica…...

Mac安装SPSS 26(含安装包)

Mac安装SPSS 26(含安装包) 安装包地址(百度网盘)&#xff1a;https://pan.baidu.com/s/127ZJNRIMZaeR2hDilQT0Zg提取码: m5xj 查看是否允许安装任何来源的app 如果没有任何来源这个选项 打开终端输入&#xff1a;sudo spctl --master-disable回车之后输入password(注:电脑的…...

uniapp存值和取值方法

在UniApp中&#xff0c;可以使用全局变量、本地缓存和Vuex状态管理等方式来进行存值和取值。 全局变量&#xff1a;可以在App.vue文件的data中定义一个全局变量&#xff0c;在其他页面或组件中通过uni.$emit方法修改其值&#xff0c;并通过uni.$on方法监听值的变化。 // App.…...

Apache Beam 2.50.0发布,该版本包括改进功能和新功能

导读我们很高兴向您介绍 Beam 的新版本 2.50.0。该版本包括改进功能和新功能。请查看此版本的下载页面。 亮点 Spark 3.2.2 被用作 Spark 运行程序的默认版本&#xff08;#23804&#xff09;。Go SDK 新增默认本地运行程序&#xff0c;名为 Prism&#xff08;#24789&#xff0…...

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…...

栈的简单应用(利用Stack进行四则混合运算)(JAVA)

目录 中缀表达式转后缀表达式 图解 代码实现过程&#xff1a; 完整代码&#xff1a; 利用后缀表达式求值&#xff1a; 完整代码&#xff1a; 首先我们得先了解逆波兰表达式。 中缀表达式转后缀表达式 所谓的中缀表达式其实就是我们平时写的例如&#xff1a;&#xff1…...

Python---异常

捕获全部异常 语法&#xff1a; try: 可能发生的错误代码 except: 如果出现异常执行的代码 例子&#xff1a; try:open("test2.txt", "r", encoding"UTF-8") except:print("出现异常&#xff0c;文件不存在&#xff0c;换个模式打…...

视频编解码器H.264和H265有什么区别?

对于大型视频文件来说&#xff0c;视频编解码器至关重要&#xff0c;它可以将文件压缩为较小的尺寸&#xff0c;从而可以更轻松地存储和加快传输速度。而两种最常用的编解码器是H.264和H.265&#xff0c;那么它们两者之间有什么区别&#xff0c;哪一个更好呢&#xff1f; 1. 什…...

CFO/SFO/STO/CFD/IQ不平衡/IQ gain mismatch/IQ phase mismatch/干扰信号载波频率 等等蓝牙通信中干扰参数解析

载波频偏和采样频偏确实来自物理上不同的时钟源,虽然它们可能在数字通信系统中相互影响。 我们可以从三个层面来理清它们的关系: 2. 为什么容易混淆 因为在实际电路中,射频本振和采样时钟可能来自同一个参考晶振。在一些低成本或集成度高的系统中,收发信机通过锁相环(PL…...

深入解析Cache工作原理与多核一致性机制

深入理解Cache工作原理与技术实现1. 计算机体系中的Cache基础1.1 Cache存在的必要性现代计算机系统中&#xff0c;处理器性能与存储器访问性能之间存在显著差距。从历史发展数据来看&#xff0c;CPU计算性能每18个月翻一番&#xff08;遵循摩尔定律&#xff09;&#xff0c;而D…...

以太网MAC与PHY接口技术详解

以太网PHY、MAC及其通信接口技术解析1. 以太网接口架构概述1.1 基本组成结构以太网接口电路从硬件角度可分为两大核心组件&#xff1a;MAC控制器&#xff08;Media Access Control&#xff09;&#xff1a;负责数据链路层的媒体访问控制PHY芯片&#xff08;Physical Layer&…...

AI教材生成强力工具!低查重保障,让教材编写事半功倍!

梳理教材知识点确实是一项“精细活”&#xff0c;最大的挑战在于平衡和衔接知识之间的关系。如果不小心&#xff0c;很可能会遗漏一些核心知识点&#xff0c;或者在难度的把控上出现问题——小学教材常常写得过于复杂&#xff0c;让学生难以理解&#xff1b;而高中教材又可能显…...

云上实战说 | TapNow x Google Cloud 带您体验从灵感到资产的秒级转化

以下文章来源于谷歌云服务&#xff0c;作者 Google Cloud基于 Google Cloud Veo 和 Nano Banana 的前沿能力&#xff0c;TapNow (万物形象所) 邀您体验生成式 AI 如何重塑品牌与自我表达。现场实时生成风格化写真、宠物贴纸及周边&#xff0c;直观感受从灵感到资产的极速转化&a…...

Display Driver Uninstaller深度清理实战指南

Display Driver Uninstaller深度清理实战指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 当你遭遇游戏帧…...

Stable Diffusion ComfyUI进阶:局部重绘与智能扩图的实战技巧与创意应用

1. 局部重绘的核心原理与实战技巧 局部重绘是Stable Diffusion ComfyUI中最实用的功能之一&#xff0c;它允许你在不改变整体构图的情况下&#xff0c;对图像的特定区域进行重新绘制。这个功能背后的技术原理其实很有意思——它利用了潜在空间&#xff08;latent space&#xf…...

EtherCAT模块化实战:如何为你的设备设计可热插拔的IO模块(基于SSC与0x4711示例)

EtherCAT模块化实战&#xff1a;如何为你的设备设计可热插拔的IO模块 在工业自动化领域&#xff0c;设备的灵活性和可扩展性正变得越来越重要。想象一下&#xff0c;当你的客户需要在生产线上快速更换不同类型的传感器或执行器时&#xff0c;如果每次硬件变更都需要重新配置整个…...

企业级 Agent SKILL 最佳实践

最近&#xff0c;真的是屁颠屁颠地使用Openclaw作为业务核心为客户打造智能体的工作流程&#xff0c;包括组织、业务、技术三个全面的转型。同时&#xff0c;由于OpenAI的Sora下线&#xff0c;年初刚刚建立的AI漫剧工作流&#xff0c;资产库以及提示词都需要转换成替代品。还有…...

用MediaPipe和Python做个隔空切水果游戏:从手势骨架提取到简单游戏逻辑实现

用MediaPipe和Python打造体感切水果游戏&#xff1a;从手势识别到游戏逻辑全解析 还记得小时候在街机厅玩《水果忍者》的畅快感吗&#xff1f;现在&#xff0c;我们完全可以用Python和MediaPipe技术&#xff0c;在电脑前通过手势隔空切水果&#xff01;本文将带你从零开始&…...