Як перейти до місця за допомогою миші на iTerm / terminal?


43

Я працюю на терміналі більшу частину часу.

Чи є програма / плагін через iTerm або будь-який інший термінал, наприклад додаток, за допомогою якого я можу керувати місцем розташування курсору свого терміналу за допомогою миші?


Що ви хочете робити за курсором?
користувач151019

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

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

1
Дивіться також apple.stackexchange.com/a/217167/24565 про інформацію про параметри миші для tmux
Michael Durrant

Відповіді:


52

Принаймні, у Terminal.app ви можете утримувати optionнатиснувши клавішу , щоб перейти в поточний рядок (це насправді означає лише лінію, тож якщо ваш поточний запит настільки довгий, що він переходить на другий рядок введення, вам доведеться optionнатиснути до початку "другого" рядка, а потім клавішами зі стрілками перейдіть до рядка "перший", де ви можете optionнатиснути ще раз.)


1
Опція клацання, цікава. Ніколи цього не знав. Не забудьте натиснути на рядок хоч, святе лайно. Я навіть не розумію, що відбувається, коли натискаю вище / нижче поточного рядка. Я припускаю, що він натискає кілька разів, але я впевнений, що історія команд не точно відповідає.
Джейсон Салаз

Ну, це лише читання кількості стовпців, де коли-небудь клацнути та перейти до цієї позиції у поточному (!) Рядку; тож якщо ви знаходитесь наприкінці завершеного запиту (скажімо, рядок 2: стовпець 45) і ви натискаєте на щось, що знаходиться в першому рядку (скажімо, рядок 1: стовпець 4), ви опинитесь у колонці 4 (чудово), але буде залишитися в рядку 2 (неправильно!).
Асмус

2
Опція-клік працює за тим, що вона видає еквівалент клавіш зі стрілками. Це добре працює в таких редакторах, як emacs, але якщо ви знаходитесь у командному рядку bash, він інтерпретує вгору / вниз як "попередня / наступна команда в історії". Отже, якщо ви користуєтесь Option-Click будь-де, крім того самого рядка, який містить підказку, bash проходить через вашу історію команд замість переміщення курсору.
Кріс Пейдж

Працює в iTerm2.
Ахмет Альп Балкан

9

З цього питання виникло досить багато часу, і я вже згадував нижче про цю платформу в Option-click в iTerm та трекері випусків iTerm2, але, можливо, це допомагає тому чи іншому:

Привіт, просто хотів повідомити, що я реалізував цю функцію в iTerm2. Це ще не є офіційним репортажем iTerm2, але якщо ви хочете віддати його, ви можете знайти його в github .

Оскільки він перевірений лише мною, вважаю його нестійким. Я протестував це за допомогою bash, vi та emacs і зробив усе можливе, щоб нагадати поведінку Terminal.app.

На github також є попередньо складений двійковий файл iTerm_v1.0.0.20120312.git-b919985b.zip (для i386 / x86_64 / ppc).

Звичайно, будь-який відгук вітається.


Чи минула звітність миші в останньому випуску? Це більше не працює для мене, я не бачу курсор "o" і не можу зрозуміти, як його повернути.
Майкл

Я повертаю це назад. Звітування про миші працює не лише в деяких випадках - наприклад, якщо ви схибите на іншу машину, то приєднайте до сеансу tmux, який вже працює за допомогою emacs. Це працювало раніше. Тепер вам іноді доводиться виходити з Emacs і перезавантажувати його, перш ніж працювати з мишею ...
Майкл

Здається, лише перейти в положення де-небудь на поточній лінії. Чи можливо натиснути будь-яку опцію в будь-якій частині активної команди?
Скелетний лук

6

Клавіатура часто є вашим найкращим другом. У конфігурації за замовчуванням оболонка керує значною мірою того, як ви рухаєтесь навколо командного рядка.

Option+ bповертає слово назад (курсор закінчиться на першій букві попереднього слова).

Option+ fпереходить слово вперед (курсор буде на не буквеному символі ПІСЛЯ наступного слова).

Shift+ Fn+ Left Arrow (←)поставить курсор на самому початку рядка. ( Ctrl+ aтеж зробимо це.)

Shift+ Fn+ Right Arrow (→)поставить курсор у самому кінці рядка. ( Ctrl+ eтеж зробимо це.)

Тож якщо у мене довга команда, наприклад:

$ rsync -avz --progress ~/Sites/Development/My/Project web@server:/deployment/output/area

І я починаю натискати Option+ b, курсор зупинятиметься на області a , o у виході, d у розгортанні тощо.

Якщо я йду в початок рядка, і почати удар Option+ f, курсор зупиниться в просторі після Rsync, в просторі після AVZ, в просторі після прогресу, в / після сайтів і т.д.


Мені подобається ваше розумне рішення "Проблема XY". Не відповідаючи на початкове запитання, це дуже гідна альтернатива. Це навмисно, хоча ви іноді говорите CMD + b і параметр + b?
Корнелій Ромер

1
Ні, це була помилка з мого боку. Тут ніколи не слід було використовувати команду, оскільки це керує поведінкою вікна терміналу, а не поведінкою оболонки / руху.
Джейсон Салаз

5

У iTerm2 ви утримуєте клавішу alt (ліворуч або праворуч) і клацніть, щоб перемістити курсор у будь-яку позицію будь-якого рядка.


3

Якщо вас спеціально цікавить рух у Vim, ви можете додати його set mouse=aу свій ~/.vimrcфайл.

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

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

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

Також зауважте, що якщо ви додасте щось на кшталт vimpager (також на макпорти), ви також можете прокручувати чоловічі сторінки, коли додаєте:

export PAGER=/opt/local/bin/vimpager #or wherever vimpager is installed
alias less=$PAGER

на ваш .profileабо .bashrc.

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