【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>
相关推荐
Fcy6486 分钟前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满7 分钟前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠28 分钟前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio28 分钟前
rk芯片驱动编写
linux·学习
mango_mangojuice30 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey90339 分钟前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
lingggggaaaa1 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东1 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗1 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
A星空1232 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c