Если я правильно вас понимаю, вы хотите иметь один код, который будет вставлять открывающий и закрывающий теги, а также сохранять и поддерживать схему отступов. В моем решении ниже он копирует все перед курсором на текущей строке и вставляет его в начало каждой строки. Я также сделал его функцией, чтобы его можно было повторно использовать для любого количества тегов, как вы хотите, как показано на нескольких дополнительных, которые я добавил в качестве примеров.
Редактировать: Модифицированный код на основе комментариевниже
:*:<div>::
:*:<html>::
:*:<title>::
:*:<body>::
f_TagReplace( SubStr( A_ThisHotkey , 4 ) , "</" . SubStr( A_ThisHotkey , 5 ))
Return
:*:{::
f_TagReplace( "{{}" , "{}}" )
Return
f_TagReplace( sTag , sTagEnd )
{
Clipboard := ""
Send , +{home}^c
ClipWait , 0.2
Send , ^v%sTag%`n^v`t`n^v%sTagEnd%{up}{end}
}
(Оригинальный код для справки)
:*:<div>::
:*:<html>::
:*:<title>::
:*:<body>::
f_TagReplace( SubStr( A_ThisHotkey , 4 ))
Return
f_TagReplace( sTag )
{
sTagEnd := "</" . SubStr( sTag , 2 )
Clipboard := ""
Send , +{home}^c
ClipWait , 0.2
Send , ^v%sTag%`n^v`t`n^v%sTagEnd%{up}
}