การเลื่อนแนวนอนเพิ่มทีละน้อยโดยใช้ -S น้อย


25

ฉันใช้lessเพื่อแยกวิเคราะห์บันทึกการเข้าถึง HTTP -Sฉันต้องการที่จะดูทุกอย่างเรียบร้อยบนเส้นเดียวดังนั้นฉันใช้

ปัญหาที่ฉันมีก็คือหนึ่งในสามของหน้าต่างเทอร์มินัลของฉันมีเมตาดาต้าที่ฉันไม่สนใจ เมื่อฉันใช้ปุ่มลูกศรเพื่อเลื่อนไปทางขวาฉันพบว่ามันเลื่อนผ่านจุดเริ่มต้นของข้อมูลที่ฉันสนใจ!

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

ตัวอย่าง

สายนี้:

access.log00002: 10.0.0.0 - USER_X [07 / พ.ย. / 2556: 16: 50: 50 +0000] "รับ / บาง / ยาว / URL"

จะเลื่อนไปที่: ng/URL"

คำถาม

มีวิธีที่ฉันสามารถเลื่อนทีละน้อยทั้งโดยตัวละครหรือคำ?

คำตอบ:


19

คำสั่งการเลื่อนแนวนอนเดียวเลื่อนครึ่งหน้าจอ แต่คุณสามารถผ่านอาร์กิวเมนต์ตัวเลขเพื่อระบุจำนวนอักขระเช่นการพิมพ์4 Rightเลื่อนไปทางขวา 4 ตัวอักษร น้อยไม่ได้มีความคิดจริง ๆ ของ "บรรทัดปัจจุบัน" และไม่แยกบรรทัดเป็นคำดังนั้นไม่มีวิธีการเลื่อนทีละคำ

คุณสามารถกำหนดคำสั่งที่เลื่อนตามจำนวนอักขระที่แน่นอน ตัวอย่างเช่นหากคุณต้องการShift+ LeftและShift+ Rightเพื่อเลื่อนครั้งละ 4 ตัวอักษร:

  1. กำหนดลำดับการควบคุมที่เทอร์มินัลของคุณส่งไปสำหรับคีย์ผสมเหล่านี้ เทอร์มินัลส่งลำดับของไบต์ที่ขึ้นต้นด้วยอักขระescape (ซึ่งสามารถเขียน\eได้\033, ^[ในบริบทต่าง ๆ ) สำหรับคีย์ฟังก์ชันและคีย์เชน กดCtrl+ V Shift+ Leftที่พร้อมต์เชลล์: สิ่งนี้จะแทรกอักขระเลี่ยงอย่างแท้จริง (คุณจะเห็น^[บนหน้าจอ) แทนการประมวลผลโดยเชลล์ของคุณและแทรกลำดับหนีส่วนที่เหลือ การตั้งค่าทั่วไปมีShift+ LeftและShift+ Rightส่ง\eO2Dและ\eO2Cตามลำดับ

  2. สร้างไฟล์ชื่อ~/.lesskeyและเพิ่มบรรทัดต่อไปนี้ (ปรับถ้าเทอร์มินัลของคุณส่งลำดับการหลีกเลี่ยงที่แตกต่างกัน):

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    จากนั้นเรียกใช้lesskeyซึ่งจะแปลงไฟล์ที่มนุษย์อ่านได้~/.lesskeyให้เป็นไฟล์ไบนารี~/.lessที่lessอ่านเมื่อเริ่มต้น


19

คุณสามารถใช้ตัวเลือก "- #" เพื่อกำหนดจำนวนคอลัมน์สำหรับการเลื่อนแนวนอน

จากหน้าคน:

- # or --shift
ระบุจำนวนตำแหน่งเริ่มต้นที่จะเลื่อนในแนวนอนในคำสั่ง RIGHTARROW และ LEFTARROW หากจำนวนที่ระบุเป็นศูนย์จะเป็นการกำหนดจำนวนตำแหน่งเริ่มต้นเป็นครึ่งหนึ่งของความกว้างของหน้าจอ

ตัวอย่าง (ตั้งค่าการเลื่อนแนวนอนเป็น 10 คอลัมน์):

less -S - # 10 my_file


มีความเป็นไปได้ไหมที่จะเพิ่มตัวเลือกนี้ในไฟล์กำหนดค่าบางอย่างดังนั้นฉันจึงไม่จำเป็นต้องผ่าน - # 1 ตัวเลือกทุกครั้งที่ฉันพิมพ์คำสั่ง?
Trismegistos

1
@Trismegistos ใช่คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม~/.bashrcด้วยexport LESS="-# 1"
wisbucky

นอกจากนี้คุณยังสามารถตั้งค่าเปอร์เซ็นต์ของความกว้างของหน้าจอได้ถ้าตัวเลขเริ่มต้นด้วยจุดทศนิยม ตัวอย่างเช่น-# .25จะเลื่อน 1/4 ของความกว้างหน้าจอ
wisbucky


2

อีกทางเลือกหนึ่งคือการใช้mostเพจเจอร์

ในmostno-wrap ( -S) เป็นค่าเริ่มต้นและRightเลื่อนหนึ่งคอลัมน์ไปทางขวาแทนครึ่งหน้าจอ ใช้>หรือTabเพื่อเลื่อนเร็วขึ้น

อีกหนึ่งทางเลือกเป็นw3mเพจเจอร์ (ยังเป็นหนึ่งในที่ดีที่สุดของเว็บเบราเซอร์ Terminal) ที่คุณสามารถใช้<, >เช่นกันและ,, .สำหรับปลีกย่อยเม็ดเลื่อน (ปุ่มเดียวบนแป้นพิมพ์ QWERTY)


นี่ไม่เป็นความจริง. เพิ่มเติมคือการตัดเป็นค่าเริ่มต้นและไม่มีตัวเลือก -S
Trismegistos

1
@Trismegistos ฉันไม่ได้พูดถึงmore(ซึ่งมีการใช้งานหลายสิบ) แต่เกี่ยวกับmost(โดย John E. Davis ฉันไม่ทราบถึงการดำเนินการอื่น ๆ )
Stéphane Chazelas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.