【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>
相关推荐
r_oo_ki_e_25 分钟前
Java Map 集合学习笔记
java·笔记·学习
笑锝没心没肺1 小时前
fail2ban工具安装配置及使用
linux·运维·服务器
笨鸟先飞的橘猫2 小时前
skynet——sharetable学习
学习·skynet
liuyicenysabel2 小时前
大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练
人工智能·笔记·学习
大卡片3 小时前
linux内核驱动开发
linux·运维·驱动开发
心心喵4 小时前
[linux] nohup和pm2的区别 进程保活
linux·运维·服务器
Funing75 小时前
FreeRTOS学习day1:Keil 工程配置与 FreeRTOS 链表机制理解
数据结构·学习·链表
醉熏的石头5 小时前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala
心中有国也有家5 小时前
使用 DevEco Studio 配置 Flutter 鸿蒙签名
学习·flutter·华为·harmonyos
灯澜忆梦5 小时前
MySQL 完整学习路线
学习·mysql