在Windows上,在Vim的图形版本中,我使用Control+Shift+Left
(或Right
)在插入模式下选择单词。
为了确保没有任何因素导致其失败,我首先停止了任何初始化文件的加载:
vim -u NONE
然后,在Vim中,:behave mswin
,设置所有这些班次选择等。
为什么它适用于gvim
而不是vim
。我可以确保它在我的计算机上没有任何内容,因为我已停止所有脚本,在vanilla命令提示符下运行vim
等,但它仍然无效。我也在另一台计算机上重现了这个问题。
有人可以提供建议吗?
答案 0 :(得分:1)
要让Ctrl+Shift+Left
和Ctrl+Shift+Right
按照您的问题所述行事,您可以尝试:
if has('gui_running')
;
else
inoremap <c-s-left> <c-o>db
inoremap <c-s-right> <c-o>de
endif
此问题的答案:How to map Ctrl+A and Ctrl+Shift+A differently?解释了为什么Ctrl-Shift-Key
在某些终端无效。
答案 1 :(得分:0)
我发现在控制台Vim中使用:behave mswin
时,您可以使用Shift-Right
选择单个字符,但然后使用Control-Right
(即没有Shift
)选择下一个单词。
但是,我习惯使用Control-Shift
来选择单词,因此我编写了以下AutoHotkey脚本来启用此功能:
SetTitleMatchMode 2 ; for partial matching of Window Title
#If WinActive("ahk_exe vim.exe") or ((WinActive("ahk_exe cmd.exe") or WinActive("ahk_exe powershell.exe") or WinActive("ahk_exe ConEmu64.exe")) and WinActive("- VIM"))
<^<+Left::
SendInput +{Left}
SendInput +{Right}
SendInput ^{Left}
return
<^<+Right::
SendInput +{Right}
SendInput +{Left}
SendInput ^{Right}
return
#If