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
と例のためにそれを保存します。次に、このスクリプトをスクリプトリストに追加します。ブロックをクリップボードにコピーした後にスクリプトリストから実行するホットキーを使用せずに、またはキーによる高速実行のホットキーまたはコード(マルチキー割り当て)を使用します。
もちろん、スクリプト自体が選択されたテキストのコピーを作成することも可能です。
また、このスクリプトのわずかに修正されたバージョンが、クリップボードの内容ではなくアクティブなファイルの選択されたテキストに対して実行されたときに、アクティブなファイルの実際の行番号を使用することもできます。