The Platinum Searcher
A code search tool similar to ack and the_silver_searcher(ag) . It supports multi platforms and multi encodings.
Features It searches code about 3 5× faster than ack . It searches code as fast as the_silver_searcher(ag) . It ignores file patterns from your .gitignore . It searches UTF-8 , EUC-JP and Shift_JIS files. It provides binaries for multi platform (Mac OS X, windows, linux). Benchmarks cd ~/src/github.com/torvalds/linux ack EXPORT_SYMBOL_GPL 30.18s user 2.32s system 99% cpu 32.613 total # ack ag EXPORT_SYMBOL_GPL 1.57s user 1.76s system 311% cpu 1.069 total # ag: It's faster than ack. pt EXPORT_SYMBOL_GPL 2.29s user 1.26s system 358% cpu 0.991 total # pt: It's faster than ag!! Usage $ # Recursively searchs for PATTERN in current directory. $ pt PATTERN $ # You can specified PATH and some OPTIONS. $ pt OPTIONS PATTERN PATH ConfigurationIf you put configuration file on the following directories, pt use option in the file.
$XDG_CONFIG_HOME/pt/config.toml $HOME/.ptconfig.toml .ptconfig.toml (current directory)The file is TOML format like the following.
color = true context = 3 ignore = ["dir1", "dir2"] color-path = "1;34"The options are same as command line options.
Editor Integration Vim + Unite.vimYou can use pt withUnite.vim.
nnoremap <silent> ,g :<C-u>Unite grep:. -buffer-name=search-buffer<CR> if executable('pt') let g:unite_source_grep_command = 'pt' let g:unite_source_grep_default_opts = '--nogroup --nocolor' let g:unite_source_grep_recursive_opt = '' let g:unite_source_grep_encoding = 'utf-8' endif Emacs + pt.elYou can use pt withpt.el, which can be installed from MELPA .
Installation Developer $ go get -u github.com/monochromegane/the_platinum_searcher/... UserDownload from the following url.
https://github.com/monochromegane/the_platinum_searcher/releasesOr, you can use Homebrew (Only MacOSX).
$ brew install ptpt is an alias for the_platinum_searcher in Homebrew.
Contribution Fork it Create a feature branch Commit your changes Rebase your local changes against the master branch Run test suite with the go test ./... command and confirm that it passes Run gofmt -s Create new Pull Request LicenseMIT
Authormonochromegane