Мне нравится less
, что я могу использовать, чтобы следить за журналами с +F
флагом (или ShiftFгорячей клавишей), искать вперед и назад и вообще свободно перемещаться по документу.
Но в этом отсутствует одна вещь less
: обычно я нахожусь в конце файла и хочу видеть, что происходит что-то новое. В tail -f
I просто ударил enterнесколько раз, и новые строки журнала просто появляются четко отделены от старых линий.
Можно ли добавить это к less
? Как?
Ответы:
Это не совсем
tail
поведение - это терминал. Tail просто отправляет поток вывода на стандартный вывод, который идет на ваш терминал, и вы вставляете пустые строки в середину этого вывода, нажимая ввод. Сам Хвост на самом деле не принимает от вас информации вообще. Вы можете ввести все, что вы хотите, и это тоже появится.less
однако это консольное приложение, которое принимает данные и обрабатывает их. Он управляет консолью с помощью последовательностей управления терминалом, и вы можете прокручивать их. Разрешение вставлять произвольные символы в поток может испортить отображение и в любом случае использовать ваш ввод для управления программой.К сожалению, кажется, что нет способа визуально пометить текущую позицию. Тем не менее, это не страшный запрос на добавление новых функций , и тем не менее , время от времени появляются новые функции.
источник
Я нашел ваш вопрос, когда искал тот же ответ для себя.
Разочарованный принятым ответом, я нашел обходной путь. Это не идеально, но позволяет мне отмечать мою позицию в журнале, с которым я слежу
less
, и в этом весь смысл.Я создал небольшой исполняемый скрипт (я его назвал
marklog
) со следующим содержимым и поместил его в мой путь:Конечно, это работает только в том случае, если у вас есть доступ на запись в файл журнала, что может стать нарушителем во многих ситуациях. Я также создал эту версию, которую я использую для записи в файлы журналов, которые мне не принадлежат (но к которым у меня есть доступ sudo):
Эти сценарии обеспечивают именно тот визуальный разрыв, который я искал. Есть как минимум 3 способа их использования:
В точке, где вы обычно нажимаете, введите несколько раз при использовании
tail -f
, вместо этого запуститеmarklog
с другого терминала (предоставив путь к файлу журнала в качестве аргумента).Используйте CtrlZдля приостановки,
less
чтобы вы могли запустить скрипт в том же окне терминала, но когда вы переориентируетеless
(используяfg
, конечно), он больше не будет в режиме «следовать», поэтому вам нужно будет нажать ShiftFснова ...И наконец, - и это может быть наиболее удобным способом, потому что вам не нужно вводить путь к файлу журнала: запустите
marklog
непосредственноless
, набрав!marklog %
.Less
заменит текущее имя файла для%
. Темless
не менее, не будет отвечать на! пока он находится в режиме «следуй», так что тебе придется CtrlCсначала нажать, чтобы выйти из режима следования, запустить!marklog %
, затем ShiftFснова.С помощью метода 3 вы также получаете дополнительный бонус истории команд Less: просто нажмите
!
и затем используйте стрелку вверх, чтобы выбрать самую последнюю команду (для меня это всегдаmarklog
).Надеюсь, это поможет кому-то так же, как уже помогло мне.
источник
Нажмите Shift+ Fв конце файла и меньше начнет работать как
tail -f
.источник
tail -f
. В частности, он не примет ввод как новые строки, что является единственным пунктом моего вопроса. Кроме того, я уже упоминалShift+F
в вопросе (с небольшой ошибкой, должен сказать)Я не думаю, что вы можете сделать это. Я использовал
m
и'
для обозначения достопримечательностей, а затем снова пошел к ним, но это не дает того разделения, которое вы просите. Возможно, что-то вроде мультитейла будет делать то, что вы хотите.источник
Ответ от Ламбарта подводит меня к моему любимому решению. Спасибо Ламбарту!
Просто введите следующий режим ctrlcи войдите
!printf "\n\n---$(date)---\n\n" >> %
. После этого вам нужно нажать enterеще раз и нажать, shiftfчтобы начать снова после файла.источник