Як змінити ключові відображення у Vim Cygwin


2

Я використовую Vim під Debian, Win Vista та WinXP (останні два з Cygwin).

Щоб обробляти вкладки легше, я склав карту <C-Left>і <C-Right>на :tab(prev|next). Це відображення працює як шарм на машині Debian.

На машинах Windows, однак, натискання <C-Left>видаляє 5 рядків, наскільки я можу сказати, і перемішується з положенням курсору, в той час як <C-Right>це теж робиться і додатково переходить у режим Вставка.

Питання: Якщо коротко сказати, як я можу дізнатися, чому Вім поводиться так, як це робить? Чи є спосіб відключити активні команди та натискання клавіш? Чи може бути плагін винуватець? (Я не встановив його, можливо включення за замовчуванням у дистрибутиві Cygwin ...) Якщо так, то як його знайти?

Редагувати 1: Добре, здається, що у мене з'явився перший слід: Термінал надсилає для <C-Left>" ^[[1;5D", і для правильного " ^[[1;5C" (оцінюється за допомогою <C-V><C-Left>трюку). Якщо vim інтерпретує це буквально і відкидає перших персонажів, це пояснює дивну поведінку. Будь-які ідеї, як я міг змінити це ключове відображення?

Додатковий діагноз:

  • Така поведінка виникає незалежно від будь-якого наявного ~/.vimrcфайлу (тому не пов’язана з моїми згаданими вище картами) і не успадковується деякими /etc/vim/vimrc, оскільки цього не існує в установці Cygwin за замовчуванням.

  • :verbose mapне дає ніяких нових ідей. Нічого, або мої згадані відображення не з’являються на основі існування файлу .vimrc

  • :help <C-Left> припускає, що за замовчуванням буде простий рух курсору, що, мабуть, не так.

  • Версія Vim під 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
    

Я перейшов на монетний двір, де <C-Left>все ще надсилається ^[[1,5C, але якимось чином переведений на правильний вираз vim.
Boldewyn

Відповіді:


2

:mapбез жодних параметрів не відображатиметься те, що ви відобразили у vim. Будь-яке відображення клавіатури за межами цього (як з клавіатурного перегляду в пакеті інструментів Kernel) буде тривати до того, як vim "побачить" натискання клавіші, і, очевидно, vim не може інтерпретувати оригінал.


Отже, :verbose mapі :help <some-keystroke>чи достатньо, щоб дізнатися функцію кожного ключа в vim?
Boldewyn

Спробуйте це і з’ясуйте. Функціональні клавіші іноді не мають загальних способів відображення; це залежить від обладнання.
mpez0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.