2010-08-13 14 views
43

क्या चल रहे मैकवीम इंस्टेंस में वर्तमान विंडो में एक नई फाइल खोलने के लिए मैकवीम सेट अप करने का कोई तरीका है? मेरे पास वर्तमान में मैकवीम वरीयता है "वर्तमान विंडो में एक नए टैब में नई फाइलें खोलें" सेट, लेकिन आदर्श रूप से मैं टैब के बिना "e e_file" काम करता हूं, जिस तरह से नई फाइलें खोलना चाहूंगा।मौजूदा विंडो में मैकवीम ओपन फाइल

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

विम में, वहाँ एक कमांड "ताबो" है, जो मौजूदा टैब केवल टैब बनाता है:

+0

सुनिश्चित करें कि आप इस तरह के नए उत्तरों के साथ-साथ अन्य लोगों को भी देखें: http://stackoverflow.com/a/23927976/724752 –

उत्तर

48
  1. सामान्य प्राथमिकताएं
  2. तहत
  3. में MacVim 7.3
  4. जाओ करने के लिए अद्यतन "वर्तमान विंडो में" चुनें
  5. इस विकल्प का चयन नीचे पुल डाउन मेनू में "और arglist सेट करें "
+20

यह केवल खोजक में खोले गए फ़ाइलों के लिए काम करता है - टर्मिनल से 'mvim filename.txt' निष्पादित करने से अभी भी कई विंडो खुलती हैं। [यह मेलिंग सूची चर्चा] देखें (http://vim.1045645.n5.nabble.com/How-do-I-open-a-file-from-the- टर्मिनल-into-MacVim-s-current- विन्डो- td1220082.html) –

+12

कमांड लाइन वास्तव में मेरी समस्या थी। उस लिंक को सारांशित करने के लिए: उपनाम vi = "open \" mvim: // open? Url = file: // $ 1 \ "" को अपने .bash_profile में जोड़ें और फिर जब आप "vi foo" करते हैं तो यह एक नए टैब में foo खोल देगा आपकी मौजूदा मैकवीम विंडो में। बहुत बढ़िया! –

+3

मैंने सीखा है कि आप 'mvim --servername VIM --remote path/to/file.txt' (पुनः: @mattb उस मेलिंग सूची चर्चा के लिंक के लिए धन्यवाद भी कर सकते हैं। ) वर्तमान विंडो में खोलने के लिए। आपको सिर्फ फ़ाइल नाम और निर्देशिका – Will

1

यह मैं कैसे पूरा किया है। मैं करने के लिए निम्न जोड़ा मेरी ~/.vimrc:

autocmd BufWinEnter,BufNewFile * silent tabo 

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

+0

यह टैब को पूरी तरह से अक्षम करता है। – peritus

+0

हां @peritus का उल्लेख है, यह बिल्कुल अच्छा समाधान नहीं है, क्योंकि मूल रूप से यह कह रहा है कि "जब भी आप एक नया बफर खोलते हैं, तो वर्तमान टैब को केवल टैब पर सेट करें", जो प्रभावी रूप से टैब को अक्षम करता है। यह मेरे लिए ठीक था क्योंकि मैंने टैब का कभी भी उपयोग नहीं किया था, लेकिन अन्य उपयोगकर्ताओं को पता होना चाहिए। वास्तविक समाधान के लिए उपरोक्त @ bjorn-winckler का उत्तर देखें। – davertron

+1

हां। यह निश्चित रूप से उन लोगों के लिए एक चेतावनी है जो टैब पसंद करते हैं, लेकिन हमारे उन लोगों के लिए एक विशाल +1 जो टैब की तुलना में बेहतर तरीके का उपयोग करते हैं :) – kenny

14

आप मुख्य एमवीआईएम स्क्रिप्ट को संपादित करने पर भी इस टिप पर विचार कर सकते हैं।

Improving mvim for MacVim

इस संशोधन थोड़ा कम गंभीर है और यह भी काम करता है:

MacVim टैब का समर्थन करता है, लेकिन दुर्भाग्य से बुला `mvim कई बार कई अलग-अलग विंडो खोलने में कमांड लाइन परिणामों से, एक विंडो में एकाधिक टैब के बजाय । मैंने इसे सुधारने के लिए निम्नलिखित संशोधनों को एमवीआईएम स्क्रिप्ट में बनाया है।

फ़ाइल के शीर्ष पर निम्नलिखित पंक्ति जोड़ दें, टिप्पणी की अनुभाग के नीचे:

tabs=true 

निम्नलिखित के साथ फ़ाइल के तल पर अगर संरचना बदलें:

# Last step: fire up vim. 
if [ "$gui" ]; then 
    if $tabs && [[ `$binary --serverlist` = "VIM" ]]; then 
    exec "$binary" -g $opts --remote-tab-silent ${1:+"[email protected]"} 
    else 
    exec "$binary" -g $opts ${1:+"[email protected]"} 
    fi 
else 
    exec "$binary" $opts ${1:+"[email protected]"} 
fi 

(Open MacVim tabs from command-line से)

जाहिर है ये दोनों थोड़ा उप-इष्टतम बी/सी हैं मैकवीम अपडेट करते समय हैक को बनाए रखना होगा। लेकिन उन्होंने मुझे नए मैक विम टैब में टर्मिनल से कई फाइलें खोलने में एक गुच्छा की मदद की।

+0

यह एक अच्छा समाधान है। क्या आप उत्तर के शरीर में वास्तविक फिक्स डालने पर भी विचार करेंगे? भविष्य में लिंक गायब हो सकते हैं। – Ovesh

+0

दूसरा लिंक अब काम नहीं करता है। मुझे आश्चर्य है कि वह समाधान क्या था। ऐसा लगता है कि मैं चाहता था। – Woody

+0

https://web.archive.org/web/20110205015906/http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line/ – natchiketa

26

तुम भी जोड़ सकते हैं:

alias mvim='open -a MacVim'

अपने .bash_profile

यह मेरे लिए आसान समाधान की तरह लगता है के लिए।

+4

हां - यह प्लस सेटिंग "प्राथमिकताएं" -> "अनुप्रयोगों से फ़ाइलें खोलें" और "आर्किगिस्ट सेट करें" (या "प्रत्येक फ़ाइल के लिए एक टैब के साथ" जो * टैब की तरह * करते हैं - विभाजन विंडो में खुलना भी एक विकल्प है) धन्यवाद, धन्यवाद! –

+1

नई फाइलों के बारे में क्या? इस उपनाम के साथ, यदि मैं 'vim ~/foo' टाइप करता हूं तो टर्मिनल 'फ़ाइल/उपयोगकर्ता/hobbes3/foo मौजूद नहीं है' के साथ त्रुटि होगी। सामान्य 'vim' के साथ, यह' foo' नामक एक नई फ़ाइल तैयार करेगा। – hobbes3

+0

@ hobbes3 मुझे लगता है कि एक विशिष्ट फ़ाइल खोलने के ज्यादातर मामलों में एक बुरा विचार है। मैं लगभग हमेशा एक निर्देशिका में नेविगेट कर रहा हूं और फिर 'mvim' निष्पादित करता हूं। यह मौजूदा निर्देशिका को vim में खोलता है और कार्य निर्देशिका को उसी निर्देशिका में सेट करता है। वहां से आप ': e foo' या NerdTree या आपके पास क्या है इसका उपयोग करके vim के अंदर नई फ़ाइलें बना सकते हैं। या यदि आप वास्तव में कमांड लाइन से फ़ाइल बनाना चाहते हैं तो आप हमेशा 'स्पर्श ~/foo' स्पर्श कर सकते हैं। – Dan

4

@ बोरॉन विनकलर का जवाब आपको खोजक और अन्य ओएस खोलने के तंत्र के माध्यम से खोले गए फ़ाइलों के लिए यह कैसे दिखाता है।

आप इसे mvim कमांड के साथ काम करने के लिए mvim फ़ाइल खोजने के लिए और

if [ "$gui" ]; then 
    # Note: this isn't perfect, because any error output goes to the 
    # terminal instead of the console log. 
    # But if you use open instead, you will need to fully qualify the 
    # path names for any filenames you specify, which is hard. 

    #make macvim open stuff in the same window instead of new ones 
    if $tabs && [[ `$binary --serverlist` = "VIM" ]]; then 
    exec "$binary" -g $opts --remote ${1:+"[email protected]"} 
    else 
    exec "$binary" -g $opts ${1:+"[email protected]"} 
    fi 
else 
    exec "$binary" $opts ${1:+"[email protected]"} 
fi 

को

if [ "$gui" ]; then 
    # Note: this isn't perfect, because any error output goes to the 
    # terminal instead of the console log. 
    # But if you use open instead, you will need to fully qualify the 
    # path names for any filenames you specify, which is hard. 
    exec "$binary" -g $opts ${1:+"[email protected]"} 
else 
    exec "$binary" $opts ${1:+"[email protected]"} 
fi 

से तल पर लाइनों में परिवर्तन इसमें सभी फ़ाइलें कर देगा चाहते हैं आदेश से खोला एक ही खिड़की में लाइन खुली है।

इसके अलावा अगर आप एक ही बफर खोलने के लिए फ़ाइल चाहते हैं, तो उस फ़ाइल बंटवारे की जगह में पहले से ही खुला या अपने gvimrc को एक नया टैब

au VimEnter,BufWinEnter * NERDTreeFind जोड़ने है (ताकि अपने नियमित रूप से vim साथ हस्तक्षेप न करने)

+0

मैं ऐसा करने की कोशिश कर रहा हूं, लेकिन मुझे "एमवीआईएम" फ़ाइल नहीं मिल रही है। किस फाइल का जिक्र है? – lawdawg

1

मैं अज्रीएल के जवाब महान पाया (इस अंतिम भाग NERDTree स्थापित करने की आवश्यकता है) लेकिन यदि फ़ाइल मौजूद नहीं है यह काम नहीं करता। यह छोटा फ़ंक्शन एक ही चीज़ करता है लेकिन आप नई फाइलें भी बना सकते हैं।

mvim() { touch "[email protected]" && open -a MacVim "[email protected]"; } 

बस इसे अपने .bash_profile में जोड़ें। फिर आप के रूप में

mvim foo 

एक नई फ़ाइल foo संपादित कर सकते हैं और यह एक नए टैब में खुल जाएगा।

+0

उपरोक्त आदेश काम नहीं करता है अगर तर्क खाली है। फ़ाइल नाम निर्दिष्ट नहीं होने पर मैंने इसे एक शीर्षक रहित फ़ाइल खोलने के लिए थोड़ा सा बदल दिया। 'mvim() {([[-z $ @]] || स्पर्श करें" $ @ ") && खोलें- MacVim" $ @ "; } ' –

14

मैं व्यक्तिगत रूप से एक कमांड इस तरह, यहाँ सब कुछ देखने और सहारा के बाद क्या

mvim --help 

कर दिया के साथ प्रयोग करने के लिए इस्तेमाल करते हैं।

मैंने पाया कि

mvim --remote-tab-silent foo.txt 

मेरे लिए काम किया और उसके बाद मैं जल्द ही मेरी .profile को किसी अन्य नाम शामिल किया है। हां, यह बारफ्स है अगर आप इसे विकल्प के बाद फ़ाइल नहीं खाते हैं, लेकिन फिर भी कोई रिक्त फ़ाइल कौन खुलता है बिना किसी नाम के?

+1

धन्यवाद! पिछले सुझावों ने मुझे वह नहीं दिया जो मैं चाहता था लेकिन ऐसा हुआ! +1 :-) – SaxDaddy

+1

'mvim --remote-silent foo.txt' उन लोगों के लिए जो कोई टैब पसंद नहीं करते हैं। – matlehmann

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