Mahou: Автозамена

Created on 25 Sep 2016  ·  31Comments  ·  Source: BladeMight/Mahou

К примеру, установил какое-то слово, которое должно заменится на другое слово: eml = [email protected] и т.д. Списочек коротких слов и их полных версий по-началу можно тупо вписывать в конфигурационный файл, чтобы не возиться с изменением интерфейса. Ввел слово, нажал пробел и появилась его замена - готово!

New Feature

Most helpful comment

У меня Mahou стоит в аатозагрузке.

Рекомендую использовать этот метод автозагрузки, хотя я не уверен в способе дело. Наверно иногда слетает .Net при запуске, попробуй обновить что-ли.

какая же крутая штука у тебя получилась!

Да и к тому же своим собственным фирменным способом. 😄

All 31 comments

Поддержу! Нужная фича!!!

Как я понял для каждой локали(языка) свои правила автозамены?

Против. Для заявленной цели можно написать скрипт для AutoHotkey:

AutoHotkey Mahou

Зачем создавать то, что уже есть? Давайте, ув-мый @BladeMight лучше подумает, как решить #4.

Спасибо.

Как я понял для каждой локали(языка) свои правила автозамены?

Думаю, да. Потому что в одной раскладке слово - лишь непонятный набор букв, в другой - что-то осмысленное и используемое в речи.

Против. Для заявленной цели можно написать скрипт для AutoHotkey

Какой смысл устанавливать дополнительную прогу ради такого мизерного функционала? Для @BladeMight написать код, который будет тупо сопоставлять вводимые слова с имеющимися в автозамене легче лёгкого, судя по тому, какой огромный объём работы он вчера проделал. Да и программа-то об этом же - работе с вводимым тексом.

Какой смысл устанавливать дополнительную прогу ради такого мизерного функционала?

Функциональные возможности AutoHotkey огромны, мне ещё много где программа пригождается. А занимает скрипт всего 2 мегабайта оперативной памяти.


Какой смысл устанавливать дополнительную прогу ради такого мизерного функционала?

Ради уважения к труду программиста, ради нас бесплатно тратящего своё время.


Для @BladeMight написать код, который будет тупо сопоставлять вводимые слова с имеющимися в автозамене легче лёгкого

Вот совсем не факт. Перед тем, как прийти к AutoHotkey, я перепробовал с десяток программ из этого списка, многие из которых проприетарные. И только PhraseExpress всегда работает правильно, но увы, она стоит 50 долларов, а в бесплатной версии уведомления не дадут покоя.

Проблемы у всех этих программ три.

  1. кодировки,
  2. клавиатурные раскладки,
  3. non-ASCII символы, в том числе кириллические.

Если @BladeMight справится, честь ему и хвала. Но только я чувствую, что количество багрепортов в этом репозитории заметно возрастёт.


Спасибо.

Функциональные возможности AutoHotkey огромны

Ну так это целый язык, для управления различными возможностями системы.

Ради уважения к труду программиста, ради нас бесплатно тратящего своё время.

Очень приятно что хоть кто-то думает обо мне, 😄 но я все же попробую сделать автозамену,

  1. кодировки,
  2. клавиатурные раскладки,
  3. non-ASCII символы, в том числе кириллические.

Все решаемо, я уже довольно хорошо знаком со всем этим.(Плюс ко всему я смотрел код AutoHotkey)
Будет время, Я сделаю.

Сегодня выдался свободный денек, у меня в общем получилось, вот, а еще вот wiki(для понятия что к чему, хотя в подсказке в Mahou думаю и так понятно).

О, суперски придумано с multi line. Гляну сегодня. Спасибо!

У меня Mahou стоит в аатозагрузке. И почему то раз в несколько перезагрузок сразу при запуске крэшится и система подвисает на несколько секунд и потом появляется окно с предложением закрыть программу. Каких то закономерностей я не увидел. Как крэш репорт тебе отослать?

окно с предложением закрыть программу

А в нем есть подробнее или что-то вроде того? Если да то копируй все от туда и пиши на почту или в новой issue.

какая же крутая штука у тебя получилась! автозамена прям радует. спасибо! можно закрывать

У меня Mahou стоит в аатозагрузке.

Рекомендую использовать этот метод автозагрузки, хотя я не уверен в способе дело. Наверно иногда слетает .Net при запуске, попробуй обновить что-ли.

какая же крутая штука у тебя получилась!

Да и к тому же своим собственным фирменным способом. 😄

сделал новый метод автозагрузки. посмотрим потом, будут ли крэши повторяться.
заметил, что переключение раскладки в проге Sublime text криво работает. Когда нажимаю горячую клавишу с английского текста ghbdtn получается ghbdtпривет

в проге Sublime text криво работает

Если про конвертацию выделения без выделенного то:
Потому что там, CTRL+C/CTRL+INSERT копирует линию, без выделения, он конвертирует скопированное, и один символ удаляется(чего хватает для удаления выделения) ghbdtпривет, такое уж поведение этой(и Atom) проги.

Когда нажимаю горячую клавишу

Какую? (Если я не угадал с выше)

Какую? (Если я не угадал с выше)

Да и двойной шифт, и контрол+шифт+/
и не конверация выделенного, а просто написал слово и нажал горячую клавишу, не выделяя текста.
как это вообще понимать - конвертация выделения без выделенного?:)
какую линию они копирую? совсем не понял ни единого момента в объяснении ситуации

  1. Я спрашивал про тип(Конверт выделения/линии/слова).
  2. Назначены ли у вас та же гор клавиша на Конверт выделения/линии/слова?
  3. Проблема есть только в Конверт выделения.(это не вопрос)

конвертация выделения без выделенного?:)

Да именно так и понимать, потому что Sublime Text дает линию при CTRL+C/CTRL+INSERT без выделенного, поэтому будут проблемы если назначить на конверт выделения и слова/линии одну гор. клавишу(из-за поведения Sublime Text, с его линией).

1 конвент последнего написанного слова
2 назначены, но когда вы спросили, я поменял конверт слова на двойной лифт, а конверт выделения на двойной контрол и проблема действительно исчезла.
3 проблема не знаю где, но при одинаковых горячих клавишах получается такой вот результат.

Понял, что вы имеете ввиду. Mahou отрабатывает два раза из за одинаковых горячих клавиш. А нельзя как то определить, нужно ли использовать именно конверт выделение в данный момент, а не конверт слова, и наоборот? Ну то есть очевидно же, что если ничего не выделено, то и не за чем отрабатывать горячую клавишу для выделения

А нельзя как то определить, нужно ли использовать именно конверт выделение в данный момент

Нет, т.к. буфер обмена не пуст.(Опять Sublime со своей линией)

что если ничего не выделено

Понять выделено или нет в какой-то там форме в каком то окне(а то и в сайте) - невозможно, единственный способ, обработать CTRL+C/CTRL+INSERT (то есть копирование текста) если пусто в буфере то не надо, если нет то надо.

все по полочкам разложили, спасибо.
решение для этой конкретно программы - добавить в настройки такую строку и все будет супер:
"copy_with_empty_selection": false

решение для этой конкретно программы - добавить в настройки такую строку и все будет супер:
"copy_with_empty_selection": false

Рад, что разобрался, может добавлю на Wiki позже...

уже даже вики почитал, но сниппеты для меня не заработали :(

@BladeMight, нужен совет. вот видео моих попыток: http://take.ms/GO52U

вот видео моих попыток: http://take.ms/GO52U

@pop0ff Не нужно писать -> перед словом, пишите просто слово и пробел!
Пример:
->mahou = mahou+Space
P.S. Насчет подсказки языка, увеличьте ширину(W) или уменьшите размер шрифта если хотите чтобы показывало по 2 буквы.

@pop0ff Обновил Wiki, почитайте.

@BladeMight, благодарю за помощь, заработало.
Похоже на сейчас есть ограничение: автозамена работает только с lower-case сокращениями?!
Во избежание коллизий я все сокращения раннее держал в UPPER-case, в mahou такой способ не работает. Что думаете по этому поводу?

P.S. насчет тултипа - спасибо за подсказку. я вообще переполз к Вам совсем недавно из пунто (пользовался перепакованной версией от el-chupacabra), там тултип языка был в виде флага языка и показывался только во время переключения. в mahou почему-то довольно заметно падение fps в текстовой области, по-этому отключил для себя пока эту функцию. Возможно это связано с большой частотой обновления (50 мс по умолчанию), но не экспериментировал еще.

upd: хм, некотрые аббревитуры в UPPER-case все-таки нормально транслируются, некоторые нет. пока не понял конкретных шагов воспроизведения.

Вот сниппеты в которых Я проверял UPPER/_lower_ case способность:

->~!@#$%^&*()_+|
====>Symbols keyboard row, UPPER-CASE<====
->QWERTYUIOP{}
====>First keyboard row, UPPER-CASE<====
->ASDFGHJKL:"
====>Second keyboard row, UPPER-CASE<====
->ZXCVBNM<>?
====>Third keyboard row, UPPER-CASE<====
->`1234567890-=\
====>Symbols keyboard row, lower-case<====
->qwertyuiop[]
====>First keyboard row, lower-case<====
->asdfghjkl;'
====>Second keyboard row, lower-case<====
->zxcvbnm,./
====>Third keyboard row, lower-case<====

Все отлично работают. К стати вы можете совмещать русские и английские(или какие-то еще, зависит от возможностей установленных раскладок) символы в сниппетах и они будут работать:

->Vыsoko
====>В горах, очень высоко...<====

В примере выше символ "ы" из русской раскладки а остальные из английской.
upd: Добавил о совмещении символов разных раскладок на Wiki(РУ/EN).

показывался только во время переключения

Интересно... добавлю такую функцию.

upd: Добавил в 1.4.0.5.

BladeMight почти постоянно при выходе из сна комп зависает на несколько секунд. Иногда во время работы зависает, иногда становится нерабочей нижняя строка с меню Пуск. Я не уверен, виновна ли ваша программа или нет, но раньше я не припомню таких случаев. У вас есть такие симптомы?

и это, такой вопрос. Какие библиотеки винды используются в Mahou? Я сейчас запустил на Mac'е через Wine, Интерфейс показывает, настройки сохраняет, в статусбаре иконка есть, при выборе горячих клавиш нажимаемые клавиши определяются, а вот переключения раскладки не происходит. Может нужен NetFramework или что то еще?

@avently Если запустился, то значит .Net(4.0/4.5) уже есть. А еще нужны "user32.dll" и "kernel32.dll".

Я сейчас запустил на Mac'е через Wine

Интересненько... а с выше упомянутыми библиотеками как работает?

У вас есть такие симптомы?

У меня нет, а может быть проблемы со сниппетами? Если их не правильно настроить у меня тоже зависает, но только при включенных и только при сохранении настроек окна "Дополнительные настройки".
upd: А ошибся, не при сохранении а при нажатии Space(То есть увеличить сниппет) после любого назначенного сниппета, если хоть один из них не правильно настроен.

Эти dll уже встроены, потому что в списке на установку в wine их нет. Жаль, окно для дебага из бета версий на маке не показывается вовсе. Не знаю почему.
Mahou даже просто язык не меняет после нажатия горячих клавиш. Может, он даже не детектит нажатие горячих клавиш.

А как понять, правильно ли составлен список автозамены? Все слова автозаменяются нормально же

Может, он даже не детектит нажатие горячих клавиш.

Абсолютно верно, ведь Wine не поддерживает глобальные гор. клавиши...
Может это поможет.

А как понять, правильно ли составлен список автозамены? Все слова автозаменяются нормально же

В новой версии будет выходить сообщение о неправильном составлении.

Эти dll уже встроены, потому что в списке на установку в wine их нет

А во вкладке Libraries в winecfg?

@BladeMight, всё-таки никак не пойму, зачем мучиться с этим, причём достаточно сложным, функционалом, когда всё уже есть в бесплатном и хорошо проработанном AutoHotkey. И здесь то же самое.

Mahou — уникальная программа, некоторых её важных функций нет нигде вообще. Могу дополнительно идей накидать, программы для каких целей отсутствуют; временами я несколько feature requests за день составляю. Например, вот моё последнее задание на фриланс-биржу — до сих пор нет рабочего скрипта, который сохранял бы полезные веб-страницы на сервисы кэширования, дабы, если ссылки станут мёртвыми, содержание страниц не пропадало бы бесследно.

Смотрите. Ведь популярность программы обретают за счёт функционала, которого нет у других, или же (что хуже) рекламы.

Спасибо.

Was this page helpful?
0 / 5 - 0 ratings