LINUX.ORG.RU

less --no-init не всегда правильно работает

 


0

1

Мне не нравится, что less как бы переключает экран при просмотре длинных файлов. И при выходе из less последний просматриваемый экран исчезает. Например это очень неудобно в psql: я делаю запрос, просматриваю его результаты, нахожу нужную запись, нажимаю q и ожидаю, что текущий экран останется в консоли, чтобы копировать данные из него в следующий запрос. Это всё решается флагом --no-init, а точней такой строчкой в файлах инициализации bash: export LESS="--quit-if-one-screen --no-init".

Но возникает другая проблема: теперь некоторые (не все) программы начинают показывают крякозябры. Например git diff выдаёт

ESC[1mindex ea34e64..c074a9c 100644ESC[m

при этом, например, man работает нормально, с подсветкой и тд.

Есть ли какой-то способ получить и то, что я хочу от less (не стирать последний экран при выходе), и чтобы другие программы не портили вывод.

★★★★★
itus@vitus-home:~/develd/build/rtl8821ce$ export LESS="-FX"
vitus@vitus-home:~/develd/build/rtl8821ce$ git diff --color --ignore-all-space README.md
ESC[1mdiff --git a/README.md b/README.mdESC[m
ESC[1mindex 46ee540..000d0fe 100644ESC[m
ESC[1m--- a/README.mdESC[m
ESC[1m+++ b/README.mdESC[m
ESC[36m@@ -1,5 +1,8 @@ESC[m
 # Realtek RTL8821CE DriverESC[m
ESC[31m-ESC[m
ESC[32m+ESC[mESC[32mfsdlf;dslfsESC[m
ESC[32m+ESC[mESC[32msdf;dslfESC[m
ESC[32m+ESC[mESC[32msd;lf;dslf'dsESC[m
ESC[32m+ESC[mESC[32m;fls;'lfsd'ESC[m
 ## IntentESC[m
 This repository hosts the code for the [Arch Linux AUR Package](https://aur.archlinux.org/packages/rtl8821ce-dkms-git/). It's targeting Linux > 4.14 and is being developed for Arch Linux and Ubuntu 18.10. No support will be provided for other Linux distributions or Linux Kernel versions outside of that range.ESC[m
 ESC[m
vitus@vitus-home:~/develd/build/rtl8821ce$ export LESS="-FRX"
vitus@vitus-home:~/develd/build/rtl8821ce$ git diff --color --ignore-all-space README.md
diff --git a/README.md b/README.md
index 46ee540..000d0fe 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
 # Realtek RTL8821CE Driver
-
+fsdlf;dslfs
+sdf;dslf
+sd;lf;dslf'ds
+;fls;'lfsd'
 ## Intent
 This repository hosts the code for the [Arch Linux AUR Package](https://aur.archlinux.org/packages/rtl8821ce-dkms-git/). It's targeting Linux > 4.14 and is being developed for Arch Linux and Ubuntu 18.10. No support will be provided for other Linux distributions or Linux Kernel versions outside of that range.
 
vitus@vitus-home:~/develd/build/rtl8821ce$ 

https://www.kernel.org/pub/software/scm/git/docs/git-config.html

... If you want to selectively override Git's default setting for LESS, you can set core.pager to e.g. less -S. This will be passed to the shell by Git, which will translate the final command to LESS=FRX less -S. The environment does not set the S option but the command line does, instructing less to truncate long lines. Similarly, setting core.pager to less -+F will deactivate the F option specified by the environment from the command-line, deactivating the "quit if one screen" behavior of less. One can specifically activate some flags for particular commands: for example, setting pager.blame to less -S enables line truncation only for git blame.

https://stackoverflow.com/questions/48511931/how-do-i-pass-options-to-less-fr...

ps.

Но главный совет, конечно, открыть второй табик и не ломать мозг :D :D :D :D

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)

У less переменная LESS какая-то наркоманская. Не факт что она понимает длинные опции. Попробуй LESS=XFR.

debugger ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.