Используя PhpStorm IdeaVim, я не могу использовать клавиши shift + для выбора слов

Я использую PhpStorm 7.1.2 с плагином IdeaVim.

В режиме Вставки, я хочу выбрать слова, используя Shift + ArrowKey. Однако этот плагин IdeaVim, похоже, не позволяет это делать. Я могу выделить только слова в командном режиме с помощью клавиши v.

shift+Home/End/PageDown/PageUp или shift+ctrl+arrowKeys все не работают должным образом.

Я попытался изменить ярлыки (т.е. выбрать вправо = > сдвиг + вправо) в настройке Keymap, но не работал.

Можно ли каким-либо образом достичь этого поведения, отличного от vim?

ОБНОВЛЕНИЕ 1

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

Ответы

Ответ 1

Я бы создал ~/.ideavimrc со следующими строками

nmap <S-Up> v<Up>
nmap <S-Down> v<Down>
nmap <S-Left> v<Left>
nmap <S-Right> v<Right>
vmap <S-Up> <Up>
vmap <S-Down> <Down>
vmap <S-Left> <Left>
vmap <S-Right> <Right>
imap <S-Up> <Esc>v<Up>
imap <S-Down> <Esc>v<Down>
imap <S-Left> <Esc>v<Left>
imap <S-Right> <Esc>v<Right>

Это делает мой текст для выбора текста таким же образом.

Ответ 2

создать файл ~/.ideavimrc со следующими строками

nnoremap <S-Left> :action EditorLeftWithSelection<CR>
nnoremap <S-Right> :action EditorRightWithSelection<CR>
nnoremap <S-Up> :action EditorUpWithSelection<CR>
nnoremap <S-Down> :action EditorDownWithSelection<CR>

inoremap <S-Left> <C-O>:action EditorLeftWithSelection<CR>
inoremap <S-Right> <C-O>:action EditorRightWithSelection<CR>
inoremap <S-Up> <C-O>:action EditorUpWithSelection<CR>
inoremap <S-Down> <C-O>:action EditorDownWithSelection<CR>

Ответ 3

Кажется, что это невозможно из коробки. Однако, нетрудно взломать плагин, чтобы удалить жестко закодированные действия vim для клавиш shift + стрелки, если у вас есть ideavim. Это позволяет использовать поведение по умолчанию.

Шаги:

  • git clone https://github.com/JetBrains/ideavim.git
  • Откройте новый клонированный проект в идеавиме.
  • Настройте зависимость intdij sdk в файлах/структуре проекта (при необходимости).
  • Изменить ideavim/src/com/maddyhome/idea/vim/RegisterActions.java.
  • Удалите все ключевые действия, которые переопределяют клавишу shift +): :s%/^.*KeyEvent.VK_\(KP_\)\?\(LEFT\|RIGHT\|UP\|DOWN\), KeyEvent.SHIFT_MASK.*$//.
  • Перестроить с помощью ant задач clean compile dist.
  • Переустановите плагин с помощью опций/плагинов/установите плагин с диска и найдите ideavim/out/dist/ideavim-xx-dev.zip

Ответ 4

Если у вас есть привязка к включению/отключению IdeaVIM, вы можете выбрать shift-стрелку, временно отключив IdeaVIM, а затем выбрав shift-стрелку, а затем снова включив IdeaVIM.

Действие в диалоговом окне Keymap называется "Vim Emulator", а в "Таблице по умолчанию" оно привязано к V; в макете "Mac OS X 10.5+" она привязана к V.

Вы можете найти ярлыки для вашей раскладки клавиатуры либо в диалоговом окне "Настройки" > "Диалоговое окно", либо в меню "Справка" > "Найти действие...".

(Примечание: также называется "опцией" или "alt"; является "командной" клавишей на Mac.)

Ответ 5

Отключить эмулятор Vim 2 способами:

1.- Ctrl+alt+v / Cmd+alt+v
2.- Tools (menu) -> Vim emulator

Ответ 6

Начиная с IdeaVim 0.52, VIM-437 исправлено, и вы можете использовать опцию 'keymodel', чтобы включить специальное поведение со смещенными клавишами и выборами. Если вы добавите :set keymodel^=startsel в ~/.ideavimrc, то клавиши Shift + курсор переведут вас в визуальный режим (или в режим выбора, если 'selectmode' содержит key). К сожалению, в настоящее время, похоже, есть ошибка, которая означает, что это работает только в обычном режиме и не работает в режиме вставки. См. VIM-1756.

Есть еще варианты для 'keymodel', которые могут быть полезны. Проверьте документы.

Ответ 7

Я взломал последнюю версию IdeaVim, чтобы не связывать клавиши со стрелками. Я обнаружил, что keymodel не совсем то, что я хотел. Я слишком привык к взлому Джо Томаса в предыдущей версии, чтобы изменить мои способы.

Мою взломанную версию можно найти здесь: https://github.com/shaunpatterson/ideavim