วิธีการตั้งค่าการแสดงผล bash เป็นไม่แสดงข้อความเสียงเรียกเข้าหลังจากออก?


28

คำถามของฉันง่าย แต่ฉันพบว่ามันยากที่จะใส่เฟรม / อธิบายได้อย่างง่ายดาย

ฉันเข้าสู่ระบบ Unix หลายกล่องด้วยบัญชีที่แตกต่างกัน ฉันเห็น 2 สิ่งที่แตกต่างกันuser1และuser2ในขณะที่แก้ไขไฟล์ข้อความเป็นกลุ่ม

user1

เมื่อฉันพิมพ์vim filenameเสียงเรียกเข้าจะเปิดขึ้นและฉันแก้ไขไฟล์ เมื่อฉันปิดข้อความที่สมบูรณ์จากไฟล์จะหายไปและฉันเห็นคำสั่ง / เอาท์พุตของ Teminals ที่มีอยู่ก่อนหน้านี้

user2

เมื่อฉันพิมพ์vim filenameเสียงเรียกเข้าจะเปิดขึ้นและฉันแก้ไขไฟล์ เมื่อฉันปิดส่วนของไฟล์ที่ปรากฏบนหน้าจอในขณะที่ฉันvimยังคงปรากฏขึ้นที่จอแสดงผลและหน้าจอเทอร์มินัลก่อนหน้าทั้งหมดก็เลื่อนขึ้นมา แม้ว่าไฟล์จะเป็นเพียงแค่ 1 บรรทัดหลังจากออกเป็นกลุ่มแล้วหน้าจอจะแสดงบรรทัดแรกพร้อมที่เหลือทั้งหมด~และฉันเห็นพรอมต์คำสั่งที่ด้านล่างของหน้าจอ

รายละเอียด

$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)

ฉันเปรียบเทียบvimrcไฟล์สำหรับผู้ใช้ทั้งสองและฉันตระหนักถึงการตั้งค่าทั้งหมดและไม่พบการตั้งค่า / การกำหนดค่าใด ๆ ที่เกี่ยวข้องกับพฤติกรรมนี้

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

ฉันไม่สามารถอธิบายสิ่งนี้ได้อย่างง่ายดายรวมทั้งพบว่ามันยากสำหรับ google เนื่องจากฉันไม่รู้ว่าคำหลักใดที่จะมองหาพฤติกรรมดังกล่าว แจ้งให้เราทราบหากฉันควรทำอย่างละเอียดเพิ่มเติม


มีuser1และuser2บัญชีบนเครื่องเดียวกันหรือแตกต่างกันหรือไม่?
jasonwryan

@jasonwryan การเข้าสู่ระบบบนเครื่องเดียวกันก็แสดงสถานการณ์เดียวกัน @ warl0ck ขอบคุณสำหรับสิ่งนั้น
mtk

1
หากคุณต้องการบังคับพฤติกรรมนี้ แต่รักษาประเภทอาคารของคุณให้เพิ่มบรรทัดใน. bashrc หรือ. profile พูด alias vi = "/ usr / bin / vi $ *; clear"
Criggie

คำตอบ:


24

หนึ่งในเหตุผลสำหรับพฤติกรรมนั้นคือการตั้งค่าของเครื่องสำหรับผู้ใช้แต่ละคน

ตัวอย่างเช่น:

  • User1 กำลังใช้ TERM = xtermในกรณีนี้เมื่อคุณออกจาก vim จะเป็นการล้างเครื่อง
  • User2 ใช้ TERM = vt100ในกรณีนี้เมื่อคุณออกจาก vim จะไม่ล้างเครื่อง

ตรวจสอบว่าเทอร์มินัล user1 ใดที่ใช้ด้วยecho $TERMและตั้งค่าเดียวกันสำหรับ user2 สำหรับทุบตี:

ระยะ = xterm; ส่งออกระยะ


+1 แน่นอน / โซลูชั่นที่สมบูรณ์แบบ ขอบคุณ !!! ไม่คิดว่ามันง่ายขนาดนั้น คุณช่วยอธิบายรายละเอียดเกี่ยวกับสิ่งที่เป็นTERMได้ไหม? หรือชี้ไปที่ลิงค์ทรัพยากรบางอย่าง? ฉันต้องเข้าใจสิ่งนี้ สิ่งนี้จะมีผลเฉพาะเมื่อเราเชื่อมต่อผ่านputtyหรือไม่
mtk

คุณสามารถระบุการตั้งค่าเทอร์มินัลลงในเซสชันโป๊วได้ แต่ผู้ใช้สามารถระบุได้ในตัวแปรสภาพแวดล้อม ระยะจะกำหนดประเภทอาคารของคุณและบางส่วนจะมีคุณสมบัติอื่น ๆ อีกมากมายเช่น xterm รองรับสีและจะปรับปรุงแถวและคอลัมน์โดยอัตโนมัติ หากคุณใช้ vt100 มันจะมีค่าเริ่มต้นเป็น 24 แถว 80 คอลัมน์เมื่อคุณปรับขนาดเทอร์มินัลของคุณคุณจะเห็นว่ามันติดอยู่ที่ 24x80 ตรวจสอบunix.stackexchange.com/questions/43945/นี้อาจอธิบายได้ดีกว่าฉัน
BitsOfNix

มันเป็นพฤติกรรมของเทอร์มินัลไม่ใช่เชลล์ การตั้งค่าเทอร์มินัลอีมูเลเตอร์เป็นเหมือนเครื่องมือที่คุณใช้เชื่อมต่อ ความแตกต่างมีการอธิบายในรายละเอียดที่นี่: unix.stackexchange.com/questions/4126/…
Leonid

@ Leonin ไม่แน่นอนถ้าคุณใช้ผงสำหรับอุดรูคุณสามารถกำหนดและมันจะอัปเดตเมื่อเชื่อมต่อหากผู้ใช้ไม่ได้กำหนดระยะ หากผู้ใช้ได้กำหนดไว้แล้วคุณก็จะถูกต้องไม่สำคัญว่าเครื่องมือชนิดใดที่จะเหนือกว่าการตั้งค่าบนสภาพแวดล้อมของผู้ใช้
BitsOfNix

เพียงแค่ทราบเกี่ยวกับการแก้ปัญหานี้: YMMV มันไม่ใช่ "xterm" เสมอไป การใช้ dwm (Dynamic Window Manager) กับ dmenu บน FreeBSD 10 ฉันต้องปลอม terminal โดยใช้ "rxvt" เพื่อรับสถานการณ์ 1 คุณยังสามารถข้ามการตั้งค่าคำศัพท์โดยเพิ่ม "set term = rxvt" ลงในไฟล์ ~ / .vimrc ของคุณ .
ไรเดอ

18

พฤติกรรมดังกล่าวเป็นสิ่งเดียวที่ทำให้ฉันไม่ได้ใช้งาน screenพฤติกรรมดังกล่าวเป็นสิ่งเดียวที่ทำให้ฉันออกไปจากการใช้มันใช้หน้าจอ "terminal" และเปลี่ยนเป็น "xterm" ไม่ได้ช่วยอะไร

การเพิ่มaltscreen onตัวเลือกใน ~ / .screenrc แก้ไขได้ จากคู่มือของหน้าจอ:

altscreen on|off

If set to on, "alternate screen" support is enabled in virtual terminals, just like in xterm.  Initial setting is `off'.

@Fox OP ไม่ได้พูดถึงสิ่งใดเกี่ยวกับ TERM ที่เขาใช้ดังนั้นนี่อาจเป็นเพียงคำตอบอื่น อย่างไรก็ตามหน้านี้อยู่ในอันดับต้น ๆ ในขณะที่ googling สำหรับปัญหาหน้าจอเช่นกัน
BartBiczBoży

2
นี่เป็นกลอุบาย! คำสำคัญ: "เป็นกลุ่มออกจากขั้วภาพสิ่งประดิษฐ์"
เจย์เทย์เลอร์

0

ฉันลองตัวเลือกเหล่านี้ทั้งหมด แต่ผลลัพธ์ไม่ใช่ตัวเลือกที่ฉันคาดไว้ !clearจะล้างทั้งหน้าจอและไม่ทิ้งคำสั่ง bash ก่อนหน้านี้

วิธีแก้ไขที่ง่ายและถูกต้องคือการตั้งค่าชนิดสตริงxtermเทอร์มินัลเป็นและความเร็วเทอร์มินัลเป็น38400,38400เทอร์มินัลเป็นภายใต้รายละเอียดเทอร์มินัลในการตั้งค่าผงสำหรับอุดรูภายใต้

บันทึกการตั้งค่าและคุณพร้อมแล้ว

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