vim 7.0에서 omni completion기능을 어떻게 사용해야 하나요?
글쓴이: rainblow / 작성시간: 월, 2006/05/15 - 6:07오후
vim7.0을 설치했습니다.
처음 설치해서 어찌 어찌 쓰다가 omni completion을 경험했었는데..
지금 다시 하려니,
option 'omnifunc' is not set
이라는 에러 메세지가 나오는군요.
제가 아무래도 정확한 사용법을 잘못 이해하고 있나봅니다.
7.0 설치해서 사용하시는 분 가르침 부탁드립니다.
Forums:
Vim7 Omni completion
.vimrc에
filetype plugin indent on
을 넣으면 자동으로 인덴트기능 + 타입에 맞게 완성기능이 동작합니다.
파일타입에 따른 자동인덴트 기능을 사용하고 싶지 않으시면,
/usr/local/share/vim/vim70/autoload에 있는 complete plugin을 보고
수동설정하시면 됩니다.
set omnifunc=ccomplete#Complete "C의 경우
set omnifunc=htmlcomplete#Complete "Html의 경우
그리고 ctags로 tag를 미리 만들어 놔야 태그 되어진 태그 인덱스도
완성목록에 뜰겁니다.
단축키는 입력상태에서 ^x^o
이전 버젼에도 지원했던 ^n^p도 또 메뉴리스트로 뜨더군요.
자세한 사항은 :h complete-functions
happy vimming~
혹시 이전버전의
혹시 이전버전의 어떤 설정사항들이 간섭을 일으키는 걸까요?
위에 설명해주신것처럼 filetype plugin indent on 을 .vimrc에 넣은후
Ctrl+X, Ctrl+O를 해보면 아래와 같은 에러가 납니다.
Error: Required vim compiled with +python
E117: Unknown function: pythoncomplete#Complete
혹시 말씀해주신 /usr/local/share/vim/vim70/autoload/
의 파일들이 잘 로드가 안되는건가 해서,
:set omnifunc=pythoncomplete#Complete
를 한후에 다시 해봐도 같은 상황이네요.
시스템은 RH9.0 이고, 이전 vim은 6.1 이었습니다.(이녀석은 /usr/bin/vim이네요. 새로 설치한것은 /usr/local/bin/vim이구요.)
혹시 좀더 살펴볼곳은 어디일까요?
(참고로 C++ 파일을 열고 같은 방식으로 해보면,
Omni completion (^O^N^P) Pattern not found
에러가 나네요.)
Vim을 컴파일할때
Vim을 컴파일할때 python옵션을 안주고 하셨네요..
vi에서 :version으로 python옵션이 켜져있는지 확인하세요.
아직 C++은 omni에서 지원안합니다.
Bram이 좀 있다가 추가할지도 모른다고 하는데, 기본은 C입니다.
./configure
./configure --enable-pythoninterp=/usr/local/bin/python --with-python-config-dir=/usr/local/lib/python2.4/
와같이 configure한후에,
make,
make install 하였습니다.
vi를 실행시킨후, :version해보면,
VIM - Vi IMproved 7.0 (2006 May 7, compiled May 17 2006 16:37:54) 라고 시작하고.. 중간에..
-python
으로 나오는군요.
컴파일할때 주어야 할 옵션이 제가 위에 적은게 전부가 아닌가 봅니다.
다시 한번 가르쳐 주시면 감사하겠습니다.
아마도 python 개발
아마도 python 개발 header와 라이브러리를 설치 안하신것 같네요.
/usr/include /usr/lib 밑에 python관련 헤더와 라이브러리를 찾아보세요.
없으면 설치하셔야 할겁니다. 설치를 하셨는대도 그러면, 라이브러리와
헤더가 제대로 링크가 안걸려 있어서 그럴겁니다.
컴파일시 gcc log에 -I/usr/include/에 python관련 링크가 제대로 걸리는지
확인하세요.
말씀하신대로
말씀하신대로 현재버전(2.4.2)은 찾아보니 없습니다.
하지만 OS설치할때 함께 설치되었던 2.2 관련 디렉토리는 모두 있군요.
그렇다면 2.4에만 있는 omni completion이 동작할때만 에러가 나고,
그렇지 않으면 동작해야 하는거 아닐까요?
아니면, 책을보고 파이썬을 설치했는데, 아무래도 옵션을 덜 준걸까요?
./configure --with-threads 로 python을 설치했습니다.
라이브러리와 헤더를 설치하려면 다른 옵션을 더 주어야 하는건가요?
--enable-shared
를 주고 새로 설치하면 될까요?
다시 설치를 해봤습니다.
Python은,
python은 2.4.3버전을 다운 받아,
./configure --with-threads --enable-shared
make
make install
로 설치했구요,
vim은,
./configure --enable-pythoninterp=/usr/local/bin/python --with-python-config-dir=/usr/local/lib/python2.4/
make
make install
/usr/include와, /usr/lib 에는 각각 /usr/local/lib과 /usr/local/include의 python디렉토리를 link해주었습니다.
그래도 안되네요.
방법을 아시면 부탁드립니다.
@질문이 계속될수록 부끄럽군요.
python으로 개발할일은
python으로 개발할일은 없지만 함 해봤습니다.
root로 ldconfig함 해주시고요..그래도 안되면 저도 모르겠습니다. ㅡㅜ;;
정말
정말 감사합니다.
알려주신대로 다시 컴파일 하니 잘 되는구요.
계속되는 질문에 이렇게 친절한 답 주셔서 감사합니다.
복받으실거에요. ^^
댓글 달기