-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
не получается заставить работать на Mac OS 10.10.2 #17
Comments
Я, к сожалению, вряд ли смогу вам помочь, у меня нет мака и я не смогу все это проверить. Попробуйте обратиться к автору http://github.com/vovkasm/input-source-switcher |
Спасибо. Отправлено с iPhone
|
Я понимаю, но может он что-нибудь подскажет, я то не могу это воспроизвести. |
Мне тоже интересно, если получится заставить работать под маком, то отпишитесь пожалуйста как. |
@ghost355 проверьте также, что issw не просто правильно переключает раскладку, но и правильно репортит текущую |
Взял у @myshov xkbswitch скомпиленный под мак и положил в /usr/local/bin/ Все работает. |
Круто, может тогда его реализацию упомянуть в доке? Я в этой ситуации действую вслепую - у меня не на чем проверить реализации, поэтому приходится доверять авторам. |
Давайте, если автор в ближайшие пару дней не откликнется, то форкну его репозитории, допишу нормальное README и отпишусь в местное README. |
Кстати, его сишный интерфейс надо будет поправить: он течет из-за malloc(). Там вполне статического буфера хватит. |
спасибо, xkbswitch нормально работает- потестирую в процессе работы, пока основную задачу выполняет |
@ghost355 Возможно это задержка отрисовки в трее, у меня тоже как бы медленно переключает в linux/xneur - флаг перерисовывается через почти секунду, а на самом деле переключение раскладки происходит мгновенно |
@lyokha проверил если сразу после Esc нажать команду то первое нажатие не срабатывает, только второе, ну или чуть подождать.. есть какая то пауза, это не критично, но при быстрой работе может и будет раздражать, пока вроде все ок |
а как-то можно заставить работать, например для замены - клавиши 'r' - при этом же режим Insert не включается? |
Почему то был уверен, что создал ишью на эту тему. Да, было бы очень круто, если в Replace mode расскалдка была как и в insert mode. Но давайте обсуждение этого все же вынесем в отдельное ишью. |
Режим Replace Mode (который включается большой |
@ghost355 Может у вас какой-нибудь insert mapping установлен, начинающийся с |
:map сообщает- "no imap found' |
@ghost355 Задержка с Escape может быть из-за tmux'a. @wbauer Попробуй https://github.com/myshov/libxkbswitch-macosx работает вроде неплохо. |
Да с Xkbswitch-macosx все работает! |
Предлагаю Лёхе упомянуть об альтернативе в README. |
@wbauer Я уже предлагал сделать ссылку на эту реализацию, только ребята собирались его немного улучшить (устранить утечки памяти и т.п.), пока от них нет вестей. В любом случае я сделаю это, если решение действительно рабочее, и, похоже, это действительно так. |
@wbauer Пофиксил интерфейс. Проверил работает в vim 7.4.712, Mac OS X 10.10. Советую обновиться :) |
@myshov Ок, тогда я добавлю ссылку на твою реализацию сегодня-завтра. |
@lyokha ok, я переписал readme, поставил ссылку на vim-xkbswitch |
Всем привет! Проблема была в том, что MacOS X обновляет источники ввода для процесса внутри CFRunLoop из CoreFoundation, а поскольку не-GUI версия vim никаких циклов из оси не запускает, то и источники ввода не обновлялись. |
проверил input-source-switcher 0.3 - вроде работает :) set timeoutlen=1000 ttimeoutlen=0 вот это сработало - переключение из i-режима моментальное не понятно почему, но set -s escape-time 0 не воспринимается vim 'ом - говорит неизвестная опция Версия 7.4.826 Спасибо! |
set -s escape-time 0 - это конфигурация для tmux, а не для vim. сб, 29 авг. 2015, 22:52, ghost355 notifications@github.com:
|
<--set -s escape-time 0 - это конфигурация для tmux, а не для vim.--> кто ж знал то :) теперь буду знать |
Парни, есть кто живой? У меня сейчас, в 2021м, на big sur, не работает это автопереключение на английский ни с libInputSourceSwitcher.dylib ни с libxkbswitch.dylib :( |
@vlad2135 Я не копался подробно, но предполагаю, что Apple окончательно выпилили/доломали Carbon api и больше внешние приложения не могут сами управлять текущей раскладкой, только система. Если это не так и есть альтернативные api, то буду рад услышать про них и обязательно переведу на них input source switcher ;-) |
@vovkasm хм. Из консоли и issw и xkbswitch раскладку переключают. А вот в виме никакой реакции у меня не происходит. В vim 8.2.2029 и в MacVim 8.2.2681. Что это означает? Что Carbon API работает успешно, а я как-то накосячил со сборкой либ и/или их настройкой в виме? |
@vlad2135 Это означает, что Carbon API ещё работают, да. Проблема где-то в способе подключения плагинов. Надо смотреть и изучать. А правильно я понял, что не работает даже vim, запущенный в консоли в текстовом режиме? |
Да, даже в консоли в текстовом режиме. let g:XkbSwitchEnabled = 1 терминал iterm2, zsh. Комментарии топикстартера про tmux я не понял, т.к. у меня этой софтины вообще нет на маке. |
Работает с таким конфигом:
Первая ссылка описана в README. let g:XkbSwitchEnabled = 1
let g:XkbSwitchLib = '/usr/local/bin/libxkbswitch.dylib' |
установил Input Source Switcher - проверил, работает - issw в терминале переключает язык.
прописал в .vimrc
let g:XkbSwitchEnabled = 1
let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib'
запустил vim - не работает авто переключение на US раскладку.
Из всех протестированных вариантов сработало только
let g:XkbSwitchILayout = 'ru'
При входе в vim в инсерт режим - включался русский, при выходе по Esc включался английский, при входе обратно в инсерт - опять русский.
Убираю эту строчку, и ничего не работает - автопереключение не срабатывает.
если оставляю вышесказанную строчку и добавляю
let g:XkbSwitchNLayout = 'us'
то при переключении в инсерт - русский переключается, и при выходе остается. Если включить принудительно английский, то при следующем заходе в инсерт на русский уже не переключается.
Хотелось бы, чтобы заработало так - при нормал режиме всегда был английский, при инсерт режиме, тот язык, который был включен последним в этом режиме.
Спасибо.
The text was updated successfully, but these errors were encountered: