Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Vim при русской раскладке не реагирует на команды  (Прочитано 7715 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн agent0

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Здравствуйте!
У меня следующая ситуация: в vim после ввода русского текста и выхода в  командный режим клавишей esc vim не реагирует на команды.
Таким образом перемещать курсор клавишами РОЛД я не могу. Я должен обязательно перевестись на английскую раскладку и только тогда клавишами HJKL смогу перемещать курсор. Меня это бесит.

Вопрос: разве так должно быть? По-моему все программы нормально реагируют на русскую раскладку. Например в LibreOffice чтобы открыть файл я нажимаю CTRL+Щ (она же CTRL+O) и не задумываюсь какая у меня сейчас раскладка.
Это только у меня так или у всех? Если у всех, то предлагаю написать автору vim'а чтобы он это исправил.

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
Переключайте язык по другой комбинаций. У меня <C-S>
Добавте эти строки в свой .vimrc файл
Код: (vim) [Выделить]
" ============НАСТРОЙКА КЛАВИАТУРЫ И МЫШИ============
" Настраиваем переключение раскладок клавиатуры по <C-^>
set keymap=russian-jcukenwin
" Раскладка по умолчанию - английская
set iminsert=0
" аналогично для строки поиска и ввода команд
set imsearch=0

"==============Переключение раскладок и индикация выбранной=============
"" Переключение раскладок будет производиться по <C-S>
""
"" При английской раскладке статусная строка текущего окна будет синего
"" цвета, а при русской - белого.
function MyKeyMapHighlight()
if &iminsert == 0
hi StatusLine ctermfg=DarkBlue guifg=DarkBlue
else
hi StatusLine ctermfg=white guifg=white
endif
endfunction
" Вызываем функцию, чтобы она установила цвета при запуске Vim'a
call MyKeyMapHighlight()
" При изменении активного окна будет выполняться обновление
" индикации текущей раскладки
au WinEnter * :call MyKeyMapHighlight()
cmap <silent> <C-S> <C-^>
imap <silent> <C-S> <C-^>X<Esc>:call MyKeyMapHighlight()<CR>a<C-H>
nmap <silent> <C-S> a<C-^><Esc>:call MyKeyMapHighlight()<CR>
vmap <silent> <C-S> <Esc>a<C-^><Esc>:call MyKeyMapHighlight()<CR>gv
« Последнее редактирование: 10 Января 2013, 20:13:12 от yorik1984 »

Оффлайн agent0

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Стер все содержимое vimrc и вписал то что выше. Переключение по ctrl+^ или по ctrl+s не происходит.

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
У меня все работает. даже когда удалил все из файла
« Последнее редактирование: 12 Января 2013, 01:15:38 от yorik1984 »

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Да, меня это тоже немного раздражает. Однако хочу заметить, практически всегда оказывается, что в файлах, редактируемых вимом, и не должно быть русского языка. Вы ведь, надеюсь, не пишете комментарии в скриптах по-русски?  :coolsmiley:
Так что и проблема с раскладками не проявляется.

BTW, Firefox научился реагировать на хоткеи независимо от раскладки к концу 2007.
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн agent0

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Цитировать
У меня все работает. даже когда удалил все из файла
Может у меня криво как-то он установлен? Нашел ещё способ бывает называется langmap.
http://ru.wikibooks.org/wiki/Vim#Vim_.D0.B8_.D1.80.D1.83.D1.81.D1.81.D0.BA.D0.B0.D1.8F_.D1.80.D0.B0.D1.81.D0.BA.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D0.B0.D1.82.D1.83.D1.80.D1.8B
Но у меня почему-то ничего ни работает. Сначала сделал ремап по отдельности Р=H О=J Л=K Д=L и  курсор двигался. Потом это стер, вписал ремап целой строки как на том сайте написано - не работает. Думаю, ладно - сделаю ремап для каждой индивидуальной клавиши. Опять вписал как  было - не работает! WTF !,
Как такое вообще может быть?


[/size]
Цитировать
Вы ведь, надеюсь, не пишете комментарии в скриптах по-русски?  [/font][/size][/size]

Стараюсь не писать. Но не из-за вима. В любом случае, при редактировании текстов реакция редактора должна быть нормальной. Чем ctrl+Щ от ctrl+O отличается в LibreOffice? Ничем. И то и то открывает файл.

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
а как установлен? какая система?

Оффлайн agent0

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Я вот так устанавливал:
sudo apt-get install vim-runtime sudo aptitude install vim sudo apt-get install vim vim-gnome vim-doc

Система ubuntu 12.04.1 32-разрядная

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
зачем столько sudo? :o
Достаточно
Цитировать
sudo apt-get install vim vim-gnome
или это порядок установки такой был? не все одновременно.
Попробовать полностью стнести все эти пакеты вместе с файлами конфигураци.
sudo apt-get purge <имя_пакета>В домашнем каталоге надо вручную снести каталог .vim

Оффлайн agent0

  • Автор темы
  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Извините за долгий ответ - экзамены.
Я сейчас стёр весь файл ~/.vimrc и создал новый. Как это ни странно - переназначение langmap заработало. И даже в нескольких вариантах. Вот то что было в файле:
"set langmap=ролдРОЛД;hjklHJKL
" Перемещение уже работало на русском. Был пустой файл со строкой, которая выше


"set langmap=рh,оj,лk,дl,РH,ОJ,ЛK,ДL
" Перемещение так тоже работало. В файле были только комменты и пустые строки перед строкой, которая выше.


set langmap=ролдРОЛД;hjklHJKL,шi
" работает.  В файле были только комменты и пустые строки перед строкой, которая выше.
Походу на том сайте была "кривая" строка для langmap. Остальные клавиши буду добавлять по мере необходимости.

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



Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера

Оффлайн vomu

  • Новичок
  • *
  • Сообщений: 12
  • Слава пиратству!
    • Просмотр профиля
    • Скачать ворд 2003: бесплатно, без регистрации и смс!
По поводу LibreOffice - не согласен. Сталкивался с проблемой горячих клавиш на русской раскладке. Но решить, к стыду своему, даже не пробовал. А потом всё само заработало.

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.