2

У меня есть следующая функция в AutoHotkey, которая присоединяет строки Left и Right в качестве префикса и суффикса к заданной текстовой строке, которая предварительно выбрана в текстовом файле:

TagWrapper(Left, Right)
{
  ClipSaved := ClipboardAll
  Clipboard =
  send ^c
  Clipboard = %Left%%clipboard%%Right%
  send ^v
  Clipboard := ClipSaved
  ClipSaved = 
}

Функция работает, копируя текст в буфер обмена, а затем добавляя к нему префикс Left и суффикс Right .

Теперь я хотел бы добавить разрывы строк между Left и clipboard а также между clipboard и Right чтобы текст был обернут между двумя строками с содержимым Left и Right . Как я могу это сделать?

Я пробовал добавлять

`n

или же

`r

между префиксом и суффиксом и буфером обмена, например, следующим образом:

TagWrapper(Left, Right)
{
  ClipSaved := ClipboardAll
  Clipboard =
  send ^c
  Clipboard = %Left%%`nclipboard`n%%Right%
  send ^v
  Clipboard := ClipSaved
  ClipSaved = 
}

но это не сработало (скрипт не может даже работать). Какие-нибудь мысли?

1 ответ1

3

Вам нужно переместить средние 2 % символов в следующем, так, чтобы они были рядом с буфером обмена. (Вы, кажется, вставили `` `n``" в середине %clipboard%)

  Clipboard = %Left%%`nclipboard`n%%Right%

то есть это было бы улучшением:

  Clipboard = %Left%`n%clipboard%`n%Right%

Если это по-прежнему не работает, то в учебном руководстве и обзоре AutoHotKey есть конкретный пример, в котором говорится об использовании `` `r`n`` для добавления возврата каретки и перевода строки.

(В зависимости от того, на какой платформе вы работаете, текстовые файлы будут иметь разные окончания строк: см . Великий раскол новой строки)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .