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

文章目录

    • [vim 实现 linux 多行快速标准注释](#vim 实现 linux 多行快速标准注释)

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

不多说了,直接上动图:

上代码:

powershell 复制代码
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>
相关推荐
妖精的羽翼几秒前
AI + 前端、可视化 & 大屏
学习
Full Stack Developme7 小时前
JVM 与 Linux 交互的核心原理
linux·运维·jvm
xuhaoyu_cpp_java7 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
HackTwoHub7 小时前
最新Nessus2026.6.8版本主机漏洞扫描/探测工具Windows/Linux
linux·运维·服务器·安全·web安全·网络安全·安全架构
qq_163135757 小时前
Linux 【04-mkdir命令超详细教程】
linux
qq_163135757 小时前
Linux 【08-mv命令超详细教程】
linux
小宋加油啊8 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh04239 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊10 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风10 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式