Используя 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