当与团队成员快速共享代码时,最好将带有行号的代码粘贴到电子邮件/文档中。
有谁知道如何用 UltraEdit 做到这一点?
当前问题:下面选择的代码
1 PRINT 'WHAT IS YOUR NAME?'
2 INPUT NAME
3 PRINT 'HELLO':NAME
没有复制/粘贴行号的选项,所以粘贴看起来像:
PRINT 'WHAT IS YOUR NAME?'
INPUT NAME
PRINT 'HELLO':NAME
提前致谢。
UltraEdit 没有内置命令将带有行号的选定行复制到剪贴板。
但是,在将块粘贴到电子邮件应用程序之前,可以运行 UltraEdit 脚本将行号添加到之前复制到剪贴板的文本中。
// Get content of clipboard as an array of lines assuming that the
// clipboard contains text data and the lines have carriage return
// plus line-feed as line termination.
if (UltraEdit.clipboardContent.length)
{
var asLines = UltraEdit.clipboardContent.split("\r\n");
// Remove the last string from array if being empty because
// the text in clipboard ends with a line termination.
if (!asLines[asLines.length-1].length) asLines.pop();
// Convert the number of lines to a string using decimal
// system and replace each digit in string by character 0.
var sLeadingZeros = asLines.length.toString(10).replace(/./g,'0');
// Insert at beginning of each line a number with
// leading zeros according to maximum number of lines.
for (var nLine = 0; nLine < asLines.length; nLine++)
{
var sLineNumber = (nLine+1).toString(10);
sLineNumber = sLeadingZeros.substr(sLineNumber.length) + sLineNumber;
if (asLines[nLine].length)
{
asLines[nLine] = sLineNumber + " " + asLines[nLine];
}
else // For an empty line just add the line number without spaces.
{
asLines[nLine] = sLineNumber;
}
}
// Append an empty string to array of lines to have finally the
// block in clipboard terminated with carriage return and line-feed.
asLines.push("");
// Join the modified lines back to a block in clipboard.
UltraEdit.clipboardContent = asLines.join("\r\n");
}
将此脚本代码复制并粘贴到一个新的 ANSI 文件中,并将其保存为例如文件名Add Line Numbers.js
. 然后将此脚本添加到脚本列表中,无需热键即可在将块复制到剪贴板后从脚本列表执行,或使用热键或和弦(多键分配)以通过键快速执行。
当然,脚本本身也可以复制所选文本。
当在活动文件中的选定文本而不是剪贴板内容上执行此脚本的略微修改版本时,也可以使用活动文件中的实际行号。
我收到了 IDM Computer Solutions(UltraEdit 的制作人)对这个问题的回复:
感谢您的留言。很抱歉,此功能目前不可用。
但之前有人提出过要求,我们正在考虑。我已将您的联系方式添加到我们关于该主题的日志中,当包含此功能的更新版本发布时,我们会通知您。