如何更改Cygwin的Vim中的键映射


2

我在Debian,Win Vista和WinXP下使用Vim(后两者使用Cygwin)。

为了更容易地处理标签,我映射<C-Left><C-Right>:tab(prev|next)。这种映射就像Debian机器上的魅力一样。

但是,在Windows机器上,<C-Left>按照我的意思,按下删除5行,并用光标位置进行<C-Right>插入,同时执行此操作,并另外进入插入模式。

问题:简而言之,我如何才能找到,为什么Vim表现得像?有没有办法回溯活动命令和击键?可能有一个插件的罪魁祸首?(我没有安装一个,也许是Cygwin发行版的默认包含......)如果是这样,我怎么能找到它?

编辑1:好吧,好像,我得到了第一条跟踪:终端发送<C-Left>' ^[[1;5D',右边' ^[[1;5C'(用<C-V><C-Left>诀窍评估)。如果vim按字面解释并丢弃第一个字符,它就解释了这种奇怪的行为。任何想法,我如何改变这个键映射?

附加诊断:

  • 无论任何现有~/.vimrc文件(因此与我上面提到的映射无关)都会发生此行为,并且不会继承某些文件/etc/vim/vimrc,因为这在默认的Cygwin安装中不存在。

  • :verbose map没有任何新的见解。根据.vimrc文件的存在,不会出现任何内容或我提到的映射

  • :help <C-Left> 建议,默认是一个简单的光标移动,显然不是这种情况。

  • 在Cygwin下的Vim版本:

    VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Feb 11 2010 17:36:58)
    Included patches: 1-264
    Compiled by http://cygwin.com/
    Huge version without GUI.  Features included (+) or not (-):
    +arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent
    -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
    +cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
    +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
    +float +folding -footer +fork() -gettext -hangul_input +iconv +insert_expand
    +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
    +menu +mksession +modify_fname +mouse -mouseshape +mouse_dec -mouse_gpm
    -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
    +multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra -perl +postscript
    +printer +profile -python +quickfix +reltime +rightleft -ruby +scrollbind
    +signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary
    +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
     -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
    +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
     -xterm_clipboard -xterm_save
       system vimrc file: "$VIM/vimrc"
         user vimrc file: "$HOME/.vimrc"
          user exrc file: "$HOME/.exrc"
      fall-back for $VIM: "/usr/share/vim"
    Compilation:
    gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -D_FORTIFY_SOURCE=1
    Linking: gcc   -L/usr/local/lib -o vim.exe       -lm -lncurses  -liconv
    

我现在切换到mintty,<C-Left>仍然发送^[[1,5C,但以某种方式转换为正确的vim语句。
Boldewyn 2010年

Answers:


2

:map没有参数将显示你 vim中映射的内容。在vim“看到”键击之前,任何键盘映射(从Kernel Tools包中的Keyboard Remap开始)都将采用,因此,显然,vim无法解释原始键盘。


所以,:verbose map:help <some-keystroke>足以找出VIM每个键的功能?
Boldewyn 2010年

试一试,找出答案。功能键有时没有通用的映射方式; 那是硬件依赖的。
mpez0 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.