ทำให้เทอร์มินัลใช้ pageup / pagedown แทน shift-pageup / shift-pagedown หรือไม่


12

ฉันโต shift-pgup แล้วเหนื่อยล้าเพื่อเลื่อนหน้าขึ้นใน terminal gnome, command line, terminator และ guake เป็นต้น

มีวิธีใดบ้างที่จะทำให้แอปเหล่านี้ใช้ปุ่มเลื่อนหน้าขึ้นและเลื่อนลงตรงสำหรับการสลับหน้า

คำตอบ:


9

ฉันกลัวว่านี่จะเป็นไปไม่ได้เนื่องจากไม่มี PgUp / PgDown จะถูกส่งไปยังแอปพลิเคชันบรรทัดคำสั่งซึ่งจะทำให้บางส่วนใช้งานไม่ได้ นี่เป็นฟีเจอร์ที่ดีสำหรับ Unix

หากคุณต้องการการเลื่อนที่ใช้ง่ายขึ้นฉันแนะนำให้ใช้lessคำสั่ง มันใช้วิธีนี้:

command-with-lot-of-output | less

สิ่งนี้จะเริ่มต้นlessคำสั่งด้วยผลลัพธ์ของคำสั่งดั้งเดิมของคุณ ( ข้อมูลเพิ่มเติมเกี่ยวกับการส่งออกไพพ์ไปยังโปรแกรมอื่น ๆ สามารถดูได้ที่นี่: http://www.dsj.net/compedge/shellbasics1.html )

สามารถนำทางน้อยโดยใช้ลูกศรหรือ PgUp / PgDown เพื่อความสะดวกของคุณนอกจากนี้ยังมีการค้นหาและอื่น ๆ (ดูman lessเพิ่มเติม) คุณสามารถเลิกlessได้โดยเพียงแค่กดปุ่มqที่สำคัญ


3
ฉันค้นคว้า heck จากสิ่งนี้และในขณะที่ดูเหมือนว่ามีการกดแป้นพิมพ์มากกว่า 100 ครั้งที่คุณสามารถแมปในคอนโซลคำสั่งการเลื่อนหน้าขึ้นและเลื่อนลงไม่ใช่สองอย่าง!
HDave

less ไม่เหมาะสำหรับการเลื่อนขึ้น / ลงในเนื้อหาของเครื่องเทอร์มินัลและการเรียกใช้จะสะดวกกว่าการกด Shift ไม่ใช่ความผิดของจาคุบ แต่น่าเศร้าที่ไม่มีคำตอบสำหรับคำถามนี้
Jonathan Hartley

@ ซ่อนไว้ที่นี่เป็นวิธีการทำใน xterm unix.stackexchange.com/questions/339160/…
วิลเลียม

1
@JonathanHartley นี่คือวิธีการทำใน xterm unix.stackexchange.com/questions/339160/…
William

1

ใช้xtermและปรับแต่งปุ่มลัด (ใน~/.Xresources) ดังนี้:

xterm*VT100.Translations: #override \n\
    <KeyPress>Prior:scroll-back(1,page)\n\
    <KeyPress>Next:scroll-forw(1,page)\n\

gnome-terminal พูดว่า PageUp / PageDown สำหรับแอพพลิเคชั่นภายในเครื่องเทอร์มินัลและการใช้งานจะทำให้เกิดความสับสน ...


ทำไม xterm ถึงสนับสนุนตัวเลือกและไม่ใช่เทอร์มินอล gnome? ฉันเป็นคนที่เชื่อมโยงกับคำตอบข้างต้นและโพสต์เงินรางวัลฉันไม่ได้ให้ความโปรดปรานกับคำตอบนี้
วิลเลียม

askubuntu.com/users/33577/liam-williamโอ๊ะฉันไม่ได้อ่านจนกว่าจะถึงด้านล่าง (ที่ด้านบนมันเป็นเรื่องเกี่ยวกับคลิปบอร์ด) และ: ยุติธรรมพอ! ฉันจะไม่ให้มันกับฉัน: ฉันพยายามที่จะโพสต์ URL ที่สนับสนุน statemtent gnome-ขั้วของฉัน แต่ทั้งหมดที่ฉันพบว่าล้าสมัยเช่นการเชื่อมโยงไม่ existant ...
เอบีเอ

1

Konsoleเป็นโปรแกรมจำลองเทอร์มินัลสำหรับ KDE ที่มีตัวเลือกที่เกี่ยวข้องซึ่งสามารถกำหนดค่าให้ใช้Page UpและPage Downปุ่มสำหรับการสลับหน้าโดยตรง ไม่มีเทอร์มินัลอีมูเลเตอร์อื่น ๆ ที่ฉันพบว่าทำได้ง่ายเหมือนกับ Konsole สำหรับการปรับแต่งเช่นนั้น

วิธีจัดเพจจิ้งโดยตรง

ใน Konsole ให้ทำตามขั้นตอนต่อไปนี้

  1. ในแถบเมนูไปที่ "การตั้งค่า" และคลิก "กำหนดค่าโปรไฟล์ปัจจุบัน ... " (Kubuntu 12.04) หรือ "แก้ไขโปรไฟล์ปัจจุบัน ... " (Kubuntu 16.04) และหน้าต่างจะปรากฏขึ้น

  2. คลิกที่แท็บ "Input" (Kubuntu 12.04) หรือแท็บ "Keyboard" (Kubuntu 16.04) ซึ่งมีส่วนที่เรียกว่า "Key Bindings" พร้อมรายการลิสต์ของคีย์ที่กำหนดไว้ล่วงหน้า

    การเชื่อมโยงที่สำคัญใน Konsole

  3. เลือก "ค่าเริ่มต้น (XFree 4)" และคลิกปุ่ม "แก้ไข ... " จากนั้นหน้าต่างอื่นจะปรากฏขึ้น

  4. เลื่อนลงและมองหาคีย์ผสมกับการส่งออกPgDown-Shift-AnyModifier เปลี่ยนชื่อการส่งออกนี้\E[6~ScrollPageDown

  5. เลื่อนลงและมองหาคีย์ผสมกับการส่งออกPgUp-Shift-AnyModifier เปลี่ยนชื่อการส่งออกนี้\E[5~ScrollPageUp

  6. คลิกปุ่ม "ตกลง" เพื่อเสร็จสิ้นและปิดหน้าต่าง

วิธีทดสอบผลลัพธ์

ในขั้นตอนที่ 3 มี "พื้นที่ทดสอบ" เพื่อยืนยันเอาต์พุตสำหรับการกดปุ่มแต่ละครั้ง

  • คลิกเพื่อนำโฟกัสในช่องข้อความ "อินพุต:" และกดPage UpและPage Downปุ่ม (ทีละครั้ง)

  • ยืนยันว่าเอาต์พุตจะเหมือนกับที่ถูกเปลี่ยนชื่อ

    รายการการโยงคีย์และพื้นที่ทดสอบใน Konsole

หรือเขียนสคริปต์อย่างง่ายเพื่อสะท้อนข้อความในลูป ฉันได้รวมสคริปต์ของฉันเองดังต่อไปนี้

  • คัดลอกและวางบรรทัดของรหัสต่อไปนี้ในเท็กซ์เอดิเตอร์

    #!/bin/bash
    
    echo "Started script"
    echo "If no input, then loop"
    while true
    do {
        echo "Hello, world"
        echo "Wait 1 second to loop [q to quit]"
        read -t 1 -n 1 INPUT && echo
        if [ "$INPUT" == "q" ]
            then break
            else echo "UTC now: $(date -u +%H%M%S)"
        fi
        continue
    }
    done
    echo "Ended script"
    
  • บันทึกเป็นไฟล์ ie loop.shและเรียกใช้สคริปต์ในเทอร์มินัล ie bash loop.sh(ไม่สามารถเรียกใช้งานได้)

  • รอจนกว่าข้อความที่สะท้อนจะเต็มพื้นที่ดูและเริ่มเลื่อนเอาต์พุตลง

  • จากนั้นกดPage UpและPage Downปุ่มเพื่อเลื่อนขึ้นและเลื่อนลงไปดูพื้นที่

ฉันทดสอบโดยใช้ Konsole 2.8.5, KDE 4.8.5 ใน Kubuntu 12.04

โบนัส: คีย์ผสมและเอาท์พุท

เอาล่ะคำตอบโบนัสสำหรับการชี้แจง บางคนอาจสงสัยว่าทำไมฉันต้องแก้ไขชุดคีย์เหล่านั้นและไม่ใช่ชุดอื่น ๆ ฉันคิดว่าก่อนหน้านี้โดยการทดสอบคีย์บอร์ดหลายประเภท

ต่อไปนี้เป็นชุดคีย์เริ่มต้นและเอาต์พุตซึ่งได้คิดโดยใช้ "พื้นที่ทดสอบ" ใน Konsole

สำหรับปุ่ม Page Up / Page Down หลัก (รวมถึงชุดแป้นพิมพ์ที่ต้องการกดFnแป้น aka Fn + PgUp / Fn + PgDn):

  • การรวมกันที่สำคัญ: PgDown-Shift-AnyModifier เอาท์พุท:\E[6~

  • การรวมกันที่สำคัญ: PgUp-Shift-AnyModifier เอาท์พุท:\E[5~

สำหรับปุ่ม Page Up / Page Down สำรอง (ทางลัดเริ่มต้นในเทอร์มินัลที่ต้องใช้Shiftชื่อแป้น Shift + PgUp / Shift + PgDn):

  • การรวมกันที่สำคัญ: PgDown+Shift-AppScreen เอาท์พุท:ScrollPageDown

  • การรวมกันที่สำคัญ: PgUp+Shift-AppScreen เอาท์พุท:ScrollPageUp

โปรดสังเกตว่าเครื่องหมายลบ-และ+เครื่องหมายบวกแตกต่างกันระหว่างคำหลักสำหรับคีย์หลักและรอง สิ่งเหล่านี้คือวิธีการแปลความกดปุ่มเป็นตัวละครที่เทียบเท่ากันอย่างน้อยใน Konsole

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

คำตัดสิน

สำหรับผู้ใช้ระดับสูงที่ไม่ชอบจัดการกับไฟล์การตั้งค่าที่หลากหลายและวิธีการแก้ปัญหาที่น่าเบื่อหน่าย Konsole จะชนะใจคุณอย่างง่ายดาย ดูเหมือนว่าไม่มีใครสังเกตเห็นถึงการปรับแต่งระดับนี้ที่นำเสนอโดย Konsole และ KDE ในช่วงสี่ปีที่ผ่านมา ช่างแปลกเหลือเกิน


ดังนั้นฉันจึงพยายามนั่งกะการตั้งค่าการรวมคีย์เพื่อPgDownดูเหมือนจะไม่ทำงานด้วยเหตุผลบางอย่าง
วิลเลียม

คุณต้องการลบทางลัดเริ่มต้นหรือไม่ ถ้าล้างข้อมูลการส่งออกไม่ได้ทำงานแทนการส่งออกเริ่มต้นScrollPageDown, ScrollPageUpกับก่อนแทนที่\E[6~, \E[5~สำหรับPgDown+Shift-AppScreenและPgUp+Shift-AppScreenคำสั่งผสมที่สำคัญตามลำดับ สิ่งสำคัญคือต้องคลิก "ตกลง" เพื่อให้การตั้งค่าใช้งาน
clearkimura

ไม่ฉันไม่ต้องการกด Shift ในเวลาเดียวกันกับ PgDown และ PgUp ฉันไม่เชื่อว่าสิ่งนี้ตอบคำถาม
วิลเลียม

คุณหมายถึงขั้นตอนที่ 4, 5 ไม่ได้ผลสำหรับคุณ แปลก. ภาพหน้าจอใด ๆ พร้อมลิงก์เพื่อแสดงสิ่งที่คุณเห็น
clearkimura

1
สิ่งนี้ใช้งานได้อย่างมีเสน่ห์ใน Konsole 16.08.3 บน Fedora 24 มีความแตกต่างเล็กน้อยไม่กี่แท็บเรียกว่า "Keyboard" แทน "Input" แต่บรรทัดล่างคือส่วนที่แสดงวิธีเปลี่ยนชื่อเอาต์พุตเป็นจุดบน . ขอบคุณสำหรับการลบคัน 10 ปีฉันมี! ++ 1 ... ถ้าฉันให้ +10 ได้ฉันจะ
Mike S

-2

คุณสามารถใช้moreคำสั่งดังนี้:

command-with-lots-of-output  |  more

สิ่งนี้จะเริ่มต้นเอาต์พุตคำสั่งต้นฉบับด้วยเพิ่มเติม

moreสามารถสำรวจด้วย 'space' เพียงกดช่องว่างและดูผลลัพธ์ของคำสั่งเป็นหน้า

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