เมื่อพยายามเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติสำหรับ vi ไฟล์ที่ลงท้ายด้วย. log จะไม่ปรากฏเป็นตัวเลือก ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
เมื่อพยายามเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติสำหรับ vi ไฟล์ที่ลงท้ายด้วย. log จะไม่ปรากฏเป็นตัวเลือก ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
คำตอบ:
ฉันเดาว่าคุณมีที่ไหนซักแห่ง ~/.cshrc
) ระบุบางสิ่งเช่นนี้:
complete vi 'n/*/f:^*.{o,a,dvi,gz,z,Z,log}/'
คุณควรเปลี่ยน (เปลี่ยนทับ) เช่น:
complete vi 'n/*/f:^*.{o,a,dvi,gz,z,Z}/'
คำอธิบาย: n
หมายถึง "การเติมคำถัดไปให้สมบูรณ์", *
เป็นรูปแบบกลมเพื่อให้ตรงกับจุดเริ่มต้นของคำในบรรทัดคำสั่ง f
หมายถึงชื่อไฟล์ ^*.{o,a,dvi,gz,z,Z}
หมายความว่าชื่อไฟล์จะต้องไม่ลงท้ายด้วย .o
, .a
, .dvi
, .gz
, .z
หรือ .Z
.
เป็นไปได้ว่าการเติมข้อความอัตโนมัติที่ละเว้นชื่อไฟล์ที่ลงท้ายด้วย .log
ไม่เฉพาะเจาะจงกับ vi
. เป็นไปได้ว่าชื่อไฟล์ลงท้ายด้วย .log
ไม่ได้เติมข้อความอัตโนมัติให้กับสิ่งใด
มีตัวแปรเชลล์ใน tcsh ที่เรียกว่า fignore
ซึ่ง ให้เป็นไปตาม man
หน้าสำหรับ tcsh
ทำสิ่งต่อไปนี้:
แสดงรายการส่วนต่อท้ายชื่อไฟล์ที่จะถูกละเว้นเมื่อเสร็จสิ้น
ในตัวฉันเอง tcsh
การกำหนดค่าและการใช้งานมันเหมาะสมแล้วที่ฉันจะเพิกเฉยต่อไฟล์บางไฟล์ที่เกี่ยวกับความสามารถในการทำให้สมบูรณ์:
% set fignore = (.aux .log .elc .o)
% echo $fignore
.aux .log .elc .o
อย่างไรก็ตามถ้าคุณมีบางอย่าง vi
ความสามารถในการเติมเต็มที่เฉพาะเจาะจงตั้งค่าให้ละเว้น .log
คำสั่งต่อไปนี้ควรจะแจ้งให้คุณทราบ:
% complete | grep vi
complete vi
เอาท์พุท?