From ab9ae4f643ed47538bae6cebddc4c529f8700b45 Mon Sep 17 00:00:00 2001
From: Junegunn Choi <junegunn.c@gmail.com>
Date: Sat, 3 Dec 2016 01:08:09 +0900
Subject: [PATCH] [vim] Fix path display in FZF when cwd is ~

---
 plugin/fzf.vim | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 49dc1924..09999649 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -581,6 +581,11 @@ let s:default_action = {
   \ 'ctrl-x': 'split',
   \ 'ctrl-v': 'vsplit' }
 
+function! s:shortpath()
+  let short = pathshorten(fnamemodify(getcwd(), ':~:.'))
+  return empty(short) ? '~/' : short . (short =~ '/$' ? '' : '/')
+endfunction
+
 function! s:cmd(bang, ...) abort
   let args = copy(a:000)
   let opts = { 'options': '--multi ' }
@@ -588,7 +593,7 @@ function! s:cmd(bang, ...) abort
     let opts.dir = substitute(substitute(remove(args, -1), '\\\(["'']\)', '\1', 'g'), '/*$', '/', '')
     let opts.options .= ' --prompt '.shellescape(opts.dir)
   else
-    let opts.options .= ' --prompt '.shellescape(pathshorten(fnamemodify(getcwd(), ':~:.')).'/')
+    let opts.options .= ' --prompt '.shellescape(s:shortpath())
   endif
   let opts.options .= ' '.join(args)
   call fzf#run(fzf#wrap('FZF', opts, a:bang))
-- 
GitLab