summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2013-11-01 00:17:00 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2013-11-01 00:17:00 +0900
commitf7efcc331ac63825a97d95228d3af81788ec0a11 (patch)
tree9289ac4308dec7db85c0b577c1badf4d6d0abe03
parent8f9dbc4c29479f1af49a1a7ab06834b3ea8fae77 (diff)
downloadfzf-f7efcc331ac63825a97d95228d3af81788ec0a11.tar.gz
Improve startup time
-rwxr-xr-xfzf19
1 files changed, 11 insertions, 8 deletions
diff --git a/fzf b/fzf
index 239e566b..ef2d0eb7 100755
--- a/fzf
+++ b/fzf
@@ -1,5 +1,5 @@
-# vim: set filetype=ruby isk=@,48-57,_,192-255:
-#!/usr/bin/env bash
+#!/usr/bin/env ruby
+# encoding: utf-8
#
# ____ ____
# / __/___ / __/
@@ -35,10 +35,6 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-exec /usr/bin/env ruby -x "$0" $* 3>&1 1>&2 2>&3
-#!ruby
-# encoding: utf-8
-
def usage x
puts %[usage: fzf [options]
@@ -48,6 +44,9 @@ def usage x
exit x
end
+stdout = $stdout.clone
+$stdout.reopen($stderr)
+
usage 0 unless (%w[--help -h] & ARGV).empty?
@rxflag = ARGV.delete('+i') ? 0 : Regexp::IGNORECASE
@sort = (ARGV.delete('+s') || ARGV.delete('--no-sort')) ? nil : 500
@@ -296,6 +295,7 @@ searcher = Thread.new {
q = ''
vcursor = 0
zz = [0, 0]
+ started = false
begin
while true
@@ -396,7 +396,10 @@ searcher = Thread.new {
end#new_search
# This small delay reduces the number of partial lists
- sleep 0.2 unless user_input
+ if started && !user_input
+ sleep 0.2
+ end
+ started = true
if events.delete(:vcursor) || new_search
@mtx.synchronize do
@@ -538,6 +541,6 @@ begin
end
ensure
C.close_screen
- $stderr.puts got if got
+ stdout.puts got if got
end