Я использую Vim под Debian, Win Vista и WinXP (последние два с 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 - 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