]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/plugin/whereami.vim
Detect already loaded code with simpler <SID> check
[dotfiles.git] / vim / .vim / plugin / whereami.vim
index 8c55eded5f032db1fed06e8819392f70a01c70a3..a6d53365224d2298347280a6c2f39790b9c4927e 100644 (file)
@@ -1,8 +1,17 @@
-if exists("g:loaded_mein_whereami") | finish | endif
-let g:loaded_mein_whereami = 1
+if exists('*<SID>pwdLoad') | finish | endif
 
-function! WhereAmI(fmt)
+function! s:pwdLoad()
+    let g:mein_pwdL=trim(system("pwd -L"))
+    let g:mein_pwdP=trim(system("pwd -P"))
+endfunction
+
+autocmd VimEnter * call s:pwdLoad()
+
+function! s:WhereAmI(fmt)
     let fullpath = expand("%:p")
+    if fullpath[:len(g:mein_pwdP)-1] ==# g:mein_pwdP
+        let fullpath = g:mein_pwdL . fullpath[len(g:mein_pwdP):]
+    endif
     if a:fmt == "gnu"
         let where = fullpath . ":" . line(".")
     elseif a:fmt == "lldb"
@@ -14,5 +23,5 @@ function! WhereAmI(fmt)
     echomsg where
 endfunction
 
-nmap <leader>w :call WhereAmI("gnu")<CR>
-nmap <leader>W :call WhereAmI("lldb")<CR>
+nmap <leader>w :call <SID>WhereAmI("gnu")<CR>
+nmap <leader>W :call <SID>WhereAmI("lldb")<CR>