Dcnfk yt c njq yjub& Yt ,tlf! :vb СфзыДщсл и не придётся перепечатывать текст заново.
Ставим AutoHotKey - фреймворк для клавиатурных утилит. Потом пишем скрипт ruen.ahk:
#Requires AutoHotkey v2.0 #SingleInstance Force ; пробегаемся по всем клавишам, удаляем одинаковые в разных раскладках, экраниуем через ` en := "QWERTYUIOP{}|ASDFGHJKL:`"ZXCVBNM<>?~@#$^&qwertyuiop[]asdfghjkl;'zxcvbnm,./``" ru := "ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё`"№;:?йцукенгшщзхъфывапролджэячсмитьбю.ё" ; собираем карты переключения в обе стороны en2ru := Map() for ch in StrSplit(en) en2ru[ ch ] := SubStr( ru, A_Index, 1 ) ru2en := Map() for ch in StrSplit(ru) ru2en[ ch ] := SubStr( en, A_Index, 1 ) ; общий код для всех хоткеев Correct() { backup := ClipboardAll() ; сохраняем буфер, потом восстановим A_Clipboard := "" ; чистим буфер Send "#{Space}^c" ; Жмём Win+Space и Ctrl+C ClipWait 0.5 ; дожидаемся копирования в буфер if A_Clipboard { ; буфер не пустой result := "" mode := "en" ; по дефолту переводим в английский Loop Parse A_Clipboard { ; для каждого символа из буфера ; ищем варианты переключений для текущего симовола ru := en2ru.Get( A_LoopField, "" ) en := ru2en.Get( A_LoopField, "" ) if en && ru { ; возможны оба варианта - выбираем прошлый result .= mode = "en" ? en : ru } else if en { result .= en mode := "en" } else if ru { result .= ru mode := "ru" } else { ; оставляем как есть result .= A_LoopField } } A_Clipboard := result ; пишем в буфер Send "^v" ; жмём Ctrl+V Sleep 100 ; ждём пока данные заберут } A_Clipboard := backup ; восстанавливаем буфер } ; CapsLock - хоткей коррекци выделения CapsLock:: { Correct() } ; Shift + CapsLock - хоткей коррекции последнего слова +CapsLock:: { Send "^+{Left}" ; Жмём Ctrl+Shift+Left Correct() } ; Ctrl + CapsLock - хоткей коррекции до конца строки ^CapsLock:: { Send "+{End}" ; Жмём Shift+End Correct() } ; Ctrl + Shift + CapsLock - хоткей коррекции с начала строки ^+CapsLock:: { Send "+{Home}" ; Жмём Shift+Home Correct() }
Даблкликаем по нему, и получаем:
переключение раскладки выделенного текста по
CapsLockпоследнего слова - по
Shift + CapsLockдо конца строки - по
Ctrl + CapsLockот начала строки - по
Ctrl + Shift + CapsLock
При желании его можно скомпилировать в exe-шник. Интерфейс самого AHK так и сделан.
Из уникальных фичей: переключает одновременно и раскладку введённого текста, и текущую раскладку клавиатуры.
Известные альтернативы:
Punto Switcher - 100 метровый звездолёт против 12 у AHK. Автопереключение часто не к месту, а горячую клавишу
Breakпойди найти на ноуте. Про интеграцию вашего буфра обмена с сервисами Яндекса я даже не заикаюсь.Caramba Switcher - 60 метров и никаких настроек. Переключения по шифту - тот ещё глюкодром, с которым борятся через самообучение.
Mahou - поди найти клавиши
ScrollиPause.Остальные лень ковырять - расскажите в комментах кому не влом.
