source insigh宏=文件保存前清理空白行

本文介绍了一个在文件保存前进行的优化过程,包括去除行尾空白、替换制表符为空格、合并连续空白行以及在文件末尾追加空行等操作,以提高文件的整洁度和效率。

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

macro ProcessBlanksBeforeSave()
{
    var hwnd
    hwnd = GetCurrentWnd()
    if (hwnd == hNil)
    	stop
    var hbuf
    hbuf = GetWndBuf(hwnd)

    /* 删除所有行尾空白 */
    Trim_Whitespace

    /* 转换Tab为空格 */
    ReplaceInBuf(hbuf, "\t", "    ", 0, GetBufLineCount(hbuf), false, false, false, false)

	/* 调整连续空行为一行 */
	var lnCurBlank
	var selResult
	selResult = SearchInBuf(hbuf, "^$", 0, 0, false, true, false)
	if (selResult != Nil)
	{
	    lnCurBlank = selResult.lnFirst 
		selResult = SearchInBuf(hbuf, "^$", lnCurBlank + 1, 0, false, true, false)
		while (selResult != Nil)
		{
		    if (selResult.lnFirst == lnCurBlank + 1)
		    {
		        DelBufLine(hbuf, selResult.lnFirst)
		    }
		    else
		    {
		        lnCurBlank = selResult.lnFirst
		    }
		    selResult = SearchInBuf(hbuf, "^$", lnCurBlank + 1, 0, false, true, false)
		}
	}

	/* 文件末尾追加空行 */
	if (lnCurBlank != GetBufLineCount(hbuf) - 1)
	{
	    AppendBufLine(hbuf, "")
	}

	/* 保存文件 */
	if (IsBufDirty (hbuf))
	{
	    SaveBuf(hbuf)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值