【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>
相关推荐
今天你TLE了吗1 分钟前
Stream流学习总结
java·学习
凌寒1117 分钟前
Linux(Debain)安装Redis、数据迁移
linux·运维·服务器·redis
7***q60825 分钟前
在linux(Centos)中Mysql的端口修改保姆级教程
linux·mysql·centos
用户476022022781 小时前
机器配置免密切root
linux
zzzsde2 小时前
【Linux】基础开发工具(2):vim补充说明&&gcc/g++编译器
linux·运维·服务器
q***65692 小时前
使用Canal将MySQL数据同步到ES(Linux)
linux·mysql·elasticsearch
2301_807583232 小时前
了解python,并编写第一个程序,常见的bug
linux·python
杨德杰3 小时前
Ubuntu设置VNC远程桌面
linux·运维·ubuntu
周全全3 小时前
基于ElasticSearch的语义检索学习-向量化数据、向量化相似度、向量化检索
大数据·学习·elasticsearch
4***72134 小时前
网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件
爬虫·学习·计算机外设