iTerm2 Vim alt + стрілка вправо / вліво


13

Як користувач Linux, я дуже звик переходити з слова в слово у vim / nano, використовуючи ALT+ leftабо right.

Здається, це не працює належним чином за допомогою iTerm, я використовую zsh, я спробував додати;

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Це працює, але всередині zsh лише тоді я прокоментував ці рядки і додав у iTerm ярлик клавіатури;

введіть тут опис зображення

Це працює, але тільки для ALTleft

Як я можу змусити його працювати і для стрілки праворуч?

Відповіді:


11

У властивостях iTerm перейдіть до Профілі -> Ключі та встановіть там

  • Для ⌥→надсилання послідовності втечі[1;5C
  • Для ⌥←надсилання послідовності втечі[1;5D

введіть тут опис зображення


Це не працює для мене. Послідовності евакуації надсилаються, але vim переміщує лише один пробіл вперед і назад. Запуск програми vim 7.3 за замовчуванням, що постачається з OS X 10.8. В ідеалі я хотів би змінити його на стороні vim, не змінюючи налаштування за замовчуванням емулятора терміналу (оскільки це призведе до кращої портативності).
slhck

Це дивно, він працює як у vim (від homebrew, не за замовчуванням), так і zsh з конфігурацією за замовчуванням від oh-my-zsh (в ~ / .oh-my-zsh / lib / key-bindings.sh).
eiennohito

Тут також не працює, я можу використовувати alt + стрілку всередині zsh, у Vim він працює лише зі зрушенням + стрілка :(
seds

Я перевірив це ще раз на доступних віддалених системах (ubuntu 13.04, стабільний debian та науковий Linux), і він працює скрізь. Який вихід, якщо натиснути Control + V, ⌥ →? Для мене це ^ [[1; 5С
eiennohito

Для мене працює: iTerm / Vi + zsh
Петро Семенюк

7

Почніть з перегляду ключового коду, який ваш термінал надсилає vim:

$ sed -n l
^[[1;9D 

У наведеному вище прикладі я запустив команду sed і натиснув Alt + Left.

Це ^[[1;9Dуникнута послідовність, що надсилається vim, тому ми можемо користуватися цим для нашого відображення.

Додати в vimrc:

map <Esc>[1;9D :tabn<CR>

Дякую, що працювало на мене.
j5shi

1

Я прочитав ще одну публікацію, в якій описано, що для опцій ліворуч та опції праворуч потрібно прив’язати їх до дій ^ [b та ^ [f відповідно. Тобто, ви прив'язуєте їх до "Відправити послідовність втечі" та прив'язуєте клавіші b і f.

http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/


1
+1! Тут я знайшов подібні інструкції: coderwall.com/p/h6yfda/…
Cam Jackson

0

Жодна з цих відповідей не працювала для мене. Я закінчив завантажувати Linux VM і перевірив, що я отримаю <Alt-ARROW>.

4 послідовності втечі, які працювали для мене, це:

  • <Alt+Up>: [1;3A
  • <Alt+Down>: [1;3B
  • <Alt+Right>: [1;3C
  • <Alt+Left>: [1;3D

Будьте обережні, щоб редагувати ключі профілю, а не головні, які будуть замінені профільними (де Alt + стрілки за замовчуванням встановлені шестигранною послідовністю, яка не працювала з vim).


-1

Ще одне можливе рішення, vim пропонує словосполучення самостійно, див .:

:help word-motions

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