【vim 学习系列文章 22 -- vim 实现 linux 多行快速标准注释】

news2025/2/27 2:46:01

文章目录

    • vim 实现 linux 多行快速标准注释

vim 实现 linux 多行快速标准注释

不多说了,直接上动图:
请添加图片描述
上代码:

function! CommentBlock()
    " 获取Visual模式选中的起始和结束行号
    let old_start_line = line("'<")
    let old_end_line = line("'>")

    call append(old_end_line, '')
    call append(old_start_line - 1, '')

    let start_line = old_start_line
    let end_line = old_end_line + 2
    execute "normal! " . start_line . "GV" . end_line . "G"

    " 变量i用于循环
    let i = start_line
    " 循环处理每一行
    while i <= end_line
        " 如果是第一行
        if i == start_line
            execute i . 's/^/\/\*/'
        " 如果是最后一行
        elseif i == end_line
            execute i . 's/^/\ *\//'
        " 其他行
        else
            execute i . 's/^/\ * /'
        endif
        let i += 1
    endwhile
endfunction

function! CallFunctionsAB()
    ""call AddLinesBeforeAndAfter()
    ""call AddLinesAndReselect()
    call CommentBlock()
endfunction

"" 在Visual模式下,把 'gcm' 映射到上面定义的函数
vnoremap gcn :<C-u>call CallFunctionsAB()<CR>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目4-图书管理系统2+统一功能处理

1. 拦截器&#xff08;Interceptor&#xff09; 我们完成了强制登录的功能, 后端程序根据Session来判断用户是否登录, 但是实现⽅法是比较麻烦的。 所需要处理的内容&#xff1a; • 需要修改每个接⼝的处理逻辑 • 需要修改每个接⼝的返回结果 • 接⼝定义修改, 前端代码也需…

vue简单使用一(vue的声明)

首先引入vue的js文件&#xff1a; <script src"js/vue.js" type"application/javascript"></script> vue.js文件去vue官网下载即可 html代码 <div class"vuePro"><div> vue的属性信息都得放在这个标签下面哪怕是同级也是…

轻松玩转TikTok:TK防关联引流系统实现一键式多账号管理

TK防关联引流系统是为TikTok平台量身打造的全方位引流解决方案&#xff0c;不仅解决了传统跨境电商在TikTok运营中遇到的诸多难题&#xff0c;还通过创新技术实现了自动化、高效化的全球引流。以下是该系统的主要优势及功能特点&#xff1a; 系统核心优势 1.全球真实环境模拟…

论文| Convolutional Neural Network-based Place Recognition - 2014

2014-Convolutional Neural Network-based Place Recognition

推荐!6个实用工具类微信小程序,提升效率的神器,工作生活中一定用得到!

亲爱的时间管理小能手们&#xff0c;你们是否经常感叹一天24小时不够用&#xff1f;是不是也经历过在杂乱无章的app海洋中寻找那一个刚好满足需求的小众工具&#xff1f;别急&#xff0c;今天我要给你揭秘六款实用到哭的小程序神器&#xff0c;它们就像你口袋里的多功能瑞士军刀…

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…

Hackthebox IClean

靶机信息IP/难度Medium网址https://app.hackthebox.com/machines/IClean状态Active系统Linux Python XSS, SSTI 端口扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 2cf9077…

48V转15V,48V转12V,48V转24V高效率降压恒压芯片SL3041电路简单

在现代电子设备中&#xff0c;电源转换是一个关键且常见的技术。特别是对于那些需要将48V电压转换为更低电压&#xff08;如15V、12V或24V&#xff09;的设备&#xff0c;一个高效、可靠的降压恒压芯片至关重要。本文将详细介绍一款名为SL3041的高效率降压恒压芯片&#xff0c;…

Ant Design Vue 表单验证手机号的正则

代码&#xff1a; pattern: /^1[3456789]\d{9}$/ 1. <a-form-item label"原手机号" v-bind"validateInfos.contactTel"><a-inputstyle"width: 600px"allow-clear:maxlength"20"placeholder"请输入原手机号"v-mo…

JavaWeb中的Servlet是什么?怎么使用?

文章目录 一、什么是Servlet二、Servlet的基本内容1、Servlet的作用2、Servlet接口3、Servlet接口实现类4、Servlet接口实现类开发步骤5、Servlet对象生命周期6、HttpServletResquest接口7、HttpServletResponse接口8、请求对象和响应对象流程图9、请求对象和响应对象生命周期1…

centos7部署zabbix6.4.9

文章目录 [toc]一、环境准备1&#xff09;部署lnmp2&#xff09;修改配置文件3&#xff09;安装数据库 二、部署zabbix1&#xff09;下载zabbix2&#xff09;安装zabbix服务端3&#xff09;修改配置4&#xff09;开机启动5&#xff09;安装客户端 三、登录配置1&#xff09;访问…

面试算法-170-二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 解 class Solution {public int maxDepth(TreeNod…

C语言 | Leetcode C语言题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; int comp(const void *a, const void *b) { return *(int *)a - *(int *)b; } int threeSumClosest(int *nums, int numsSize, int target) {int n numsSize;qsort(nums, n, sizeof(int), comp);int best 1e7;// 根据差值的绝对值来更新答…

常见安全漏洞及其解决方案

1、 SQL注入漏洞 漏洞描述&#xff1a; SQL注入被广泛用于非法入侵网站服务器&#xff0c;获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中&#xff0c;对用户输入的数据没有做好过滤&#xff0c;导致恶意用户可以构造一些SQL语句让服务器去执行&…

2024第十九届中国(温州)机械装备展9月20-22日举行

第十九届中国&#xff08;温州&#xff09;机械装备展览会 THE 19TH CHINA (WENZHOU) MACHINERY EQUIPENT EXHIBITION 第十九届中国&#xff08;温州&#xff09;国际紧固件博览会 THE 19TH CHINA (WENZHOU) NTERNATIONAL FASTENER EXPOSITION 时间&#xff1a;2024年9月…

APP软件的运营方法

APP软件的运营是一个复杂的过程&#xff0c;涉及到多个方面的策略和方法。以下是一些有效的APP运营方法&#xff0c;通过这些方法&#xff0c;APP运营者可以有效地吸引和留住用户&#xff0c;提高用户活跃度和忠诚度&#xff0c;最终实现商业成功。北京木奇移动技术有限公司&am…

C语言 函数——断言与防御式编程

目录 如何确定假设的真假&#xff1f; 断言 防御式编程&#xff08;Defensive programming&#xff09; 如何确定假设的真假&#xff1f; 程序中的假设 *某个特定点的某个表达式的值一定为真 *某个特定点的某个表达式的值一定位于某个区间等 问题&#xff1a;如何确定这些…

K8s拉取habor镜像

目录 在daemon.json中添加仓库地址 重新加载daemon.json并重启docker 在目标node节点添加域名 验证目标node是否能正常登录镜像仓库 创建pod资源 加载yml文件 验证 查看pod的ip与端口号 在daemon.json中添加仓库地址 此处需要在创建资源对象所在的节点进行添加 路径&a…

AcWing 1027. 方格取数

解题思路 如果使用了先走和后走的方式&#xff0c;这种方式利用了贪心的思想&#xff0c;会产生局部最优解&#xff0c; 但局部最优解毕竟不是全局最优解。所以要采用同时走的方式。 相关代码 import java.util.Scanner;public class Main {static int w[][] new int[15][15]…

建筑设计全过程碳排放计算与案例分析

“30/60双碳目标”已成为我国绿色发展的新国策&#xff0c;建筑业对碳排放量化分析和减排也越来越重视。特别是全文强制性国标标准《建筑节能与可再生能源利用通用规范》GB55015-2021的实施&#xff0c;对建设项目可行性研究报告、建设方案和初步设计要求进行建筑碳排放分析&am…