Как искать историю консоли XTerm?

Linux rename команда делает это легким:

rename $'\r' '' *

Это заменяет первый и единственный возврат каретки ($'\r') пустой строкой ('') во всех именах файлов в текущем каталоге. Имена, которые не содержат возврат каретки, оставлены без изменений (или можно записать rename $'\r' '' *$'\r' только рассматривать файлы, которые должны быть переименованы).

Если необходимо действовать на файлы в подкаталогах также:

shopt -s globstar
rename $'\r' '' **/*$'\r'

(Пользователи Debian, Ubuntu и производных: изменение rename кому: rename.ul, или изменение rename $'\r' '' кому: rename 's/\r//'.)

Альтернатива, с помощью zsh's zmv функция:

zmv $'**/*\r' "${f%?}"

5
15.05.2014, 21:53
4 ответа

Нет ничего, встроил, точно, но существует два способа достигнуть scrollback текст.

Можно настроить XTerm.vt100.on4Clicks и XTerm.vt100.on5Clicks ресурсы (или от on1Clicks вперед, в этом отношении), чтобы принять решение скопировать целый scrollback в ОСНОВНОЙ выбор X11. Например, для копирования целого scrollback при четырехкратном щелчке вставьте эту строку Ваш .Xresources:

XTerm.vt100.on4Clicks: all

Необходимо будет затем расположить собственный метод для перевода в рабочее состояние некоторого способа искать контент X выборов, таких как открытие редактора или пейджера с привязкой менеджера окон.

Можно звонить print-everything действие для отправки целого scrollback в программу, определенную XTerm.vt100.printerCommand ресурс. Например, для открытия scrollback в меньше (работающий в новом xterm) при нажатии Ctrl + / вставьте эти строки Ваш .Xresources:

XTerm.vt100.printerCommand: xterm -e sh -c 'less <&3' 3<&0
XTerm.vt100.translations: #override Ctrl ~Meta ~Shift <Key>slash: print-everything()
7
27.01.2020, 20:38
  • 1
    +1 onNClicks является большим. –  l0b0 16.01.2014, 15:03
  • 2
    у меня уже есть a printerCommand сохранить scrollback историю как HTML, таким образом, я не могу переопределить это. –  l0b0 16.01.2014, 15:07
  • 3
    @l0b0, В то время как можно только определить сингл printerCommand, Вы могли определить его, чтобы действовать по-другому на основе модификаторов, например, связать обоих Meta+M и Shift+Meta+M и заставьте свой сценарий обнаружить ли Shift нажимается (который должен быть в порядке, если Ваш компьютер не является медленным, и Вы выпускаете Shift очень быстро). Я не могу думать об утилите оболочки, к которой, можно призвать XKbGetState от маленького C или обертки Python. –  Gilles 'SO- stop being evil' 16.01.2014, 15:23
  • 4
    Меньше приема работает отлично, но я действительно вижу некоторые escape-последовательности на каждой строке. С-R я вижу меньше, но все еще некоторые. Я могу избавиться от этого?Спасибо. бог –  lzap 15.05.2014, 21:17
  • 5
    , что - добавляющий меньше-r решает ту проблему. –  lzap 15.05.2014, 21:18

Я не видел способа искать в буфере scrollback XTERM для поиска вещей. Я думаю, что Ваш единственный выбор состоит в том, чтобы использовать что-то как tmux или screen.

-1
27.01.2020, 20:38

Тривиально копировать и вставлять весь или столько прокручиваемого текста, сколько вам нужно.

Прокрутите назад к началу текста, который Вы хотите скопировать, щелкните левой кнопкой мыши в том месте, где Вы хотите начать копирование, прокрутите до конца того, что Вы хотите скопировать, щелкните правой кнопкой мыши, затем используйте среднюю кнопку мыши, чтобы вставить или используйте xclip (-selection primary -o), чтобы скормить его в stdout или перенаправить в файл.

.
0
27.01.2020, 20:38

Xterm имеет функцию, которая решает эту проблему, называемую динамическим сокращением. Добавленная в патче #188 (2004), она является необязательной и может не компилироваться в вашу копию xterm. На странице руководства сказано:

   dabbrev-expand()
           Expands  the  word  before cursor by searching in the preceding
           text on the screen and  in  the  scrollback  buffer  for  words
           starting  with  that  abbreviation.  Repeating dabbrev-expand()
           several times in sequence searches for an alternative expansion
           by looking farther back.  Lack of more matches is signaled by a
           beep().  Attempts to expand an empty word (i.e., when cursor is
           preceded  by  a  space)  yield successively all previous words.
           Consecutive identical expansions are ignored.  The word here is
           defined  as a sequence of non-whitespace characters.  This fea-
           ture partially emulates the behavior of "dynamic  abbreviation"
           expansion  in  Emacs  (bound there to M-/).  Here is a resource
           setting for xterm which will do the same thing:

               *VT100*translations:    #override \n\
                       Meta <KeyPress> /:dabbrev-expand()
0
27.01.2020, 20:38

Теги

Похожие вопросы