Как скопировать код с номерами с помощью UltraEdit?

Когда вы быстро делитесь кодом с членами команды, было бы неплохо вставить код с номерами строк в электронное письмо / документ.

Кто-нибудь знает, как это сделать с UltraEdit?

Текущая проблема: выбранный код ниже

1   PRINT 'WHAT IS YOUR NAME?'
2   INPUT NAME
3   PRINT 'HELLO':NAME

Нет возможности копировать / вставлять с номерами строк, поэтому вставка выглядит так:

PRINT 'WHAT IS YOUR NAME?'
INPUT NAME
PRINT 'HELLO':NAME

Заранее спасибо.

2 ответа

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):

Спасибо за ваше сообщение. Сожалею, что эта функция в настоящее время недоступна.

Но это было запрошено ранее, и мы рассматриваем это. Я добавил ваши контактные данные в наш журнал по теме, и мы сообщим вам, когда будет выпущена обновленная сборка, включающая эту возможность.

Другие вопросы по тегам