2011-04-26 17 views
13

मैं अकसर गलती से एक द्विआधारी निष्पादन योग्य खोलता हूं, यानी "foo", जब मेरा संबंधित स्रोत कोड "foo.cpp" खोलना है। समस्या की जड़ यह है कि टैब पूर्णता, यानी :e fo<tab> आमतौर पर स्रोत कोड के बजाय बाइनरी पर उतरती है।विचित्र को बाइनरी फ़ाइलों को गलती से खोलने से रोकें?

क्या पाठ फ़ाइलों के केवल टैब पूर्ण नामों के लिए विम प्राप्त करने का कोई तरीका है? या वैकल्पिक रूप से, टैब समापन आदेश बदलें?

कभी-कभी मेरी जल्दबाजी वाली टैब पूर्णता त्रुटि vim के बाहर होती है; उन मामलों के लिए, vim को उन फ़ाइलों को खोलने से रोकने का सबसे अच्छा तरीका क्या है जो टेक्स्ट नहीं हैं?

+3

कैसे पता विम होगा अगर एक फ़ाइल बाइनरी है या नहीं? इसे खोलना और उनका निरीक्षण करना होगा, जो टैब पूर्ण होने के लिए काफी भारी है। यहां तक ​​कि अगर कोई फ़ाइल निष्पादन योग्य है, तो भी यह सादा पाठ हो सकती है। –

+0

यह उन फ़ाइलों को अनदेखा कर सकता है जिनमें कोई प्रत्यय नहीं है और उन्हें निष्पादन योग्य भी चिह्नित किया गया है। (इसके अलावा, परिणाम को पहले बाइट्स का निरीक्षण करना और परिणाम कैश करना भारी नहीं है) – Federico

उत्तर

17

आप वास्तव में क्या जरूरत नहीं, लेकिन मैं अपने .vimrc

" ignore these files when completing names and in Ex 
set wildignore=.svn,CVS,.git,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif,*.pdf,*.bak,*.beam 
" set of file name suffixes that will be given a lower priority when it comes to matching wildcards 
set suffixes+=.old 
+6

प्रत्यय विकल्प के लिए सहायता से: "एक खाली प्रविष्टि, दो लगातार कॉमा, एक फ़ाइल नाम से मेल खाते हैं जो में"। "नहीं है, इस प्रकार कोई प्रत्यय नहीं है यह "प्रोग" को अनदेखा करने और "prog.c" को प्राथमिकता देने के लिए उपयोगी है। " – taro

1

vim के बाहर टैब पूरा होने, कि अपने खोल पर निर्भर करेगा के लिए में कुछ इस तरह की है। अधिकांश गोले में स्वत: पूर्णता समर्थन का कुछ रूप होता है। विशेष रूप से, ज़ेड में स्वत: पूर्ण करने की क्षमता होती है उदा। एसएसएच के लिए रिमोट होस्ट। मैं इन चीजों के साथ एक जादूगर नहीं हूं, लेकिन जब आप टाइपिंग कमांड को "vim" से शुरू करते हैं, तो यह आपके शेल को स्वत: पूर्ण सूची से कुछ प्रत्यय के साथ फ़ाइलों को छोड़ने के लिए अपेक्षाकृत सरल होगा।

एक त्वरित गूगल खोज this page बारी है, जो इस है:

# Filename suffixes to ignore during completion (except after rm command) 
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \ 
'*?.old' '*?.pro' 

यह बहुत मुश्किल आप क्या चाहते हैं पाने के लिए (यदि आप Zsh का उपयोग करें) इस तर्क को संशोधित करने के लिए नहीं किया जाना चाहिए।

+0

'इस पृष्ठ' के लिए लिंक टूटा हुआ है: http://bodhizazen.net/Tutorials/zshrc –

+0

@AlexanderGuo आपका लिंक स्पैम वेबसाइट की ओर जाता है। – Diti

+0

@Diti मैंने कहा: "लिंक ... टूटा हुआ है", गीज़स –

संबंधित मुद्दे