2014-10-06 2 views
1

Недавно я начал использовать режим vi (xterm) vi. Мне нравится не переносить пальцы с клавиатуры, но затем я хочу скопировать часть вывода из предыдущей строки в мою текущую строку и переключиться на мышь.Режим терминала vi: прокрутка предыдущих строк и выходов

Есть ли способ переместить курсор через терминал, затем перейти в визуальный режим и выбрать несколько слов, а затем скопировать его?

  • Я знаю, что k/j прокручивается из истории, но я хочу перейти через выходные данные предыдущих строк.
  • Я знаю, что есть некоторые escape-последовательности, которые работают на некоторых терминалах, но я не могу заставить их работать на моем. Очевидно, что чистое решение vi-mode.

Спасибо!

+1

Это не отличный ответ, но tmux может сделать это из коробки. [Вот сообщение в блоге] (http://dudenbostel.leanside.com/2014/01/copy-paste-in-tmux/) для переназначения ключей в соответствии с vi. –

+0

Я только понял, после публикации моего ответа, что это не вопрос 'vi', а' xterm'. Мне было бы интересно узнать, работает ли оно на 'xterm'. – Matthieu

ответ

1

Я отвечаю на мой собственный вопрос, потому что никто другой не делал ...

  • Кажется, что нет никакого способа, чтобы сделать это в обычном терминале. Escape последовательно перемещает курсор вокруг терминала (так что вы можете перезаписать предыдущий текст), как описано здесь: http://wiki.bash-hackers.org/scripting/terminalcodes. Но нет способа выбрать текст, встроенный в терминал (кроме как с помощью мыши). Даже vi-mode необходимо открыть временный файл в vi, чтобы выбрать текст (это то, что происходит, когда вы используете v для визуального режима).

  • Как указал Иордан, tmux может сделать это с отличным «командным режимом». Это то, что я закончил делать.

0

Вы можете использовать команду v, чтобы начать визуальный отбор под символом под курсором. Переместите курсор на последний, который вы хотите (в том числе с помощью ярлыков w и e) и нажмите любую команду (y, чтобы скопировать, d, чтобы удалить, ...).

Для получения дополнительной информации см. the man page.

+0

Спасибо за попытку, но это не работает в vi-режиме xterm. Если есть какой-то способ включить его, это было бы здорово. – MCK

0

На моем xterm я помещаю курсор в командном режиме на слово, чтобы начать копирование. Используйте клавишу «y» для yank плюс число слов «5» с помощью клавиши «w» для слов. Переместите курсор, куда положить слова с помощью клавиши «p». Можно использовать 'o', чтобы открыть новую строку, [ESC], чтобы вернуться в командный режим до команды «p».

Now is the time for all good people to 
come to the aid of their country. 

Наведите курсор на время, y5w, переместите курсор, p.

time for all good people