จะแก้ไขแท็บที่เสร็จสมบูรณ์แล้วเพื่อไม่ซ่อนรายการได้อย่างไร


17

ฉันใช้ oh-my-zsh บน Mac OS X กับ homebrew'ed zsh 4.3.12 ฉันเพิ่งพบปัญหาแปลก ๆ ในscripts/not-usedฉันมีหลาย.Rไฟล์:

breakdowns.R             eventloop.R              process-largeclients.R   process-qt.R
reprocess-pinning.R      calculate-qt-error.R     generate_decision_tree.R process-net.R
process-scalingexp.R

อย่างไรก็ตามเมื่อฉันลองls scripts/not-used/+ Tabความสำเร็จแรกคือls scripts/not-used/_.Rตำแหน่งที่_แสดงตำแหน่งของเคอร์เซอร์ ถ้าฉันกดTabอีกครั้งฉันจะได้สิ่งที่แปลกประหลาดนี้:

$ ls scripts/not-used/.R                                                                          
breakdowns.R  eventloop.R

วิธีการยกเลิกพฤติกรรมนี้น่าเกลียด (ผิด)?

ตัวเลือกที่ตั้งไว้คือ:

alwaystoend autocd autonamedirs autopushd cdablevars completeinword
correctall extendedglob extendedhistory noflowcontrol
histexpiredupsfirst histignoredups histignorespace histreduceblanks histverify
incappendhistory
interactive login longlistjobs monitor promptsubst 
pushdignoredups pushdminus pushdsilent pushdtohome
sharehistory shinstdin zle

2
การbreakdowns.R eventloop.Rเสร็จสิ้นไม่ถูกต้องเป็นอย่างไร ลองยกเลิกการตั้งค่าcompleteinwordตัวเลือกเนื่องจากจะทำให้เสร็จจากปลายทั้งสองของเคอร์เซอร์ซ้ายและขวา ซึ่งหมายความว่าถ้าฉันพิมพ์pacในpacmanและมีคำสั่งที่เรียกว่าarpacจากนั้นarpacจะอยู่ในรายการความสำเร็จเนื่องจากความสมบูรณ์เกิดขึ้นที่เคอร์เซอร์ทั้งสองด้านแทนที่จะเป็นทางขวาเท่านั้น
Alexej Magura

ฉันไม่ทราบคำถาม ... ดังนั้นจึงbreakdowns.R eventloop.Rเป็นความผิดที่ไม่สมบูรณ์ในแง่ของความไม่สมบูรณ์ ถ้าคุณมองอย่างใกล้ชิดที่รายชื่อของไฟล์ที่มีมากกว่าเพียงแค่ผู้ที่ 2 .Rจบลงด้วย
Nikola Knezevic

ฉันพยายามสัมผัสไฟล์หลาย ๆ ไฟล์ที่มีชื่อเดียวกับที่คุณอยู่ในรายการรวมถึง zR, az, .R และ z_test.R สำหรับการทดสอบ - z_test.R จะไม่พยายามเติมข้อความอัตโนมัติ แต่ z, .R จะ คาดเดาว่าเป็นอุบัติเหตุชนิดหนึ่งของ Regex
Dmitri DB

สิ่งนี้อาจเกี่ยวข้องกับgithub.com/robbyrussell/oh-my-zsh/issues/1398ซึ่งเป็นปัญหาเก่า แต่เวอร์ชันล่าสุดมีรหัสความสมบูรณ์ที่คล้ายกัน ฉันไม่ได้พยายามแก้ไขปัญหาเพื่อยืนยัน
rjewell

คำตอบ:


1

ปัญหาอยู่ที่zstyleรายการตัวจับคู่

หากคุณเพิ่มสิ่งต่อไปนี้ในของคุณ.zshrcมันจะแก้ไขมัน:

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'e:|[._-]=* e:|=*' 'l:|=* e:|=*'

e:(แทนการเริ่มต้นr:) บังคับให้การแข่งขันไปยังจุดสิ้นสุดของสตริง

รายละเอียดของตัวเลือกสามารถพบได้ในเอกสารการควบคุมการจับคู่เสร็จสิ้น ZSH:


0

คุณสังเกตเห็นว่ามันวางเคอร์เซอร์ไว้ที่ไหน? เนื่องจากไฟล์ทั้งหมดลงท้ายด้วย. R จึงเป็นการต่อท้ายคำแนะนำที่เป็นไปได้สำหรับคุณโดยอัตโนมัติ

การเติมข้อความอัตโนมัติกำลังใช้ "ปลายทั้งสอง" ตามที่อธิบายไว้โดย Tshepang

ลองวางไฟล์ลงในโฟลเดอร์นี้โดยไม่มีชื่อ. R แล้วคุณจะเห็นว่า. R บิตหายไป

จริง ๆ แล้วการเติมข้อความอัตโนมัติต้องการบางสิ่งบางอย่างเพื่อ "สมบูรณ์" ไม่ใช่ข้อสันนิษฐานของไดเรกทอรีที่ไม่มีข้อมูล


0

Gert อาจเหมาะสมสำหรับการแก้ไข อย่างไรก็ตามฉันสงสัยว่าสาเหตุของรายการไฟล์ที่ไม่สมบูรณ์ (breakdowns.R และ eventloop.R) เป็นเพราะไฟล์เหล่านั้นเป็นไฟล์เดียวในไดเรกทอรีทำงานปัจจุบันที่ทำเครื่องหมายว่าสามารถใช้งานได้ คุณสามารถยืนยันสิ่งนี้ด้วย "ls -l" และดูการอนุญาตสำหรับบางสิ่งบางอย่างเช่น rwx หากคุณไม่มี "./" หรือไดเรกทอรีนั้นใน PATH อย่างชัดเจนฉันคาดว่าไฟล์สองไฟล์นั้นจะไม่ปรากฏเช่นกัน

 8 -rwxr--r-- 1 userbob    groupbob      4420 May 28 15:55 filebob.R
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.