Twórz mniej wyróżnienia wzorców wyszukiwania zamiast ich kursywą

23

W moim rozumieniu człowiek używa lessjako pagera, a podczas wyszukiwania słów kluczowych za lessjego pomocą „wyróżnia” słowa kluczowe kursywą. Uważam to za bardzo niewygodne, więc chciałbym zmienić to na coś takiego jak vim, set hlsearchgdzie znaleziony wzór ma inne tło.

Próbowałem uruchomić, man -P vim systemdale to zakończyło się ze statusem błędu 1, więc wygląda na to, że utknąłem less.

Nic nie znalazłem w man lesstym, co pomogło (zamiast tego dowiedziałem się, że ta opcja -Gwyłączy podświetlanie razem, co jest nawet gorsze niż kursywa).

Biorąc to pod uwagę, czy ktoś wie, jak osiągnąć wyróżnianie wyszukiwania (zmienić kolor tła) na stronach podręcznika?

Do Twojej wiadomości używam Ubuntu 14.10

Natknąłem się na to pytanie, wydaje się, że pytam o to samo, ale nie jestem pewien, czy śledzę jak to działa ( LESS_TERMCAP_so). lessStrona człowiek nie wspomnieć o tym. (Mam dziwne wyniki z tym rozwiązaniem)

sgp667
źródło
Oznacza to, że umieszczasz tę linię w swoim ~/.bashrcpliku. export LESS_TERMCAP_so=$'\E[30;43m'Zobacz również tę odpowiedź unix.stackexchange.com/questions/38634/…
iyrin
1
Czasami korzystam man man | vim -z mojej konfiguracji vim, klawiszy i funkcji
JJoao,
Czy znalazłeś rozwiązanie tego problemu? Mam dokładnie ten sam problem na jednej maszynie i nie mogę zrozumieć, jaka jest różnica. Powyższa LESS_TERMCAP_sozmienna powoduje, że cały plik zmienia się w pomarańczowe tło ...
user1338062
Obawiam się, że wciąż mam z tym
problem

Odpowiedzi:

16

Znalazłem odpowiedź na superużytkowniku: /superuser/566082/less-doesnt-highlight-search

Wygląda na to, że ma to związek z ustawieniem TERM. Na przykład mniej podświetlania działa normalnie (podświetlenie białego tła) w normalnym oknie terminalu gnome, ale kiedy jestem w tmuxie, dzieje się kursywą. Różnica polega na tym, że TERM jest ustawiony na „screen”, gdy jest w tmux, ale „xterm-256color”, kiedy nie. Kiedy ustawię „TERM = xterm-256color” w oknie tmux, podświetlanie w mniej wraca do podświetlania tła.

purg
źródło
Już zdążyłem zapomnieć o tym pytaniu, ale to ekscytujące wieści. Jak tylko wyciągnę rękę do komputera, przetestuję to!
sgp667,
1
jest to niepraktyczne rozwiązanie, ponieważ inne aplikacje zależą od ustawienia TERM na screen * w tmuxie, takie jak WeeChat. Gdy nie jest ustawiony na screen * w tmux, WeeChat ma dziwne problemy z renderowaniem.
Blaine Lafreniere
Zauważyłem, że miałem problem z tmux <2.0 i nie mam problemu od czasu tmux v2.
artfulrobot
Świetne znalezisko. Mam teraz set -g default-terminal "xterm-256color"w moim ~ / .tmux.conf na moim pudełku CentOS 7 (i innych).
pokaż
Sprawdź także, czy screen-256coloristnieje: spróbuj ls /usr/share/terminfo/s/.
aDroid
8

Wspomnienie o LESS_TERMCAP_sobyło niepełne. Jest to specjalna zmienna środowiskowa less używana do zastępowania możliwości termcap so(wyróżniającej się). Aby skorzystać z tej możliwości, musisz również zapewnić możliwość se(standend).

Terminfo (5) strona podręcznika zawiera podsumowanie tych cech dla terminfo (smso / rmso) i termcap (SO / SE) Nazwy:

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

W części dotyczącej wyróżniania wyjaśniono:

Jeśli twój terminal ma jeden lub więcej rodzajów atrybutów wyświetlania, można je przedstawić na wiele różnych sposobów. Powinieneś wybrać jedną formę wyświetlania jako tryb wyróżniający się , reprezentujący dobry, kontrastowy, łatwy w odbiorze format do podświetlania komunikatów o błędach i innych przyciągających uwagę. (Jeśli masz wybór, odwrotne wideo plus pół-jasne jest dobre, lub tylko odwrócone wideo.) Sekwencje wchodzenia i wychodzenia z trybu wyróżnienia są podane odpowiednio jako smso i rmso.

Jeśli chcesz użyć koloru do wyróżnienia , musisz podać odpowiadającą mu LESS_TERMCAP_seopcję, która resetuje kolor. Jest to stosunkowo proste, o ile nie spodziewasz się użyć kolorów na stronie podręcznika z innych powodów (takich jak użycie funkcji koloru SGR firmy Groff).

Zakładając wartość sugerowaną w komentarzu:

export LESS_TERMCAP_so=$'\E[30;43m'

możesz to zresetować dla większości terminali

export LESS_TERMCAP_se=$'\E[39;49m'

Nawiasem mówiąc, przyczyną kursywy jest to, że opis terminala dla GNU screenużywa standardowej sekwencji specjalnej dla kursywy jako własnych możliwości wyróżniania / standendowania. Niektóre z nich omówiono we wpisie bazy danych terminali .

Thomas Dickey
źródło
To było pierwsze rozwiązanie, które faktycznie działało dla mnie (w tmux na Macu). Właśnie dodałem obie powyższe linie eksportu do mojego pliku konfiguracyjnego bash.
Marlun,
Jednak jeśli napiszę „eksport”, aby wyświetlić wszystkie moje zmienne środowiskowe, wszystko po tym, jak te linie zostaną podświetlone, a terminal będzie podświetlony, więc muszę go zamknąć i rozpocząć nowy.
Marlun
W takich przypadkach wstawiam zmienne do skryptu, który wywołuje program, który potrzebuje określonych zmiennych. Zmienione zmienne obowiązują tylko w skrypcie.
Thomas Dickey
export | lessdziała również jako obejście
Marlun
4

Naciśnij, ESCuaby wyłączyć podświetlenie wyszukiwania lesspo wyszukiwaniu; nowe wyszukiwanie włączy go ponownie, aby na stałe wyłączyć podświetlanie wyszukiwania dla trafienia sesji -G.

Alternatywnie umieść LESS='-G'w swoim środowisku lub uruchom mantak:

LESS='-G' man less

Jak na ironię wszystko to udokumentowano na stronie lesspodręcznika ...

Możesz także umieścić następujące elementy w środowisku, np. W swoim .bash_profile:

export MANPAGER='less -G'
wurtel
źródło
jak wyjaśniłem w swoim pytaniu, że nie chcę całkowicie go wyłączać, chcę zmienić sposób wyświetlania na ekranie. Moje pytanie mogło wprowadzać w błąd, ponieważ ktoś dla mnie je zredagował.
sgp667
1

Dla tmux ustawiłem TERMna tmux-256color . Wśród innych fajnych rzeczy ma to „zwykłe” odwracanie podświetlenia w mniejszym stopniu . Działa dobrze, gdy używasz czegoś nowoczesnego, takiego jak fedora lub cygwin.

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

W ncurses pakiety CentOS jednak nie posiadają dwie definicje tmux ( tmux i tmux-256color ). Zaimportowałem je dość łatwo z fedory. Nieznaczne jest to, że ncurses Centosa jest zbyt stary, aby bezpośrednio rozumieć pliki terminfo fedory.

W Fedorze:

$ infocmp tmux256-color >temp.txt

W Centos:

$ scp fedora-machine:temp.txt .
$ tic temp.txt

Następnie w tmux :

$ TERM=tmux-256-color man tmux

Wynik!

FYI komenda tic umieszcza skompilowany opis terminala w osobistej bazie danych terminfo, tj. ~/.terminfo/t/tmux-256color(W tym przypadku). Możesz to przenieść do globalnej bazy danych, jeśli tego właśnie chcesz:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
bobbogo
źródło