Mac OS X에서 내장 Vim 업데이트


112

나는 이것이 다른 질문에 더 적합 할 수 있습니다 알고 있지만, 내가 거기에 태그를 추가하는 시도로, 전혀 없었다 vim에만 태그 macvim. 그래서 여기에서 더 나은 청중을 확보 할 수있을 거라고 생각했습니다.

터미널에서 다음을 수행합니다.

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

내가 탐색 할 때 http://www.vim.org , 나는 뉴스 항목을 참조

Vim 7.3 출시!

내장 Vim을 어떻게 업데이트합니까? 나는 그것을 깨끗하게하고 싶다 (즉, 중복 설치, 추가 다운로드, 맥 포트 없음 등).

여기 지침에 따라 Mercurial (이미 다른 용도로 사용하고 있으므로) 사용을 고려했습니다 .

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

그러나 나는 그것이 중복 설치를 만들 것이라고 생각합니다. 위에서 언급 한 "깨끗한"요구 사항에도 불구하고 "불확실한"솔루션도 환영합니다. 다른 방법이 없을 수도 있기 때문입니다.


8
일반적으로 Apple이 설치된 비트를 사용하지 않고 macports / homebrew / etc를 사용하는 것이 가장 좋습니다. 또는 직접 빌드하고 /usr/local/. 많은 공간을 차지하지 않을 것입니다.
steveax 2011-08-27

github.com/b4winckler/macvim/releases <-여기에서 최신 macvim 스냅 샷을 다운로드 할 수 있습니다
lfender6445 2014

답변:


119

내장 Vim을 덮어 쓰지 마십시오.

대신 다른 위치의 소스에서 설치하거나 기본 위치의 Homebrew 또는 MacPorts를 통해 설치 한 다음 .bashrc 또는 .profile에 다음 행을 추가하십시오.

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

및 / 또는 $PATH기본 위치 이전의 위치를 ​​볼 수 있도록 변경하십시오 .

제 생각에 가장 좋은 방법은 매우 완전한 vim 실행 파일과 함께 제공되는 최신 MacVim을 다운로드하여 Terminal.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 2014-06-10

2
아니요, 모든 Mac OS X 버전에서 동일합니다. 방금 오타를 만들었습니다. 감사.
romainl 2014-06-10

@ fabian789 : 첫째는 쓸모 없기 때문에, 2 개는 소프트가 하드보다 낫기 때문에, 3 개는 기본 Vim이 작동하기 때문이며, 무언가 잘못되면 Vim이 더 이상 작동하지 않을 수 있으며, 4 개는 시스템 업그레이드로 Vim을 덮어 쓸 수 있으며 목록은 아마도 ...과에 이동
romainl

2
... 또는 alias vim='mvim -v'. 그러나 둘 다 sudo vim이전 버전 을 사용하면 실패 합니다. @RobertMartin의 답변이나 패키지 관리자를 사용하는 것이 좋습니다. 다른 옵션도 하나 있습니다. serverfault.com에서 Slizzered 의이 답변 으로 별칭을 . sudo
Brian McCutchon 2014-08-28

"별칭은 대화 형 셸의 바로 가기이며 다른 프로세스에서 사용되지 않습니다."라고이 답변은 말합니다. stackoverflow.com/questions/37466767/… 따라서 이것은 git difftool또는에 대해 작동하지 않습니다 git commit.
jasonszhao

130

내가 제대로 이해한다면, 좋든 나쁘 든 기존 Vim 위에 설치하고 싶을 것입니다. :-) 이것은 나쁜 생각 이며 "깨끗한"방법이 아닙니다.왜? 글쎄, OS X은 / usr / bin에서 아무것도 변경되지 않을 것으로 예상하므로 거기에있는 내용을 덮어 쓸 때마다 복잡한 상호 의존성이 깨질 위험이 있습니다. 그리고 당신이 무언가를 부수 었다고 가정 해 봅시다. 그 손상을 "실행 취소"할 방법이 없습니다. 당신은 슬프고 외로울 것입니다. OS X를 다시 설치해야 할 수 있습니다.

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 * ckup의 경우 이전 구성으로 돌아가려면 / opt 디렉토리를 삭제하면됩니다.

$ 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 / local / bin에 설치하지 않는 것이 좋습니다. 기본적으로 OS X는 / usr / local / bin보다 $ PATH에 / usr / bin을 더 높은 우선 순위로두고 그게 당신이 무엇을하는, 그래서 .... 웜 자체 캔을 엽니 다 해야한다 않습니다.

파트 2 : "정답"(그러나 나쁜 생각)

당신이 그렇게 할 준비가되었다고 가정하면, 당신은 확실히 궤도에 있습니다. 현재 설치 위에 설치하려면 "prefix"디렉토리를 설정해야합니다. 다음과 같이 완료됩니다.

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"를 수행하십시오. 그래도 문제가 발생할 경우를 대비하여 백업을 받으 셨으면합니다 ....


흠 ... 이건 찬성해야하는지 모르겠네요 ... 질문에 대한 답 이네요 ...하지만 나쁜 생각이고 그 이유를 설명하지 않습니다 ... 그래서 제가 반대 투표를해야할까요?
Arafangion

좋은 대답이지만 * nix 초보자로서 vim을 설치하기 위해 ~를 선택한 이유가 궁금합니다. 또한 ./configure ... 라인은 무엇을합니까? 다시 한 번 감사드립니다.
AlexMA 2013 년

@AlexMA 소스를 ~, 즉 홈 디렉토리 에 넣는 것은 완전히 임의적입니다. 원하는 곳으로 자유롭게 다운로드하십시오. 일단 설치 한 후에는 디렉토리도 삭제할 수 있습니다 (그 시점에서 소스는 더 이상 필요하지 않습니다).
Robert Martin

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
아인 Tohvri

나는이 오타라고 생각합니다! ". 우리가 정력 사용할 때 짜잔 이제 우리는 이전 하나를 사용 될 것입니다"당신은 "우리가 사용하게 될 말을 의미하는 새로운 하나를"
skullkid

55

에릭처럼 홈브류를 사용했지만 기본 레시피를 사용했습니다. 그래서:

brew install mercurial
brew install vim

그리고 다시 시작한 후 터미널 homebrew의 vim이 기본값이어야합니다. 그렇지 않은 경우 이전이 $PATH되도록 업데이트해야합니다 . 예를 들어 다음을 추가하십시오 ./usr/local/bin/usr/bin.profile

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

6
@Beau 이것은 정확하지 않습니다. homebrew에는 vim에 대한 공식이 있습니다 : github.com/mxcl/homebrew/blob/master/Library/Formula/vim.rb
Koen.

미안 해요, 제 잘못이에요! A brew update는 실제로 정력에 대한 공식을 돌려주었습니다.
Beau

vi심볼릭 링크 수정 :[sudo] ln -sf /usr/local/bin/vim /usr/bin/vi
knight9631

내 추가 vi로 심볼릭 링크 /usr/local/bin:ln -s /usr/local/bin/vim /usr/local/bin/vi
wisbucky

"그리고 터미널 homebrew의 vim을 다시 시작한 후"갑자기 충격을 받았습니다. 새로운 vim이 작동하려면 전원을 껐다가 다시 켜야합니다. 감사합니다 남자
피터 Perháč

7

romainl의 답변에 대한 참고 사항 : 별칭은 첫 번째 단어 만 별칭에서 확인되기 때문에 sudo와 함께 작동하지 않습니다. 이를 변경하려면 .profile / .bashrc에 다른 별칭을 추가하십시오.

alias sudo='sudo '

이 변경 sudo vim으로 예상대로 작동합니다!


6

Yosemite에서 brewoverride-system-vi옵션을 사용하여 vim을 설치 하십시오 . 이렇게하면 '거대한'vim 설치 기능으로 vim이 자동으로 설치됩니다 .

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

이 명령의 출력은 brew가 vim을 설치 한 위치를 보여줍니다. 해당 폴더에서 아래로 이동 /bin/vim하여 실제로 vim을 실행하십시오. 이것은 모든 폴더에서 vim을 실행하는 명령입니다.

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

그런 다음 .bashrc에 다음 행을 추가하여이 명령의 별명을 지정하십시오.

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

편집 : Brew 플래그 --override-system-vi가 더 이상 사용되지 않습니다. 으로 변경되었습니다 --with-override-system-vi. 출처 : https://github.com/Shougo/neocomplete.vim/issues/401


1
이와 같이 vim을 업데이트 할 때마다 별칭을 업데이트해야합니다. 또한 vim은 바이너리를 / usr / local / bin에 자동으로 추가하므로 정확한 위치를 별칭으로 추가 할 필요가 없습니다.
Flaudre

BREW 플래그 --override-system-vi는 이제 더 이상 사용되지 않습니다. --with-override-system-viinsted를 사용하십시오 .
alhuelamo

@ahuelamo 소스가 있습니까? 그렇다면 자유롭게 편집하고 소싱하십시오. 감사합니다
비공개

@Private 음, 그것은 brew 자체에서 제안했습니다. 당신은뿐만 아니라 여기에서 찾을 수 있습니다 github.com/Shougo/neocomplete.vim/issues/401을
alhuelamo

대체 플래그를 사용할 때 별칭 추가는 중복됩니다.
apostl3pol

1

brew install vim --override-system-vi


1
이 명령을 실행해야하는 이유에 대한 설명이나 참조를 제공하지 않습니다.
ngfgrant 2011

1

이 블로그 게시물 은 저에게 도움이되었습니다. 저는 "Homebrew built Vim"솔루션을 사용했는데 제 경우에는 / usr / local / bin에 새 버전을 저장했습니다. 이 시점에서 게시물은 나를 위해 작동하지 않는 시스템 vim을 숨기도록 제안했기 때문에 대신 별칭을 사용했습니다.

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

1
흥미 롭군. 나는 이것을 시도했지만 brew가 경로를 자동으로 대체했을 것입니다. 호출 vim(새로운 터미널을 연 후) 새로운 정력을 열 듯
Dylanthepiguy

1
@Dylanthepiguy가 동의했습니다. homebrew를 사용하는 경우 여기에 별칭을 만들 필요가 없습니다. 새 셸을 시작하고 기존 터미널에서 bashrc를 다시 소싱하여 vim 명령을 새 홈브류 버전으로 업데이트했습니다.
kjones

1

방금 vim을 설치했습니다.

brew install vim

이제 새 vim에 액세스 vim하고 이전 vim (내장 vim)은vi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.