Go Fuzzy
Open files in Vim directly (inside Vim terminal)
$ go install github.com/mattn/gof@latest
$ vim `gof`
$ find /tmp | gof
Key | Description |
---|---|
CTRL-K,CTRL-P,ARROW-UP | Move-up line |
CTRL-J,CTRL-N,ARROW-DOWN | Move-down line |
CTRL-A,HOME | Go to head of prompt |
CTRL-E,END | Go to trail of prompt |
ARROW-LEFT | Move-left cursor |
ARROW-RIGHT | Move-right cursor |
CTRL-I | Toggle view header/trailing of lines |
CTRL-L | Redraw |
CTRL-U | Clear prompt |
CTRL-W | Remove backward word |
BS | Remove backward character |
DEL | Delete character on the cursor |
CTRL-Z | Toggle selection |
CTRL-R | Toggle fuzzy option |
Enter | Decide |
CTRL-D,CTRL-C,ESC | Cancel |
Option | Description |
---|---|
-f | Fuzzy match |
-x | Exit code for cancel (default: 1) |
-d [path] | Specify root directory |
-a | Register action keys |
-t | Open via Vim's Terminal API |
-tf [funcname] | Terminal API's function name |
gof -t
or gof -tf [prefix]
opens selected files in Vim using Terminal API.
If you want to add -t
option automatically whether you are inside Vim
terminal or not, you can define alias like this
gof() {
if [ "$VIM_TERMINAL" ]; then
command gof -t "$@"
else
command gof "$@"
fi
}
["call", "[funcname]", "[file information]"]
instead of ["drop", "[filename]"]
. You can use gof -tf [funcname]
to send call
command[file information] = {
"filename": [relative filename path (string)],
"fullpath": [absolute filename path (string)],
"root_dir": [root directory (string)],
"action_key": [action key of -a (string)]
}
:Gof
. Quickly calls gof -t
command andif executable('gof')
command! -nargs=* Gof term ++close gof -t
endif
MIT
Yasuhiro Matsumoto (a.k.a mattn)