РЕДАКТИРОВАТЬ Апрель 2015: Если у вас есть тот же вопрос, я рекомендую также проверить http://xiki.org/
Я знаю, что это не так, как работают терминалы, но мне часто хочется, чтобы был простой способ использования текста (его копирование, изменение и т. Д.), Который уже есть в истории моего окна терминала из некоторых предыдущих выводов команд.
Я представил это так:
Я нахожусь в своей оболочке bash и собираюсь ввести команду, и я понимаю, что мне нужно напечатать что-то, что уже есть на экране несколькими строками выше. Я могу достать мышь и выбрать ее, но я ненавижу это. В настоящий момент я действительно хочу, чтобы весь мой терминал превратился в гигантский буфер Vim, и все это: подсказки, набранные мной команды и вывод этих команд. Все. И тогда я мог бы подскочить на несколько строк, возможно, немного отредактировать, и набрать немного текста. Затем вернитесь в режим оболочки bash и вставьте все, что я нажал, в текущую командную строку.
Я знаю, что есть несколько вариантов:
Естественно, направьте нужный мне текст непосредственно из вывода какой-либо команды в файл или прямо в следующую команду. Но для этого вы должны запланировать заранее или повторно выполнить команду из вашей истории (предположим, что результат не будет меняться между вызовами).
Дотянуться до мыши и выбрать текст для копирования. Хромая, раздражающая, я бы не хотел этого делать (это не сайт обмена стеком с графическим интерфейсом, не так ли? =)
Чтобы использовать опцию «Экспортировать текст как ...» моего приложения Mac OS X и сохранить текст терминала в файл. Затем откройте файл и работайте с ним. Почти, но зачем проходить этап сохранения в файл на диске?
Итак, вопрос: что вы делаете в этой ситуации? Есть ли какая-нибудь хитрость, инструмент, функция оболочки, которая может быть полезна в этом сценарии? Вы просто смирились с тем, чтобы использовать мышь или набираете все, что вам нужно набрать?
Возможно, проблема в том, что я не делаю вещи «по-юниксовски», но, давай, это 2010, и я не могу легко скопировать какой-нибудь текст в нескольких строках от моего курсора?
источник
Ответы:
Вы можете использовать скрипт (используйте -f, чтобы убедиться, что он каждый раз сбрасывается), и вы можете получить весь вывод в файле.
Используйте терминальный мультиплексор (screen, tmux и т. Д.). Например, для экрана http://web.mit.edu/gnu/doc/html/screen_11.html#
Другие терминальные мультиплексоры, безусловно, имеют более продвинутые возможности.
источник
В tmux (терминальный мультиплексор) вы можете нажать Ctrl + A- [, чтобы переключиться в режим буфера Vi, где вы можете перемещаться по экрану, прокручивать буфер вперед и назад, копировать текст и т. Д. По умолчанию это сочетание клавиш Ctrl + B- [но это, очевидно, должно было быть перенастроено. Кроме того, режим буфера по умолчанию - Emacs, но вы можете настроить его на Vi.
Проверьте tmux, это действительно отличный современный терминальный мультиплексор. Помимо работы с буфером, вы можете разделить экран в нескольких окнах, подключиться к одному сеансу из нескольких терминалов и т. Д. Для максимального удобства вы даже можете сделать его своей оболочкой для входа в систему, если вы скажете, какая у вас настоящая оболочка.
На OpenBSD tmux был даже сделан частью базовой системы.
Смотрите man-страницу для tmux для более подробной информации. Также смотрите скриншоты на http://tmux.sourceforge.net/
источник
В emacs оболочка Mx обрабатывает выпуск предыдущего вывода. Вы можете легко скопировать вставить предыдущие команды вывода, или любую часть вашего буфера, как обычный буфер. Я почти уверен, что должен быть VIM-эквивалент.
источник
eshell
.Как уже упоминалось, Emacs '
eshell
может быть вашим термином по умолчанию + shell. :) Тогда вы бы использовали обычные текстовые навигационные клавиши там как минимум. Если вы узнали больше специальных ключей, тоeshell
доступны следующие функции Emacs :источник
Я использую urxvt (rxvt-unicode), и есть пакет с именем urxvt-keyboard-select, который может быть именно тем, что вам нужно, если вы можете установить urxvt. Информация о пакете Archlinux (которая содержит указатели) находится здесь:
https://aur.archlinux.org/packages.php?ID=39950
Первоисточник: http://www.github.com/muennich/urxvt-perls
источник
Попробуйте использовать vim в качестве CLI? Просто выберите выход из нескольких строк и передайте его через:!.
источник