ทำรูปแบบการค้นหาที่เน้นสีน้อยลงแทนที่จะทำให้เป็นตัวเอียง


23

เพื่อความเข้าใจของฉันคนใช้lessเป็นเพจเจอร์และเมื่อค้นหาคำหลักที่ใช้lessมัน "เน้น" คำหลักที่มีตัวเอียง ฉันพบว่าไม่สะดวกจริง ๆ ดังนั้นฉันจึงต้องการเปลี่ยนสิ่งนี้เป็นสิ่งที่ต้องการเป็นกลุ่มset hlsearchที่รูปแบบที่พบมีพื้นหลังที่แตกต่างกัน

ฉันพยายามที่จะวิ่งman -P vim systemdแต่ที่เลิกกับสถานะข้อผิดพลาดที่ 1 lessเพื่อให้ดูเหมือนว่าฉันติดอยู่กับ

ไม่มีอะไรที่ฉันสามารถค้นพบได้ในความman lessช่วยเหลือนั้น (ฉันพบว่าตัวเลือก-Gนั้นจะปิดการเน้นด้วยกันทั้งหมดซึ่งยิ่งแย่กว่าตัวเอียง)

ที่ถูกกล่าวว่าไม่มีใครรู้วิธีการบรรลุการเน้นการค้นหา (เปลี่ยนสีพื้นหลัง) ในหน้าคน?

FYI ฉันใช้งาน Ubuntu 14.10

ฉันเจอคำถามนี้ดูเหมือนว่าจะถามเกี่ยวกับสิ่งเดียวกัน แต่ฉันไม่แน่ใจว่าฉันทำตามวิธีการทำงานนี้ ( LESS_TERMCAP_so) lessหน้าคนไม่ได้พูดถึงเรื่องนี้ (ฉันได้ผลลัพธ์แปลก ๆ ด้วยวิธีนี้)


หมายความว่าคุณวางบรรทัดนั้นใน~/.bashrcไฟล์ของคุณ export LESS_TERMCAP_so=$'\E[30;43m'ดูคำตอบนี้เช่นกันunix.stackexchange.com/questions/38634/…
iyrin

1
บางครั้งฉันใช้man man | vim -เพื่อใช้ประโยชน์จากการกำหนดค่ากลุ่มคีย์และฟังก์ชั่นของฉัน
JJoao

คุณคิดวิธีแก้ปัญหานี้หรือไม่? ฉันมีปัญหาเดียวกันที่แน่นอนในเครื่องเดียวและฉันไม่สามารถเข้าใจได้ว่าอะไรคือความแตกต่าง LESS_TERMCAP_soตัวแปรด้านบนทำให้ไฟล์ทั้งหมดกลายเป็นพื้นหลังสีส้ม ...
user1338062

ฉันเกรงว่าฉันยังคงดิ้นรนกับสิ่งนี้
sgp667

คำตอบ:


16

พบคำตอบใน superuser: /superuser/566082/less-doesnt-highlight-search

ดูเหมือนว่าจะเกี่ยวข้องกับการตั้งค่า TERM ของคุณ ตัวอย่างเช่นการไฮไลต์การกระทำที่น้อยกว่าปกติ (ไฮไลต์พื้นหลังสีขาว) เมื่ออยู่ในหน้าต่าง gnome-terminal ปกติ แต่เมื่อฉันอยู่ใน tmux ตัวเอียงจะเกิดขึ้น ข้อแตกต่างสำหรับฉันคือ TERM กำลังตั้งค่าเป็น "หน้าจอ" เมื่ออยู่ใน tmux แต่ "xterm-256color" เมื่อไม่ได้ใช้ เมื่อฉันตั้งค่า "TERM = xterm-256color" ในหน้าต่าง tmux การไฮไลต์โดยใช้น้อยจะกลับไปเป็นการไฮไลต์พื้นหลัง


ฉันลืมคำถามนี้ไปแล้ว แต่นี่เป็นข่าวที่น่าตื่นเต้น ทันทีที่ฉันได้รับคอมพิวเตอร์ของฉันฉันจะทดสอบนี้!
sgp667

1
นี่เป็นโซลูชันที่ใช้งานไม่ได้เนื่องจากแอปพลิเคชันอื่นขึ้นอยู่กับ TERM ที่ตั้งค่าเป็น screen * เมื่ออยู่ใน tmux เช่น WeeChat เมื่อไม่ได้ตั้งค่าเป็น screen * ใน tmux, WeeChat มีปัญหาการเรนเดอร์แปลก ๆ
Blaine Lafreniere

ฉันได้ตั้งข้อสังเกตว่าฉันมีปัญหากับ tmux <2.0 และไม่มีปัญหาตั้งแต่ tmux v2
artfulrobot

การค้นพบที่ยอดเยี่ยม ตอนนี้ฉันมีset -g default-terminal "xterm-256color"ใน~ / .tmux.confบนกล่อง CentOS 7 ของฉัน (และอื่น ๆ )
sshow

ยังตรวจสอบเพื่อดูว่าscreen-256colorมีอยู่: ls /usr/share/terminfo/s/ลอง
aDroid

8

การกล่าวถึงLESS_TERMCAP_soไม่สมบูรณ์ นั่นคือตัวแปรสภาพแวดล้อมพิเศษที่ใช้เพื่อแทนที่ความสามารถ termcap so(standout) ในการใช้ความสามารถนี้คุณจะต้องให้ความสามารถse(Standend) เช่นกัน

terminfo (5)หน้าคู่มือให้สรุปของคุณสมบัติเหล่านี้สำหรับ terminfo (smso / rmso) และ termcap (ดังนั้น / SE) ชื่อ:

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

ส่วนที่เน้นการอธิบาย:

หากเทอร์มินัลของคุณมีแอตทริบิวต์การแสดงผลหนึ่งประเภทขึ้นไปสิ่งเหล่านี้สามารถแสดงได้หลายวิธี คุณควรเลือกรูปแบบการแสดงผลหนึ่งรูปแบบเป็นโหมดstandoutซึ่งมีความคมชัดสูงง่ายต่อการใช้ตารูปแบบสำหรับการเน้นข้อความแสดงข้อผิดพลาดและตัวดึงดูดความสนใจอื่น ๆ (หากคุณมีทางเลือกวิดีโอย้อนกลับบวกความสว่างครึ่งหนึ่งเป็นสิ่งที่ดีหรือวิดีโอย้อนกลับอย่างเดียว) ลำดับที่จะเข้าและออกจากโหมดยอดเยี่ยมจะได้รับเป็น smso และ rmsoตามลำดับ

หากคุณต้องการใช้สีสำหรับยอดเยี่ยมคุณต้องระบุLESS_TERMCAP_seสีที่เหมาะสมซึ่งจะรีเซ็ตสี สิ่งนี้ทำได้ค่อนข้างง่ายตราบใดที่คุณไม่คาดหวังว่าจะใช้สีในหน้าคู่มือด้วยเหตุผลอื่น ๆ (เช่นการใช้คุณสมบัติสี SGR ของ Groff)

สมมติว่าค่าที่แนะนำในความคิดเห็น:

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

จากนั้นคุณสามารถรีเซ็ตมันสำหรับเทอร์มินัลส่วนใหญ่ที่ใช้

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

อย่างไรก็ตามเหตุผลสำหรับตัวเอียงคือคำอธิบายเทอร์มินัลสำหรับ GNU screenใช้ลำดับการหลบหนีมาตรฐานสำหรับตัวเอียงเป็นความสามารถในการ standout / standend ของตัวเอง บางส่วนของที่มีการกล่าวถึงในรายการฐานข้อมูลสถานี


นี่เป็นทางออกแรกที่ใช้งานได้จริงสำหรับฉัน (ใน tmux บน Mac) ฉันเพิ่งเพิ่มบรรทัดส่งออกทั้งสองข้างต้นลงในไฟล์ bash config ของฉัน
Marlun

อย่างไรก็ตามหากฉันเขียน "ส่งออก" เพื่อดูตัวแปรสภาพแวดล้อมทั้งหมดของฉันทุกอย่างหลังจากบรรทัดเหล่านี้กลายเป็นไฮไลต์และเทอร์มินัลยังคงถูกเน้นอยู่ดังนั้นฉันต้องปิดมันลงและเริ่มใหม่
Marlun

ในกรณีเช่นนั้นฉันใส่ตัวแปรลงในสคริปต์ที่เรียกโปรแกรมที่ต้องการตัวแปรเฉพาะ ตัวแปรที่เปลี่ยนแปลงจะมีผลใช้งานภายในสคริปต์เท่านั้น
Thomas Dickey

export | lessทำหน้าที่เป็นวิธีแก้ปัญหาด้วย
Marlun

4

กดESCuเพื่อปิดการไฮไลต์การค้นหาlessหลังจากค้นหา -Gการค้นหาใหม่จะเปิดใหม่อีกครั้งเพื่อที่จะค้นหาอย่างถาวรเปิดไฮไลท์ปิดสำหรับตีเซสชั่น

ใส่LESS='-G'ในสภาพแวดล้อมของคุณหรือเรียกใช้manดังนี้:

LESS='-G' man less

กระแทกแดกดันนี่คือเอกสารทั้งหมดในlessmanpage ...

คุณสามารถใส่สิ่งต่อไปนี้ในสภาพแวดล้อมเช่นในของคุณ.bash_profile:

export MANPAGER='less -G'

ตามที่ฉันอธิบายในคำถามของฉันฉันไม่ต้องการเปลี่ยนให้สมบูรณ์ฉันต้องการเปลี่ยนลักษณะที่ปรากฏบนหน้าจอของฉัน คำถามของฉันอาจทำให้เข้าใจผิดเพราะมีคนแก้ไขให้ฉัน
sgp667

1

สำหรับtmuxฉันชุดTERMที่จะtmux-256color ในบรรดาสิ่งที่ดีอื่น ๆ นี้มี "ปกติ" เน้นย้อนกลับในน้อย ทำงานได้ดีเมื่อใช้สิ่งที่ทันสมัยเช่น fedora หรือ cygwin

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

ncursesแพคเกจใน Centos แต่ไม่ได้มีสองคำจำกัดความ tmux ( tmuxและtmux-256color ) ฉันนำเข้าพวกมันค่อนข้างง่ายจาก fedora ริ้วรอยเล็กน้อยคือncursesของ Centos เก่าเกินไปที่จะเข้าใจไฟล์ terminfo ของ fedora โดยตรง

บน fedora:

$ infocmp tmux256-color >temp.txt

บน Centos:

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

จากนั้นภายในtmux :

$ TERM=tmux-256-color man tmux

ผล!

FYI คำสั่งticวางคำอธิบายเทอร์มินัลที่คอมไพล์ลงในฐานข้อมูล terminfo ส่วนตัวของคุณเช่น ~/.terminfo/t/tmux-256color(ในกรณีนี้) อย่าลังเลที่จะย้ายไปยังฐานข้อมูลส่วนกลางหากคุณต้องการ:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.