better AG usage
authorBenjamin Doumenc <big.clop@gmail.com>
Thu, 11 Apr 2013 07:49:08 +0000 (09:49 +0200)
committerBenjamin Doumenc <big.clop@gmail.com>
Thu, 11 Apr 2013 07:49:08 +0000 (09:49 +0200)
vim/customVimrc

index a46c283..6a28012 100644 (file)
@@ -106,21 +106,30 @@ nnoremap <F5> :tnext<CR>
 " Go to previous tag
 nnoremap <F4> :tprevious<CR>
 
-" Launch ag in base directory with under cursor word
-function AgDir()
-    let l:pattern = expand("<cword>")
-        let l:path = s:basePath
+" Launch ag in base directory with parameter
+function! <SID>AgDir(word)
+    let l:pattern = a:word
+    let l:path = s:basePath
     if (&ft == "nerdtree")
-        if (isdirectory(g:NERDTreeFileNode.GetSelected().path.str()))
-            let l:path = g:NERDTreeFileNode.GetSelected().path.str()
-        else 
-            let l:path = g:NERDTreeFileNode.GetSelected().path.getParent().str()
+        if (has_key(g:NERDTreeFileNode.GetSelected(), 'path'))
+            if (isdirectory(g:NERDTreeFileNode.GetSelected().path.str()))
+                let l:path = g:NERDTreeFileNode.GetSelected().path.str()
+            else 
+                let l:path = g:NERDTreeFileNode.GetSelected().path.getParent().str()
+            endif
         endif
     endif
-    echom "Use Ag dir " . l:path
+    echom "Use Ag dir " . l:path . " for searching " . l:pattern
     execute ":Ag! " . l:pattern . " " . l:path
 endfunction
-nnoremap <F7> :execute AgDir()<CR>
+command! -nargs=1  -complete=tag F call <SID>AgDir(<f-args>)
+
+" Launch ag in base directory with under cursor word
+function AgDirCurrentWord()
+    let l:word = expand("<cword>")
+    call <SID>AgDir(l:word)
+endfunction
+nnoremap <F7> :execute AgDirCurrentWord()<CR>
 
 
 " use F2 to allow pasting from outside vim