मैक ओएस एक्स पर बिल्ट-इन विम अपडेट करें


112

मुझे पता है कि आस्क डिफरेंट में यह अधिक उपयुक्त हो सकता है, लेकिन जैसा कि मैंने वहां टैग जोड़ने की कोशिश की, कोई vimटैग नहीं था , केवल macvim। इसलिए मुझे लगा कि मुझे यहां बेहतर दर्शक मिल सकते हैं।

टर्मिनल में, मैं निम्नलिखित कार्य करता हूं

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49)

जब मैं http://www.vim.org पर ब्राउज़ करता हूं, तो मुझे एक समाचार आइटम दिखाई देता है

विमोच 7.3 जारी!

मैं अपनी अंतर्निहित vim को कैसे अपडेट करूं? मैं इसे बहुत सफाई से करना चाहता हूं (अर्थात कोई डुप्लिकेट इंस्टॉलेशन, या कोई अतिरिक्त डाउनलोड, कोई मैकपोर्ट, आदि)

मैंने मर्क्यूरियल का उपयोग करने पर विचार किया (जैसा कि मैं पहले से ही अन्य चीजों के लिए उपयोग करता हूं), यहां दिए गए निर्देशों के अनुसार ।

$ hg clone https://vim.googlecode.com.hg/ vim
$ cd vim/src
$ make

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


8
सामान्य तौर पर मुझे लगता है कि Apple स्थापित बिट्स के साथ नहीं जाना और macports / homebrew / etc का उपयोग करना सबसे अच्छा है। या इसे स्वयं बनाएं और इसमें इंस्टॉल करें /usr/local/। ऐसा नहीं है कि यह बहुत जगह लेने वाला है।
स्टीवेक्स

github.com/b4winckler/macvim/releases <- आप यहाँ पर नवीनतम मैकविम स्नैपशॉट डाउनलोड कर सकते हैं
lfender6445

जवाबों:


119

अंतर्निहित विम को अधिलेखित न करें।

इसके बजाय, इसे स्रोत से किसी भिन्न स्थान पर या उनके डिफ़ॉल्ट स्थान में Homebrew या MacPorts के माध्यम से स्थापित करें और फिर इस पंक्ति को अपने .bashrc या .profile में जोड़ें:

alias vim='/path/to/your/own/vim'

और / या अपना परिवर्तन करें $PATHताकि वह डिफ़ॉल्ट स्थान से पहले अपने स्थान पर दिखे।

मेरी राय में, सबसे अच्छी बात यह है कि केवल नवीनतम MacVim को डाउनलोड करना है, जो बहुत ही संपूर्ण निष्पादन के साथ आता है और टर्मिनल.app में इसका उपयोग करता है।

alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV

3
Mac OS X 10.8.2 पर, पथ थोड़ा अलग है:/Applications/MacVim.app/Contents/MacOS/Vim
zakangelle

2
नहीं, यह हर मैक ओएस एक्स संस्करण पर समान है। मैंने सिर्फ एक टाइपो बनाया है। धन्यवाद।
रोमेल

@ fabian789: पहला इसलिए क्योंकि यह बेकार है, दो क्योंकि नरम हार्ड से बेहतर है, तीन क्योंकि डिफ़ॉल्ट विम काम करता है और अगर कुछ गलत हो जाता है तो आपके पास काम करने वाला विम बिल्कुल नहीं हो सकता है, चार सिस्टम अपग्रेड आपके विम को अधिलेखित कर सकते हैं और सूची शायद हो सकती है। आगे
बढ़ें

2
... या alias vim='mvim -v'। लेकिन ये दोनों sudo vimपुराने संस्करण का उपयोग करने में विफल होते हैं । मैं @ रॉबर्टमैर्टिन के उत्तर या पैकेज प्रबंधक का उपयोग करने का सुझाव दूंगा। एक अन्य विकल्प भी है: सर्वरफॉल्ट.कॉम पर स्लीज़र्ड द्वारा दिया गया यह उत्तर , जो आपको एलियास पास करने की अनुमति देता है । sudo
बजे ब्रायन मैककिनटन

"अलायस एक इंटरेक्टिव शेल के लिए शॉर्टकट हैं; वे अन्य प्रक्रियाओं द्वारा उपयोग नहीं किए जाते हैं," यह उत्तर कहता है। stackoverflow.com/questions/37466767/… इसलिए, यह काम नहीं करता है, कहो git difftoolया git commit
jasonszhao

130

अगर मैं चीजों को सही ढंग से समझता हूं, तो आप अपने मौजूदा विम पर स्थापित करना चाहते हैं, बेहतर या बदतर के लिए :-) यह एक बुरा विचार है और इसे करने के लिए "साफ" तरीका नहीं है। क्यों? खैर, OS X को उम्मीद है कि इसके बारे में कभी भी / usr / bin में कुछ भी नहीं बदलेगा, इसलिए किसी भी समय आप सामान को ओवरराइट कर देते हैं जिससे आप कुछ जटिल अन्योन्याश्रयता को जोखिम में डालते हैं। और, मान लें कि आप कुछ तोड़ते हैं - उस क्षति को "पूर्ववत" करने का कोई तरीका नहीं है। आप दुखी और अकेले होंगे। आपको ओएस एक्स को फिर से स्थापित करना पड़ सकता है।

भाग 1: एक बेहतर विचार

"क्लीन" तरीका एक अलग स्थान पर स्थापित करना है, और $ PATH में नए बाइनरी को उच्च प्राथमिकता देना है। यहां बताया गया है कि मैं ऐसा करने की सलाह देता हूं:

$ # Create the directories you need
$ sudo mkdir -p /opt/local/bin
$ # Download, compile, and install the latest Vim
$ cd ~
$ hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git
$ 
$ cd vim
$ ./configure --prefix=/opt/local
$ make
$ sudo make install
$ # Add the binary to your path, ahead of /usr/bin
$ echo 'PATH=/opt/local/bin:$PATH' >> ~/.bash_profile
$ # Reload bash_profile so the changes take effect in this window
$ source ~/.bash_profile

देखा! अब जब हम vim का उपयोग करेंगे तो हम नया प्रयोग करेंगे। लेकिन, विशाल f * ckups की स्थिति में अपने पुराने कॉन्फ़िगरेशन पर वापस जाने के लिए, हम सिर्फ / ऑप्ट निर्देशिका को हटा सकते हैं।

$ which vim
/opt/local/bin/vim
$ vim --version | head -n 2
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 27 2011 20:55:46)
MacOS X (unix) version

देखो यह कितना साफ है।

मैं अनुशंसा करता हूं कि जब आप / usr / bin में बायनेरिज़ को ओवरराइड करना चाहते हैं, तो हमें / usr / लोकल / बिन में स्थापित न करें, क्योंकि डिफ़ॉल्ट रूप से OS X / usr / लोकल / बिन की तुलना में $ PATH में / usr / bin उच्च प्राथमिकता देता है, और इसके साथ पंगा लेना कि कीड़े की अपनी इच्छा को खोलता है .... तो, यह है कि आप क्या करना चाहिए

भाग 2: "सही" उत्तर (लेकिन एक बुरा विचार)

यह मानते हुए कि आप ऐसा कर रहे हैं, आप निश्चित रूप से ट्रैक पर हैं। अपनी वर्तमान स्थापना के शीर्ष पर स्थापित करने के लिए, आपको "उपसर्ग" निर्देशिका सेट करने की आवश्यकता है। यह इस तरह किया जाता है:

hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git
cd vim
./configure --prefix=/usr
make
sudo make install

यदि आप चाहें तो आप कुछ अन्य विकल्पों को भी "कॉन्फ़िगर" कर सकते हैं। उन्हें देखने के लिए "./configure --help" करें। मुझे आशा है कि ऐसा करने से पहले आपको बैकअप मिल गया है, हालांकि, अगर कुछ गलत हो जाता है ...।


हम्म ... मुझे नहीं पता कि मुझे इसे अपवोट करना चाहिए ... यह सवाल का जवाब देता है ... लेकिन यह एक बुरा विचार है और इसकी व्याख्या नहीं करता है ... तो शायद मुझे इसे डाउनवोट करना चाहिए?
अराफंगियन

शानदार उत्तर, लेकिन एक * निक्स शुरुआतकर्ता के रूप में मैं उत्सुक हूं कि आपने वीम स्थापित करने के लिए ~ को क्यों चुना। भी, क्या करता है कि ./configure ... लाइन करते हैं? एक बार फिर धन्यवाद।
एलेक्सा

@AlexMA स्रोत को ~अपने घर निर्देशिका में रखना , पूरी तरह से मनमाना है। आप जहां चाहें इसे डाउनलोड करने के लिए स्वतंत्र महसूस करें। एक बार जब आप इसे स्थापित कर लेते हैं, तो आप निर्देशिका को हटा सकते हैं, (स्रोत अब उस बिंदु पर आवश्यक नहीं है)।
रॉबर्ट मार्टिन

3
एक टिप के लिए बहुत बहुत धन्यवाद! मैंने पायथन, ./configure --prefix /opt/local --enable-perlinterp=yes --enable-pythoninterp=yes --enable-rubyinterp=yes --with-features=huge --with-python-config-dir=/System/Library/Frameworks/Python.framework/Versions/2.7
पेर्ल

"वोइला! अब जब हम विम का उपयोग करते हैं तो हम पुराने का उपयोग करेंगे।" मुझे लगता है कि यह एक टाइपो है और आपके कहने का मतलब है "हम नए का उपयोग करेंगे "
skullkid

55

एरिक की तरह, मैंने होमब्रे का उपयोग किया, लेकिन मैंने डिफ़ॉल्ट नुस्खा का उपयोग किया। इसलिए:

brew install mercurial
brew install vim

और टर्मिनल को फिर से शुरू करने के बाद होमब्रेव की विम डिफॉल्ट होनी चाहिए। यदि नहीं, तो आपको अपना अद्यतन करना चाहिए $PATHजो कि /usr/local/binपहले हो /usr/bin। उदाहरण के लिए अपने को निम्नलिखित जोड़ें .profile:

export PATH=/usr/local/bin:$PATH

6
@ यह सही नहीं है, होमब्रे में विम का फॉर्मूला है: github.com/mxcl/homebrew/blob/master/Library/Formula/vim.rb
Koen।

माफ़ कीजियेगा, मेरी गलती! A brew updateने वास्तव में मुझे vim के लिए एक सूत्र वापस दिया।
ब्यू

vi[sudo] ln -sf /usr/local/bin/vim /usr/bin/vi
सिम्बलिंक को

मैंने अपना viसिमलिंक जोड़ा /usr/local/bin:ln -s /usr/local/bin/vim /usr/local/bin/vi
wisbucky

"और टर्मिनल होमब्रेव की विम को पुनः आरंभ करने के बाद" जब यह अचानक मुझे मारा - मुझे इसे फिर से काम करने के लिए नए विम के लिए बंद करने की आवश्यकता है। धन्यवाद आदमी
पीटर Peráč

7

रोमेनिल के जवाब पर ध्यान दें: उपनाम सूडो के साथ मिलकर काम नहीं करते हैं क्योंकि केवल पहला शब्द उपनामों पर जांचा जाता है। इसे बदलने के लिए अपने .profile / .bashrc में एक और उपनाम जोड़ें:

alias sudo='sudo '

इस बदलाव के sudo vimसाथ उम्मीद के मुताबिक व्यवहार होगा!


6

Yosemite पर, vim का उपयोग कर brewऔर override-system-viविकल्प स्थापित करें । यह स्वचालित रूप से 'विशाल' विम इंस्टॉल की सुविधाओं के साथ विम स्थापित करेगा।

brew install vim --with-override-system-vi

इस कमांड का आउटपुट आपको दिखाएगा कि काढ़ा कहाँ स्थापित है। उस फ़ोल्डर में, /bin/vimवास्तव में vim चलाने के लिए नीचे जाएं । यह किसी भी फ़ोल्डर से विम चलाने का आपका आदेश है:

/usr/local/Cellar/vim/7.4.873/bin/vim

फिर इस कमांड को अपने .bashrc में निम्न पंक्ति जोड़कर:

alias vim="/usr/local/Cellar/vim/7.4.873/bin/vim"

EDIT: ब्रू फ्लैग --override-system-viको हटा दिया गया है। के लिए बदल दिया --with-override-system-vi। स्रोत: https://github.com/Shougo/neocomplete.vim/issues/401


1
इस तरह आपको हर बार जब आप विम अपडेट करते हैं, तो आपको अन्य को अपडेट करना होगा। इसके अलावा, यह उर्फ ​​के रूप में सटीक स्थान जोड़ने के लिए आवश्यक नहीं है क्योंकि विम स्वचालित रूप से / usr / स्थानीय / बिन में बाइनरी जोड़ता है।
21

काढ़ा हुआ ध्वज --override-system-viअब हटा दिया गया है। --with-override-system-viइंस्टेंट का उपयोग करें ।
अल्हुलामू

@ahuelamo क्या आपके पास स्रोत है? यदि हां, तो संपादन और स्रोत के लिए स्वतंत्र महसूस करें। धन्यवाद
निजी

@ प्रफुल्ल वेल, कि सुझाव दिया ही काढ़ा था। आप इसे यहाँ github.com/Shougo/neocomplete.vim/issues/401
alhuelamo

ओवरराइड फ़्लैग का उपयोग करते समय उपनाम को जोड़ना निरर्थक है।
apostl3pol

1

brew install vim --override-system-vi


1
कोई विवरण या संदर्भ नहीं देता है कि यह आदेश क्यों चलाया जाना चाहिए।
23

1

यह ब्लॉग पोस्ट मेरे लिए मददगार थी। मैंने "होमब्रॉव निर्मित विम" ​​समाधान का उपयोग किया, जिसने मेरे मामले में / usr / स्थानीय / बिन में नए संस्करण को बचाया। इस बिंदु पर, पोस्ट ने सिस्टम विम को छिपाने का सुझाव दिया, जो मेरे लिए काम नहीं करता था, इसलिए मैंने इसके बजाय एक उपनाम का उपयोग किया।

$ brew install vim
$ alias vim='/path/to/new/vim
$ which vim
vim: aliased to /path/to/new/vim

1
दिलचस्प। मैंने यह कोशिश की, लेकिन काढ़ा अपने आप बदल गया। कॉलिंग vimलग रही थी नई विम खोलने के लिए (नया टर्मिनल खोलने के बाद)
Dylanthepiguy

1
@Dylanthepiguy ने सहमति व्यक्त की, होमब्रे का उपयोग करने पर यहां एक उपनाम बनाने की आवश्यकता नहीं है। दोनों ने एक नया शेल शुरू किया और मौजूदा टर्मिनल में मेरे बैशकॉन्ग को फिर से सोर्स किया, दोनों ने नए होमब्रे वर्जन के लिए विम कमांड को अपडेट करने का काम किया।
kjones

1

मैंने अभी-अभी विम को स्थापित किया है:

brew install vim

अब नई विम को vimऔर पुराने विम (बिल्ट-इन विम) द्वारा एक्सेस किया जाता हैvi

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.