Description
A code search tool similar to ack and the_silver_searcher(ag). It supports multi platforms and multi encodings.
The Platinum Searcher alternatives and similar packages
Based on the "Standard CLI" category.
Alternatively, view The Platinum Searcher alternatives based on common mentions on social networks and blogs.
-
urfave/cli
A small package for building command line apps in Go. -
readline
A pure golang implementation that provide most of features in GNU-Readline under MIT license. -
mitchellh/cli
A Go library for implementing command-line interfaces. -
docopt.go
A command-line arguments parser that will make you smile. -
cli-init
The easy way to start building Golang command line application. -
mow.cli
A Go library for building CLI applications with sophisticated flag and argument parsing and validation. -
complete
Write bash completions in Go + Go command bash completion. -
argparse
Command line argument parser inspired by Python's argparse module. -
commandeer
Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. -
sflags
Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries. -
box-cli-maker
Make Highly Customized Boxes for your CLI. -
go-getoptions
Go option parser inspired on the flexibility of Perl’s GetOpt::Long. -
Go-Console
GoConsole allows you to create butifull command-line commands with arguments and options. (follow the docopt standard) -
multi-tailf
watch multiple logs on local or remote servers. -
hiboot cli
cli application framework with auto configuration and dependency injection.
Get performance insights in less than 4 minutes
Do you think we are missing an alternative of The Platinum Searcher or a related project?
README
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 ignores directories with names that start with
.
, eg.config
. Use--hidden
option, if you want to search. - It searches
UTF-8
,EUC-JP
andShift_JIS
files. - It provides binaries for multi platform (macOS, 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 searches for PATTERN in current directory.
$ pt PATTERN
$ # You can specify PATH and some OPTIONS.
$ pt OPTIONS PATTERN PATH
Configuration
If 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.vim
You can use pt with Unite.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.el
You can use pt with pt.el, which can be installed from MELPA.
Installation
Developer
$ go get -u github.com/monochromegane/the_platinum_searcher/...
User
Download from the following url.
Or, you can use Homebrew (Only macOS).
$ brew install pt
pt
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
License
Author
*Note that all licence references and agreements mentioned in the The Platinum Searcher README section above
are relevant to that project's source code only.