Як я можу вимкнути "прокручування історії" в iTerm2


290

Я встановив новий iTerm 2. У жовтому рядку вгорі він запитав, чи хочу я включити функцію миші. На жаль, я вже не пам'ятаю точного речення.

Я випадково схвалив. Тепер, коли я використовую колесо прокрутки на миші в iTerm, воно більше не прокручує вгору, але замість цього воно запускає історію команд. Як би я натиснув курсор вгору.

Я не зміг знайти потрібних налаштувань, щоб вимкнути це знову. Хтось знає, де я можу переключити цю опцію?

Thx за допомогу!


3
Я припускаю, що ви використовуєте iTerm2.9, і повідомлення, яке ви побачили, - чи хочете ви, щоб колесо прокрутки перемістило курсор в таких інтерактивних програмах? проблема?
sel-fish

1
Так, але лише тоді, коли я зайшов на сервер через ssh. Я не знаю, як це могло бути пов'язано.
Гамбо

"тільки коли я зайшов на сервер через ssh", ви маєте на увазі, що коли ви використовуєте iTerm2 для локальних операцій, цього не відбудеться? Чи використовуєте ви інший "профіль", коли "увійшли на сервер через ssh"?
sel-fish

Щоб увімкнути і вимкнути альтернативний екран, повинен бути наділений символ управління терміналом. Я думаю, що краще довгостроково (не стосується iTerm2 або vim або менше), щоб дізнатися, що таке контрольний символ. Це може бути ESC [ ? 1 0 4 9 lабо ESC [ ? 1 0 4 7 lабо ESC [ ? 47 l( gnu.org/software/screen/manual/html_node/Control-Sequences.html )
dlamblin

2
це щойно почалося для мене випадковим чином ... розчарування, коли ви намагаєтеся переглядати журнали
SgtPooki

Відповіді:


493

Кілька терміналів, включаючи iTerm2, мають особливість, коли вони змінюють поведінку колісної миші, коли працює повноекранна програма, наприклад vi, або screenабо tmuxпрацює. Це відбувається, коли ці програми використовують альтернативний екран , щоб забезпечити корисну функцію. Зазвичай при використанні альтернативного екрана в iTerm2 колісна миша діє як смуга прокрутки, прокручуючи весь екран вгору / вниз. Але коли цю функцію ввімкнено, iTerm2 надсилає курсор вгору / вниз, вносячи зміни в історію команд.

Як запропоновано в іншому коментарі, виберіть меню Налаштування :

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

і в цьому виберіть вкладку Додатково . Прокрутіть униз до розділу Миші ,

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

і перемкніть запис для

Колесо прокрутки надсилає клавіші зі стрілками в режимі альтернативного екрана

від Так до Ні . Вам потрібно буде перезапустити iTerm2, щоб зміни вступили в силу. (З iTerm2 v3.1.5 зміни набирають чинності без перезавантаження.)


2
Я перевірив це, перш ніж писати коментар - просто включення цього варіанту було недостатньо.
Томас Дікі

Може залежати від версії. У версії 3.0.2 перемикання, безумовно, достатньо. Насправді, якщо ви перебуваєте в альтернативному режимі екрана, і цей параметр вимкнено, і ви намагаєтесь (і не вдається) прокручувати мишу, а потім натискати клавішу зі стрілкою вгору або вниз, вам буде запропоновано включити цю функцію праворуч у термінальне вікно.
Джордж

3
3.0.12 не потрібно перезапускати, щоб це вступило в силу.
dhempler

21
// Мені подобається ця функція і я використовую її у Vim. Як вийти з альтернативного режиму екрана в заданому вікні терміналу? ОНОВЛЕННЯ: У терміналі, який знаходиться в режимі альтернативного екрану, відкрийте програму терміналу, яка активує альтернативний режим екрану. Вийдіть із цієї програми чисто. Це тимчасово закінчує проблему. Я думаю, це вказує на те, що проблема була викликана виходом із програми, яка використовувала функцію альтернативного екрану незвичним чином.
Натан Басанес

6
Сер, ви врятували мене від чистого божевілля.
БК

60

Якщо ви потрапили в пастку в режимі історії прокрутки, ви можете вийти, запустивши vi і вийти безпосередньо. Ви також можете вибрати іншу програму, яка використовує альтернативний екран та виходить безпосередньо.

Прокручування історії колесом миші теоретично ніколи не буває. Це трапляється на практиці, оскільки іноді альтернативний режим екрана неправильно не повертається назад. Прийнята відповідь вирішує проблему, відключивши корисну функцію, а саме прокрутку в vi, менше, ... за допомогою колеса миші або трекпада. Ви можете зберегти параметр із розширених налаштувань:

Колесо прокрутки надсилає клавіші зі стрілками в режимі альтернативного екрана

встановити так. Інколи ви будете потрапляти в пастку в режимі історії прокрутки. Але якщо ви знаєте, як врятуватися, це не проблема.


2
Дякую за пораду! Це мені допомогло :)
jj172

1
Спасибі людино! Але введення та вихід з vi чомусь не допомогло в моєму випадку, але воно спрацювало після входу на сторінку чоловіка та виходу з неї натисканням q
Frax

1
Це було так корисно. Прокрутка раптово додається [[A^і [[B^до командного рядка замість прокрутки вікна. Я знав, що це не нормальна поведінка. До цього я залишив комп’ютер у nanoоболонці SSH, яка відключилася, коли я закрив ноутбук. Та різкий вихід, очевидно, був винуватцем. Просто це відкрило нову вкладку в iTerm2 і зафіксувало це.
Колін Маршалл

На жаль, при використанні screenви не можете використовувати цей трюк для виходу з альтернативного режиму екрана. Тож якщо ви багато використовуєте screen(як я), вимкнення функції взагалі - це збереження життя.
mvreijn

Я віддаю перевагу цій відповіді, тому що дуже корисно орієнтуватися в додатках на повноекранному екрані за допомогою трекпада, тому відключення функції в налаштуваннях не було для мене найкращим варіантом :) Thx для ділення цієї
Патрік Феррейра

42

Вам, мабуть, просто потрібно вийти з альтернативної консолі.

Спробуйте: tput rmcup


1
Чудова відповідь A + 💯
дпс

Набагато краща відповідь - це дозволяє вам прокручувати історію, зберігаючи можливість прокрутки, перебуваючи під час vim. Дякую!
JonLuca

10

Налаштування: Додатково: Миша: Колесо прокрутки надсилає клавіші зі стрілками, коли в альтернативному режимі


2
У мене є така ж точна проблема, як описана, але в новітній миші iTerm миша не знаходиться в розділі Prefences: Advanced. Просто тригери, розумний вибір та семантична історія. Хтось знає якийсь інший спосіб виправити це?
mikeLspohn

9

За допомогою iTerm2 ви також можете утримувати Option під час використання колеса прокрутки для примусового прокручування вікон, якщо ви хочете, щоб колесо продовжувало працювати в vim.


це працює, але як мені повернутися до деталей, коли мені не довелося тримати клавішу опціону
meso_2600

2

Поведінка, яку ви бачите, - це очікувана (і правильна) поведінка, коли на іншому екрані. Єдиною проблемою є те, що ви потрапили в баш, або що завгодно, на альтернативний екран, можливо, втрачаючи зв’язок або від убитого vim або менше. EG ви були в less +F /var/log/somethingі відключилися.

Ви бачите, що хтось уже написав, що tput rmcupкоманда вийде на головний екран.

Я також пішов вперед і шукав кілька символів управління терміналом. Це може бути будь-який з: ESC [ ? 1 0 4 9 lабо ESC [ ? 1 0 4 7 lабо ESC [ ? 47 l(gnu.org/software/screen/manual/html_node/Control-Sequences.html) з перевагою першого.

Я, як правило, успішний в iTerm2, echo -e '\e[?1049l'тому що насправді не знаходжу rmcupлегшого запам’ятовування, відновлення пам’яті консолі ?.


1

У мене була ця сама проблема, і жодне з прочитаних і спробуваних рішень не працювало. Що вирішило мою проблему, було вимкнення введення захищеної клавіатури і тепер, коли я використовую мишу, щоб прокрутити її в ssh та в термінальному режимі на macOS 10.13, це працює так, як і я очікую цього!

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