Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 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
}
  • If you are familiar with Vim script, you may want to send ["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)]
}
  • You can define utility Vim command :Gof. Quickly calls gof -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)