ปิดใช้งานการทำให้แท็บ bash เสร็จสิ้น


19

เป็นไปได้หรือไม่ที่จะปิดใช้งานการเติมข้อความอัตโนมัติของ bash บนแท็บที่กด?

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

และไม่คุณไม่สามารถโน้มน้าวให้ฉันใช้ช่องว่างแทนแท็บได้


ใน zsh ปุ่ม Tab จะแทรกแท็บหากคุณกดที่จุดเริ่มต้นของบรรทัด (หน้าอักขระที่ไม่ใช่ช่องว่าง) ฉันไม่คิดว่าสามารถตั้งโปรแกรม bash ให้เป็นแบบนั้นได้ (คุณสามารถผูกกุญแจไว้กับฟังก์ชั่นทุบตีได้ แต่ AFAIK คุณไม่สามารถเรียกใช้งานฟังก์ชั่น bash ที่สำเร็จได้)
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


16

ใส่

 set disable-completion on

สตริงใน~/.inputrcและรีสตาร์ทเชลล์ของคุณ มันจะปิดการใช้งานความสมบูรณ์เลย


ไม่เพียง แต่ในการทุบตีเท่านั้น ...
yrk

8
หากต้องการให้มันมีผลกับ Bash แทนที่จะรวมบรรทัดนั้นใน~/.inputrcไฟล์ของคุณให้เพิ่มสิ่งนี้ลงในไฟล์เริ่มต้นเชลล์ที่เหมาะสม:bind 'set disable-completion on'
หยุดชั่วคราวจนกว่าจะมีประกาศ

1
สิ่งที่เดนนิสกล่าวและแฟ้มเริ่มต้นที่เหมาะสมคือ~/.bashrc(ถ้ามันไม่ได้ใช้ในเปลือกหอยเข้าสู่ระบบเพิ่มsource ~/.bashrcไป~/.bash_profile)
Gilles 'หยุดความชั่วร้าย'

6

หากต้องการปิดใช้งานการทำให้แท็บ Bash เสร็จสิ้นชั่วคราวเท่านั้นคุณสามารถเริ่มใช้งาน Bash ด้วย--noeditingตัวเลือก:

alias noed='bash --noediting'

6

ทางออกของเดนนิส

bind 'set disable-completion on'

สามารถทำได้ทันทีใน Bash เช่นกัน คุณไม่จำเป็นต้องใส่ไว้ใน. bashrc

วิธีการของ Musta (bash - noediting) ใช้งานได้ แต่ยังปิดใช้งานการแก้ไขบรรทัดคำสั่ง

อีกวิธีคือ

bind -u complete

(ล้างการเชื่อมโยงคีย์ที่เกี่ยวข้องกับ 'สมบูรณ์')

http://www.gnu.org/software/bash/manual/bashref.html , 4.2 คำสั่ง Bash Builtin


คำตอบที่ถูกต้องสำหรับคำถามที่ว่า "ฉันจะชั่วคราวเสร็จทุบตีปิดการใช้งาน?" สิ่งนี้จะช่วยได้มากเมื่อคุณนำทางผ่านไดเรกทอรีที่มีไฟล์มากกว่า 81,000 ไฟล์และคุณไม่สามารถแม้แต่ Ctrl + C โดยไม่ต้องรอสองนาทีเพื่อให้ Bash กลับมาพร้อมรับคำ
TheDudeAbides
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.