Index: pida/utils/vim/vimcom.py
===================================================================
--- pida/utils/vim/vimcom.py	(revision 1165)
+++ pida/utils/vim/vimcom.py	(working copy)
@@ -680,6 +680,12 @@
 
     def set_path(self, server, path):
         self.send_ex(server, 'cd %s' % path)
+
+    def add_completion(self, server, s):
+        self.send_expr(server, 'complete_add("%s")' % s, lambda *a: None)
+
+    def finish_completion(self, server):
+        self.send_ex(server, 'call Pida_Stop_Completing()')
    
     def cb_notify(self, *a):
         win, ev =  a
@@ -768,5 +774,30 @@
 :silent au pida CursorMovedI * silent call Async_event(v:servername.":cursor_move,".line('.'))
 :silent au pida CursorMoved * silent call Async_event(v:servername.":cursor_move,".line('.'))
 
+:silent function! Pida_Complete(findstart, base)
+    " locate the start of the word
+    let line = getline('.')
+    let start = col('.') - 1
+    while start > 0 && line[start - 1] =~ '\a'
+        let start -= 1
+    endwhile
+    if a:findstart
+        let g:completing = 1
+	    return start
+    else
+        call Async_event(v:servername.":complete".a:findstart."".a:base."".line."".start)
+        let completion_time = 0
+        while g:completing && completion_time < 1000
+            echo g:completing
+            sleep 100m
+            let completion_time = completion_time + 100
+        endwhile
+    endif
+:endfunction
+
+:silent function! Pida_Stop_Completing()
+    let g:completing = 0
+:endfunction
+set completefunc=Pida_Complete
 '''
         
Index: pida/editors/vim/vim.py
===================================================================
--- pida/editors/vim/vim.py	(revision 1165)
+++ pida/editors/vim/vim.py	(working copy)
@@ -87,7 +87,13 @@
         if server == self.svc.server:
             self.svc.boss.stop(force=True)
 
+    def vim_complete(self, server, findstart, base, line, start):
+        print server, findstart, base, line, start
+        self.svc._com.add_completion(server, 'banana')
+        self.svc._com.add_completion(server, 'banana2')
+        self.svc._com.add_completion(server, 'banana3')
 
+
 # Service class
 class Vim(EditorService):
     """Describe your Service Here""" 
