mirror of
https://github.com/junegunn/fzf.git
synced 2025-08-01 20:52:06 -07:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
68503d32df | ||
|
57319f8c58 | ||
|
dd4d465305 |
@@ -60,10 +60,10 @@ curl -L https://github.com/junegunn/fzf/archive/master.tar.gz |
|
|||||||
On OS X, you can use [Homebrew](http://brew.sh/) to install fzf.
|
On OS X, you can use [Homebrew](http://brew.sh/) to install fzf.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
brew install fzf
|
brew reinstall --HEAD fzf
|
||||||
|
|
||||||
# Install shell extensions - this should be done whenever fzf is updated
|
# Install shell extensions
|
||||||
$(brew info fzf | grep /install)
|
/usr/local/Cellar/fzf/HEAD/install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Install as Vim plugin
|
#### Install as Vim plugin
|
||||||
|
@@ -125,11 +125,15 @@ function! fzf#run(...) abort
|
|||||||
let split = s:tmux_enabled() && s:tmux_splittable(dict)
|
let split = s:tmux_enabled() && s:tmux_splittable(dict)
|
||||||
let command = prefix.(split ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result
|
let command = prefix.(split ? s:fzf_tmux(dict) : fzf_exec).' '.optstr.' > '.temps.result
|
||||||
|
|
||||||
if split
|
try
|
||||||
return s:execute_tmux(dict, command, temps)
|
if split
|
||||||
else
|
return s:execute_tmux(dict, command, temps)
|
||||||
return s:execute(dict, command, temps)
|
else
|
||||||
endif
|
return s:execute(dict, command, temps)
|
||||||
|
endif
|
||||||
|
finally
|
||||||
|
call s:popd(dict)
|
||||||
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:present(dict, ...)
|
function! s:present(dict, ...)
|
||||||
@@ -160,6 +164,7 @@ function! s:pushd(dict)
|
|||||||
if s:present(a:dict, 'dir')
|
if s:present(a:dict, 'dir')
|
||||||
let a:dict.prev_dir = getcwd()
|
let a:dict.prev_dir = getcwd()
|
||||||
execute 'chdir '.s:escape(a:dict.dir)
|
execute 'chdir '.s:escape(a:dict.dir)
|
||||||
|
let a:dict.dir = getcwd()
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
return 0
|
return 0
|
||||||
@@ -194,14 +199,6 @@ function! s:execute(dict, command, temps)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:env_var(name)
|
|
||||||
if exists('$'.a:name)
|
|
||||||
return a:name . "='". substitute(expand('$'.a:name), "'", "'\\\\''", 'g') . "' "
|
|
||||||
else
|
|
||||||
return ''
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:execute_tmux(dict, command, temps)
|
function! s:execute_tmux(dict, command, temps)
|
||||||
let command = a:command
|
let command = a:command
|
||||||
if s:pushd(a:dict)
|
if s:pushd(a:dict)
|
||||||
@@ -233,8 +230,6 @@ function! s:callback(dict, temps)
|
|||||||
silent! call delete(tf)
|
silent! call delete(tf)
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call s:popd(a:dict)
|
|
||||||
|
|
||||||
return lines
|
return lines
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@@ -3,11 +3,14 @@ Execute (Setup):
|
|||||||
Log 'Test directory: ' . g:dir
|
Log 'Test directory: ' . g:dir
|
||||||
|
|
||||||
Execute (fzf#run with dir option):
|
Execute (fzf#run with dir option):
|
||||||
|
let cwd = getcwd()
|
||||||
let result = fzf#run({ 'options': '--filter=vdr', 'dir': g:dir })
|
let result = fzf#run({ 'options': '--filter=vdr', 'dir': g:dir })
|
||||||
AssertEqual ['fzf.vader'], result
|
AssertEqual ['fzf.vader'], result
|
||||||
|
AssertEqual getcwd(), cwd
|
||||||
|
|
||||||
let result = sort(fzf#run({ 'options': '--filter e', 'dir': g:dir }))
|
let result = sort(fzf#run({ 'options': '--filter e', 'dir': g:dir }))
|
||||||
AssertEqual ['fzf.vader', 'test_go.rb', 'test_ruby.rb'], result
|
AssertEqual ['fzf.vader', 'test_go.rb'], result
|
||||||
|
AssertEqual getcwd(), cwd
|
||||||
|
|
||||||
Execute (fzf#run with Funcref command):
|
Execute (fzf#run with Funcref command):
|
||||||
let g:ret = []
|
let g:ret = []
|
||||||
@@ -15,8 +18,8 @@ Execute (fzf#run with Funcref command):
|
|||||||
call add(g:ret, a:e)
|
call add(g:ret, a:e)
|
||||||
endfunction
|
endfunction
|
||||||
let result = sort(fzf#run({ 'sink': function('g:FzfTest'), 'options': '--filter e', 'dir': g:dir }))
|
let result = sort(fzf#run({ 'sink': function('g:FzfTest'), 'options': '--filter e', 'dir': g:dir }))
|
||||||
AssertEqual ['fzf.vader', 'test_go.rb', 'test_ruby.rb'], result
|
AssertEqual ['fzf.vader', 'test_go.rb'], result
|
||||||
AssertEqual ['fzf.vader', 'test_go.rb', 'test_ruby.rb'], sort(g:ret)
|
AssertEqual ['fzf.vader', 'test_go.rb'], sort(g:ret)
|
||||||
|
|
||||||
Execute (fzf#run with string source):
|
Execute (fzf#run with string source):
|
||||||
let result = sort(fzf#run({ 'source': 'echo hi', 'options': '-f i' }))
|
let result = sort(fzf#run({ 'source': 'echo hi', 'options': '-f i' }))
|
||||||
|
Reference in New Issue
Block a user