<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Копирование и замена слова в текстовом редакторе]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10148&amp;type=atom" />
	<updated>2014-11-13T17:03:29Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10148</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88321#p88321" />
			<content type="html"><![CDATA[<p>Часть слова копируется и у меня в AkelPad надо в функции Copy<br /></p><div class="codebox"><pre><code>SendInput {Right}{Left}^+{Right}^{Ins}^{Left}{Right %Pos%}</code></pre></div><p>заменить на<br /></p><div class="codebox"><pre><code>SendInput {Right}^{Left}^+{Right}^{Ins}{Left}{Right}^{Left}{Right %Pos%}</code></pre></div><p>Так работает и в AkelPad и в PLSqlDeveloper</p><br /><p>А вообще для полного счастья и универсализма хотелось бы задействовать эти функции на клавиши Ctrl+C и Ctrl+V. Но, чтоб так можно было сделать нужна функция определения находится ли каретка в середине слова CheckInWord например. Может на границе слова(тогда и однобуквенные слова можно было бы менять). Но я бы сделал только внутри слова, чтоб при копировании строк и вставке перед первым символом в первой позиции строки вставка происходила бы без замены. И если не внутри слова - передовались бы дальше Ctrl+C или Ctrl+V. Но в ней есть проблема, которую я сразу не решил: как определить, что при ^{Left} каретка (надо для определения символа слева) не перескочит на предыдущую строку (AkelPad) или не останетcя на текущей (PlSqlDeveloper). Надо в&nbsp; набор символов Stop включить символы конца строки, а я еще не знаю как. Может <strong>Irbis</strong> поможет.</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T17:03:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88321#p88321</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88318#p88318" />
			<content type="html"><![CDATA[<p>Копирует только часть слова.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-11-13T16:17:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88318#p88318</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88314#p88314" />
			<content type="html"><![CDATA[<p>Не работает от слова &quot;совсем&quot;, или что-то делает, но не то, что заявлено?<br />Работа проверялась в стандартном блокноте и в том, который с двумя плюсами, и в командной строке ТоталКомандера. Поздней посмотрю, в чем причина.</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2014-11-13T15:58:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88314#p88314</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88313#p88313" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>F12 копирует слово в буфер, более длительное нажатие вставляет из буфера вместо слова в позиции курсора.</p></blockquote></div><p>В SciTe не работает.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-11-13T15:41:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88313#p88313</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88303#p88303" />
			<content type="html"><![CDATA[<p><strong>Irbis</strong><br />Супер! Спасибо большое! Добавил себе еще при вставке, если есть выделенное, то вместо него, чтоб вставлялось! Ценная фича в результате получилась, особенно для программистов - переменные копировать!</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T12:38:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88303#p88303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88297#p88297" />
			<content type="html"><![CDATA[<p>Копирование-вставка в виде процедур, выделенный текст скопируется.<br /></p><div class="codebox"><pre><code>Global Stop
Stop = [\&#039;\&quot;\/\\\?\!\,\.\(\)\&lt;\&gt;\:\;\&amp;%A_Space%].* ; &quot;
F12::
   KeyWait, F12, T0.25
   if ErrorLevel
   {
      KeyWait, F12
      Paste()
   }
   Else
   Copy()
Return

Copy()
{
   Clipboard =
   SendInput ^{Ins}
   ClipWait, 0.2
   if !ErrorLevel
      Return
   SendInput ^+{Left}^{Ins}
   ClipWait, 0.2
   Pos := StrLen(Clipboard)
   Clipboard =
   SendInput {Right}{Left}^+{Right}^{Ins}^{Left}{Right %Pos%}
   ClipWait, 0.2
   Clipboard := RegExReplace(Clipboard, Stop)
}

paste()
{
   Text := Clipboard
   Clipboard =
   SendInput ^{Left}^+{Right}^{Ins}
   ClipWait, 0.2
   Pos := StrLen(Clipboard)-StrLen(RegExReplace(Clipboard, Stop))
   SendInput +{Left %Pos%}%Text%
   Clipboard := Text
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2014-11-13T12:24:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88297#p88297</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88294#p88294" />
			<content type="html"><![CDATA[<p><strong>Irbis</strong><br />Конечно давай исправления. Да еще бы хорошо эти две процедуры (копирования и вставки) оформить подпрограммами (чтоб можно было прицепить их к любой клавише и окну) и еще добавить при копировании проверку: если при копировании в тексте уже есть выделение, то копировать не слово, а выделенное. Тогда мне вообще думать не придется!</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T12:05:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88294#p88294</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88293#p88293" />
			<content type="html"><![CDATA[<div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Offtopic:</div><div class="fancy_spoiler"><p>Делал аналогичный скрипт, но не удалось заставить хорошо работать, если курсор стоит вначале слова. Скрипт смотрел,что попало в буфер, и если это был пробел/перенос соответственно реагировал. Работало это долго и ненадежно(задержки попадания в буфер).</p><p>Обнаружил, что в Notepad++ в плагине TextFX есть функция Mark Word or Find Reverse.<br />Повесил на хоткей. Можно макросом объеденить с Copy/Paste.</p><p>Как для других редакторов не знаю, но вещь нужная.</p></div></div>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2014-11-13T12:03:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88293#p88293</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88291#p88291" />
			<content type="html"><![CDATA[<p>Хорошо, что работает.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>Хотя я уже нашел баг, кому интересно, могут найти и исправить. <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p></div></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2014-11-13T11:52:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88291#p88291</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88288#p88288" />
			<content type="html"><![CDATA[<p><strong>rbis</strong><br />Спасибо, точно, все работает!</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T11:36:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88288#p88288</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88286#p88286" />
			<content type="html"><![CDATA[<p>Так &quot;не убегает&quot;. Дополнительно, при копировании не захватываются знаки препинания, например точки и запятые в конце слова логичней оставлять. Если это не нужно, можно просто исправить шаблон (переменная Stop)<br />F12 копирует слово в буфер, более длительное нажатие вставляет из буфера вместо слова в позиции курсора.<br /></p><div class="codebox"><pre><code>Stop = [\&#039;\&quot;\/\\\?\!\,\.\&lt;\&gt;\:\;\&amp;%A_Space%].*
F12::
   KeyWait, F12, T0.25
   if ErrorLevel { ; paste
      KeyWait, F12
      Text := Clipboard
      Clipboard =
      SendInput ^{Left}^+{Right}^{Ins}
      ClipWait, 0.2
      Pos := StrLen(Clipboard)-StrLen(RegExReplace(Clipboard, Stop))
      SendInput +{Left %Pos%}%Text%
      Clipboard := Text
   }
   Else { ; copy
      Clipboard =
      SendInput ^+{Left}^{Ins}
      ClipWait, 0.2
      Pos := StrLen(Clipboard)
      Clipboard =
      SendInput {Right}{Left}^+{Right}^{Ins}^{Left}{Right %Pos%}
      ClipWait, 0.2
      Clipboard := RegExReplace(Clipboard, Stop)
   }
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2014-11-13T11:21:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88286#p88286</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88284#p88284" />
			<content type="html"><![CDATA[<p>Ну, если курсор стоял в середине слова и надо выделить слово, то после нажатия ^Left&nbsp; ^+Right он станет в конце.</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T10:50:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88284#p88284</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88283#p88283" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>позиция редактирования убегает</p></blockquote></div><p> Как это?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-11-13T10:25:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88283#p88283</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88280#p88280" />
			<content type="html"><![CDATA[<p>Кстати да, подсказали, попробую. Тут недостаток, если заработает - позиция редактирования убегает. Но, может еще какие способы есть. Как, например кликнуть два раза мышкой в позицию редактирования? Можно ее вычислить для управления мышью?</p>]]></content>
			<author>
				<name><![CDATA[Samotek]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32672</uri>
			</author>
			<updated>2014-11-13T09:37:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88280#p88280</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование и замена слова в текстовом редакторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=88279#p88279" />
			<content type="html"><![CDATA[<p>В &quot;Блокноте&quot; можно так: удерживая Ctrl, нажать стрелку влево. Далее, не отпуская Ctrl, зажать Shift и нажать стрелку вправо. Или наоборот, сначала стрелку вправо, затем влево.<br />Правда, при этом захватывается пробел справа слова. Если он не нужен, тогда в конце ещё отпустить Ctrl (продолжая удерживать Shift) и нажать стрелку влево.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-11-13T09:20:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=88279#p88279</id>
		</entry>
</feed>
