Repository: junegunn/fzf (language: go)

Issue:
/home/{user}/.fzf/shell/key-bindings.zsh:emulate:35: unknown argument -o
<!-- ISSUES NOT FOLLOWING THIS TEMPLATE WILL BE CLOSED AND DELETED -->

<!-- Check all that apply [x] -->

- [x] I have read through the manual page (`man fzf`)
- [x] I have the latest version of fzf
- [x] I have searched through the existing issues

## Info

- OS
    - [x] Linux
    - [ ] Mac OS X
    - [ ] Windows
    - [ ] Etc.
- Shell
    - [ ] bash
    - [x] zsh
    - [ ] fish
    
## Problem / Steps to reproduce

I have followed the instruction to install fzf using git way.

I have selected to use key binding.

After installation and `source ~/.zshrc`, I have this error:

```
/home/{my-user-name}/.fzf/shell/key-bindings.zsh:emulate:35: unknown argument -o
```

And it keeps popping up every time I login to the host.


Discussion / hints:
`zsh --version`?
zsh 5.7.1 (x86_64-pc-linux-gnu)
I can't reproduce the problem, tested on zsh 5.4 and 5.8

```sh
$ echo $ZSH_VERSION
5.4.2
$ source ~/.fzf.zsh
$ bindkey | grep fzf
"^I" fzf-completion
"^R" fzf-history-widget
"^T" fzf-file-widget
"^[c" fzf-cd-widget
```
I have this correctly:

```
~ ➜ bindkey | grep fzf
"^I" fzf-completion
"^R" fzf-history-widget
"^T" fzf-file-widget
"^[c" fzf-cd-widget
```

But I just keeps getting the error when logon to the host:
```
/home/{user}/.fzf/shell/key-bindings.zsh:emulate:35: unknown argument -o
```
I too see the same error whenever I do login:
`/home/$USER/fzf/shell/key-bindings.zsh:emulate:35: unknown argument -o`
+1 . I see this error too. Any workarounds ?
Same issue.
`zsh --version`: `zsh 4.3.11 (x86_64-redhat-linux-gnu)`
fzf is the latest.

$ cat /etc/centos-release
CentOS release 6.9 (Final)

![image](https://user-images.githubusercontent.com/26994103/191178999-5a027ae3-3187-4412-bea5-d226b365bf19.png)

> Same issue. `zsh --version`: `zsh 4.3.11 (x86_64-redhat-linux-gnu)` fzf is the latest.
> 
> $ cat /etc/centos-release CentOS release 6.9 (Final)
> 
> ![image](https://user-images.githubusercontent.com/26994103/191178999-5a027ae3-3187-4412-bea5-d226b365bf19.png)

I have the same problem withe the exact same output.

Fix patch:
diff --git a/shell/completion.zsh b/shell/completion.zsh
index 1e7d6f10e3b..9055e901667 100644
--- a/shell/completion.zsh
+++ b/shell/completion.zsh
@@ -67,7 +67,7 @@ fi
 # control. There are several others that could wreck havoc if they are set
 # to values we don't expect. With the following `emulate` command we
 # sidestep this issue entirely.
-'emulate' 'zsh' '-o' 'no_aliases'
+'builtin' 'emulate' 'zsh' && 'builtin' 'setopt' 'no_aliases'
 
 # This brace is the start of try-always block. The `always` part is like
 # `finally` in lesser languages. We use it to *always* restore user options.
diff --git a/shell/key-bindings.zsh b/shell/key-bindings.zsh
index c04a00201fe..52c01f2490f 100644
--- a/shell/key-bindings.zsh
+++ b/shell/key-bindings.zsh
@@ -32,7 +32,7 @@ else
   }
 fi
 
-'emulate' 'zsh' '-o' 'no_aliases'
+'builtin' 'emulate' 'zsh' && 'builtin' 'setopt' 'no_aliases'
 
 {
 


Test patch: