본문 바로가기
Linux/vim

[vim] vim-ollama (private AI assistant)

by 暻煥 2025. 5. 27.

.

vim에서 사용 가능한 AI Code Assistant 설치 방법을 소개한다.

위 그림에서 회색으로 작성된 부분이 AI가 자동완성한 Code 이다.

 

해당 PlugIn의 가장큰 장점은 Local 환경에서 구동되므로 폐쇄망에서도 사용 가능하다.


 

Ollama server를 Ubuntu PC에 설치한다.

curl -fsSL https://ollama.com/install.sh | sh

 

만약 인터넷 연결이 전혀 되지 않아, ollama server를 OFFLINE으로 설치해야 한다면 다음 방법을 사용한다.
( https://github.com/ollama/ollama/blob/main/docs/linux.md )

먼저 아래 링크에서 Release File을 다운받고

https://github.com/ollama/ollama/releases

아래 명령어를 수행한다.

sudo tar -C /usr -xzf ollama-linux-amd64.tgz
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

그리고 "/etc/systemd/system/ollama.service" 파일을 아래처럼 작성한다.

[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
[Install]
WantedBy=multi-user.target

마지막으로, 서비스를 실행한다.

sudo systemctl daemon-reload
sudo systemctl enable ollama

 

원하는 AI Coder Model을 다운 받는다.

( 여기서는 비교적 가벼운 deepseek-coder를 다운 받았다. )

ollama pull deepseek-coder:6.7b

 

만약 인터넷 연결이 안되어 pull 명령어 수행이 불가능 하면,
다른 기기에서 model은 다운 받은 후, 아래 경로에 붙여넣는다.
/usr/share/ollama/.ollama/models

 

다음으로 vim-ollama PlugIn을 설치한다.

~/.vimrc 파일에 아래와 같이 추가한다.

set nocompatible
filetype off

call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
"vim ollama"
Plugin 'gergap/vim-ollama'
call vundle#end()
filetype plugin indent on

 

만약 vundle 설정이 안되어 있다면 아래 링크를 참고한다.
https://github.com/VundleVim/Vundle.vim

 

vim을 실행하고, vim 명령창에서 vundle을 이용해 vim-ollma를 설치한다.

:PluginInstall

 

설치가 잘 되었는지 아래 명령어로 테스트를 수행한다.

cd ~/.vim/bundle/vim-ollama/python/
echo -e 'def compute_gcd(x, y): <FILL_IN_HERE>return result' | ./complete.py -u http://localhost:11434 -m codellama:7b-code

 

테스트 결과는 빠르게 콘솔에 출력된다.

# Euclid's algorithm
    while y:
        x, y = y, x % y
    return x

def lcm(a, b):
    result = (a * b) // compute_gcd(a, b)

 

이제 vim을 종료 후, 다시 실행하면 아래처럼 설정을 "시작하겠습니까?" 질문이 나온다.

과감히 "N"을 선택한다.

Welcome to Vim-Ollama!
----------------------
This is the first time you are using this plugin. Should I help you setting up everything? (Y/n): N

( 이유는 모르겠지만, 초기 설정으로 수행하면 ollama serve 연결이 되지 않는다 ... 😂 )

 

이제 ollma 설정을 하기 위한 vim 명령어를 실행해서 완료한다.

여기서 model 선택이 가능하다.

:Ollama setup
The default Ollama base URL is 'http://localhost:11434'. Do you want to change it? (y/N): N
  [1] Select an existing model
  [2] Pull default models for automatic setup
Your choice: 1
Available Models:
  [1] deepseek-coder:6.7b

Choose tab completion model (Press enter for 'starcoder2:3b'): 1
Configured 'deepseek-coder:6.7b' as tab completion model.
------------------------------------------------------------
Available Models:
  [1] deepseek-coder:6.7b

Choose code edit model: 1
Configured 'deepseek-coder:6.7b' as code edit model.
------------------------------------------------------------
Available Models:
  [1] deepseek-coder:6.7b

Choose chat model (Press enter for 'llama3.1:8b'): 1
Configured 'deepseek-coder:6.7b' as chat model.
Configuration saved to /root/.vim/config/ollama.vim

 

이제 네트워크를 사용하지 않는 환경에서도, vim에서 AI Code Assistant 기능을 사용 할 수 있다.

.


※ 참고 및 출처

https://ollama.com/

 

Ollama

Get up and running with large language models.

ollama.com

https://github.com/gergap/vim-ollama

 

GitHub - gergap/vim-ollama: Vim plugin for integrating Ollama based LLM (large language models)

Vim plugin for integrating Ollama based LLM (large language models) - gergap/vim-ollama

github.com

.

'Linux > vim' 카테고리의 다른 글

[vim] YouCompleteMe  (0) 2025.02.19
[vim] 임의 위치의 tags & cscope 추가  (0) 2024.09.21
[vim][c] syntax highlight  (0) 2024.02.03
[vim] C언어 #ifdef  (0) 2024.02.03
[vim] mark 설치 (형광펜 기능)  (0) 2024.02.03