mattn / Gof
Stars: ✭ 169
Labels
gof
Go Fuzzy
Open files in Vim directly (inside Vim terminal)
Installation
$ go get github.com/mattn/gof
Feature
- Faster and startup
- Working on windows
Usage
- Glob files and edit the selected file with vim.
$ vim `gof`
- Read from stdin
$ find /tmp | gof
Keyboard shortcuts
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 |
Options
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 |
Vim Terminal API
-
gof -t
orgof -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 "[email protected]"
else
command gof "[email protected]"
fi
}
- If you are familiar with Vim script, you may want to send
["call", "[funcname]", "[file information]"]
instead of["drop", "[filename]"]
. You can usegof -tf [funcname]
to sendcall
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)]
}
- You can define utility Vim command
:Gof
. Quickly callsgof -t
command and opens selected files in Vim buffer
if executable('gof')
command! -nargs=* Gof term ++close gof -t
endif
- Please try vargs if you want to communicate easily with Vim terminal API from shell
License
MIT
Author
Yasuhiro Matsumoto (a.k.a mattn)
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].