我的第一个vim function. number lines

本文介绍了一个简单的Vim脚本,包括为选中区域添加行号的功能,并提供了如何加载、查询和调试Vim脚本的方法。此外,还展示了数组操作的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"我的第一个vim function,
" author: hjjdebug
" date:   2012/07/27 周五
" 功能: MyNl
" 描述,选中一块区域,给该区域内容加上行号。
" 编写,调试,辛苦良多,感受良多, 毕竟又是一片新的编程天地

function! NumberLines() range
    let line=a:firstline
    let seq=1
    while (line <= a:lastline)
    call Debug("line = " . line)
        let strline=getline(line)
        call setline(line,seq.". ".strline)
        let seq=seq + 1
        let line=line + 1
    endwhile
endfun

将上个函数稍加修改,可以改为显示函数中行号,并以msg 方式显示出来。同时将内容copy 到无名寄存器

fun! MyNum() range
    let l=a:firstline
    let n=0
    let str=""
    while(l <= a:lastline)
        let strline=getline(l)
        let str=str.n." ".strline."\n"
        let l+=1
        let n+=1
    endw
    echo str
    call setreg('"',str,"l")
endf

vim 的语句像一个没有断奶的孩子,每条语句必须有关键词引导或者是命令,

函数是不能单独成一行的,构不成语句,应加关键词call 调用。

函数语句与c 语法类似, 不支持类及方法。 下面是一个关于数组的操作。

fun! MyArray()
    let arr1=[[2,3],[3,8],[5,4]]
    let arr2=[]
    for i in arr1
        call add(arr2,[i[1],i[0]])
    endfor
    call sort(arr2)
    echo arr2
endfun


1.  你需要了解怎样加载脚本函数,
    source 命令, 加载整个文件. 函数名加!, 重新加载


2. 怎样查询自定义函数(过滤查询)
    function
    function /<函数名>  (过滤查询)
    function /<部分函数名>  (过滤查询)

3. 怎样调用自己的函数。
    call <function_name>

4. 调试函数 set verbose=15

5. 进入调试模式,添加断点: 例如

:breakadd func MyNum

你可以把vim 脚本copy 到一个寄存器中例如copy到无名寄存器,然后执行这个寄存器例如, :@"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值