我正在使用带有IdeaVim插件的PhpStorm 7.1.2。
在插入模式下,我想使用Shift + ArrowKey
选择单词。但是,这个IdeaVim插件似乎阻止了这样做。我只能使用v
键在命令模式下突出显示单词。
shift+Home/End/PageDown/PageUp
或shift+ctrl+arrowKeys
都无效。
我尝试在Keymap设置中更改快捷方式(即选择向右=> shift +向右)但不起作用。
有什么方法可以实现这种非vim行为吗?
更新1
在他们的bug tracking system中打开了一张没有任何修复的故障单。所以我想我不能做我上面描述的事情。
答案 0 :(得分:25)
我会使用以下行创建~/.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>
它使我的代码以相同的方式选择文本。
答案 1 :(得分:21)
使用以下行创建〜/ .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>
答案 2 :(得分:10)
似乎无法开箱即用。但是,只要你有ideavim,就不难破解插件去除shift +箭头键的硬编码vim动作。这具有允许使用默认行为的效果。
步骤:
git clone https://github.com/JetBrains/ideavim.git
ideavim/src/com/maddyhome/idea/vim/RegisterActions.java
。:s%/^.*KeyEvent.VK_\(KP_\)\?\(LEFT\|RIGHT\|UP\|DOWN\), KeyEvent.SHIFT_MASK.*$//
。clean compile dist
重建。ideavim/out/dist/ideavim-xx-dev.zip
答案 3 :(得分:4)
如果您有启用/禁用IdeaVIM的绑定,您可以通过暂时禁用IdeaVIM,然后使用移位箭头选择,然后重新启用IdeaVIM来获得移位箭头选择。
Keymap对话框中的操作称为&#34; Vim Emulator&#34;,以及&#34;默认&#34; keymap绑定到 ^ ⌥ V ;在&#34; Mac OS X 10.5 +&#34;键映射它绑定到⌥ ⌘ V 。
您可以在Preferences =&gt;中查找键盘映射的快捷方式。 Keymap对话框,或Help =&gt;查找操作...菜单。
(注意:⌥也称为&#34;选项&#34;或&#34; alt&#34 ;; ⌘是&#34;命令& #34;在Mac上键。)
答案 4 :(得分:1)
从IdeaVim 0.52开始,VIM-437已得到修复,您可以使用'keymodel'
选项启用键和选择键移位的特殊行为。如果将:set keymodel^=startsel
添加到~/.ideavimrc
中,则shift +光标键会将您切换到可视模式(如果'selectmode'
包含key
,则将选择可视模式)。不幸的是,当前似乎存在一个错误,这意味着该错误仅在正常模式下有效,而在插入模式下无效。参见VIM-1756。
'keymodel'
的更多选项可能有用。检出the docs。
答案 5 :(得分:0)
禁用Vim仿真器 2种方式:
1.- Ctrl+alt+v / Cmd+alt+v
2.- Tools (menu) -> Vim emulator
答案 6 :(得分:0)
我破解了IdeaVim的最新版本,以不绑定到箭头键。我发现keymodel并没有完全满足我的要求。在以前的版本中,我已经习惯于乔·托马斯(Joe Thomas)的hack,无法改变自己的方式。
我的被黑版本可以在这里找到:https://github.com/shaunpatterson/ideavim
答案 7 :(得分:0)
我可以建议这不是一个好问题吗?
使用vim的一个优点是减少了字母数字键和箭头之间的手臂移动量。使用shift + arrow不能达到这个目的。
一种无需伸手就可以选择单词的简单方法:
v
进入可视模式(相当于按shift
键)w
将光标移至要选择的文本的末尾一次或多次。 (这等效于按箭头)