- local LLMを使ってコード補完機能を使う
- llama.vim https://github.com/ggml-org/llama.vim
- llama.cppサーバはmac os のlaunchdの仕組みを使って起動し、ログは結構出力されるので、一旦/dev/nullへ流す
- ~/Library/LaunchAgents/com.ggml.llama.plistに起動内容を定義
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.ggml.llama</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/llama-server</string>
<string>--fim-qwen-7b-default</string>
</array>
<key>RunAtLoad</key>
<false/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>StandardErrorPath</key>
<string>/dev/null</string>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.ggml.llama.plist
- llama.cppを落とすのはunloadコマンドで
launchctl unload ~/Library/LaunchAgents/com.ggml.llama.plist
- 一度起動コマンドを打つと、macの「設定」「一般」「ログイン項目と機能拡張」にllama-serverのエントリが自動的に追加される。RunAtLoadをfalseに設定しているのだが、起動すると自動的にロードされているようだ。設定画面でoffにするとプロセスはダウンする
- 設定に誤りがあったりすると、ファイルを修正しても元の内容が保持されているので、一度removeコマンドを打って、エントリを削除して再度起動コマンドを打つ。removeコマンドを打っても、設定ファイルが削除されるわけではない。
launchctl remove com.ggml.llama
- デフォルトで統計情報が表示されるので、.vimrcにそれをoffにする設定を入れる
let g:llama_config = { 'show_info': 0 }
- 自動補完の文字色をカストマイズ ~/.vim/plugged/llama.vim/autoload/llama.vim
highlight default llama_hl_hint guifg=#00fa9a ctermfg=215
//guifgの方が対象
- llama.cppを使って複数ファイルを編集していたら、初めてmac bookのファンが回った(^^;