เชลล์ tcsh ไม่ทำการเติมข้อมูลอัตโนมัติ * .log ไฟล์สำหรับ vi


1

เมื่อพยายามเติมชื่อไฟล์ให้สมบูรณ์โดยอัตโนมัติสำหรับ vi ไฟล์ที่ลงท้ายด้วย. log จะไม่ปรากฏเป็นตัวเลือก ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


คำสั่งอะไรบ้าง complete vi เอาท์พุท?
bmk

คำตอบ:


1

ฉันเดาว่าคุณมีที่ไหนซักแห่ง ~/.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.


1

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