summary refs log tree commit diff stats
path: root/tools/nimgrep.nim
diff options
context:
space:
mode:
authorAndrey Makarov <ph.makarov@gmail.com>2021-03-23 20:12:27 +0300
committerGitHub <noreply@github.com>2021-03-23 18:12:27 +0100
commit368422c219dd11018a8a3265921ddc283666e9e2 (patch)
tree63d14d0381fb65711f5f0878d84560ab9008fc74 /tools/nimgrep.nim
parent833084b671d1df21bd1a958810fc2a1bd13ae1d6 (diff)
downloadNim-368422c219dd11018a8a3265921ddc283666e9e2.tar.gz
update nimgrep documentation (#17415)
* update nimgrep documentation

* Update doc/nimgrep_cmdline.txt

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Diffstat (limited to 'tools/nimgrep.nim')
-rw-r--r--tools/nimgrep.nim101
1 files changed, 1 insertions, 100 deletions
diff --git a/tools/nimgrep.nim b/tools/nimgrep.nim
index cb46f30b8..a368c40ef 100644
--- a/tools/nimgrep.nim
+++ b/tools/nimgrep.nim
@@ -16,106 +16,7 @@ const
   Version & """
 
   (c) 2012-2020 Andreas Rumpf
-
-Usage:
-* To search:
-  nimgrep [options] PATTERN [(FILE/DIRECTORY)*/-]
-* To replace:
-  nimgrep [options] PATTERN --replace REPLACEMENT (FILE/DIRECTORY)*/-
-* To list file names:
-  nimgrep [options] --filenames [PATTERN] [(FILE/DIRECTORY)*]
-
-Positional arguments, from left to right:
-* PATERN is either Regex (default) or Peg if --peg is specified.
-  PATTERN and REPLACEMENT should be skipped when --stdin is specified.
-* REPLACEMENT supports $1, $# notations for captured groups in PATTERN.
-  Note: --replace mode DOES NOT ask confirmation unless --confirm is specified!
-* Final arguments are a list of paths (FILE/DIRECTORY) or a standalone
-  minus '-' (pipe) or not specified (empty). Note for the empty case: when
-  no FILE/DIRECTORY/- is specified nimgrep DOES NOT read the pipe, but
-  searches files in the current dir instead!
-    -                 read buffer once from stdin: pipe or terminal input;
-                      in --replace mode the result is directed to stdout;
-                      it's not compatible with --stdin, --filenames, --confirm
-    (empty)           current directory '.' is assumed (not with --replace)
-  For any given DIRECTORY nimgrep searches only its immediate files without
-  traversing sub-directories unless --recursive is specified.
-  In replacement mode all 3 positional arguments are required to avoid damaging.
-
-Options:
-* Mode of operation:
-  --find, -f          find the PATTERN (default)
-  --replace, -!       replace the PATTERN to REPLACEMENT, rewriting the files
-  --confirm           confirm each occurrence/replacement; there is a chance
-                      to abort any time without touching the file
-  --filenames         just list filenames. Provide a PATTERN to find it in
-                      the filenames (not in the contents of a file) or run
-                      with empty pattern to just list all files:
-                      nimgrep --filenames               # In current directory
-                      nimgrep --filenames "" DIRECTORY  # Note empty pattern ""
-
-* Interprete patterns:
-  --peg               PATTERN and PAT are Peg
-  --re                PATTERN and PAT are regular expressions (default)
-  --rex, -x           use the "extended" syntax for the regular expression
-                      so that whitespace is not significant
-  --word, -w          matches should have word boundaries (buggy for pegs!)
-  --ignoreCase, -i    be case insensitive in PATTERN and PAT
-  --ignoreStyle, -y   be style insensitive in PATTERN and PAT
-  NOTE: PATERN and patterns PAT (see below in other options) are all either
-        Regex or Peg simultaneously and options --rex, --word, --ignoreCase,
-        --ignoreStyle are applied to all of them.
-
-* File system walk:
-  --recursive, -r     process directories recursively
-  --follow            follow all symlinks when processing recursively
-  --ext:EX1|EX2|...   only search the files with the given extension(s),
-                      empty one ("--ext") means files with missing extension
-  --noExt:EX1|...     exclude files having given extension(s), use empty one to
-                      skip files with no extension (like some binary files are)
-  --includeFile:PAT   search only files whose names contain pattern PAT
-  --excludeFile:PAT   skip files whose names contain pattern PAT
-  --includeDir:PAT    search only files with whole directory path containing PAT
-  --excludeDir:PAT    skip directories whose name (not path) contain pattern PAT
-  --if,--ef,--id,--ed abbreviations of 4 options above
-  --sortTime          order files by the last modification time (default: off):
-       -s[:asc|desc]    ascending (recent files go last) or descending
-
-* Filter file content:
-  --match:PAT         select files containing a (not displayed) match of PAT
-  --noMatch:PAT       select files not containing any match of PAT
-  --bin:on|off|only   process binary files? (detected by \0 in first 1K bytes)
-                      (default: on - binary and text files treated the same way)
-  --text, -t          process only text files, the same as --bin:off
-
-* Represent results:
-  --nocolor           output will be given without any colors
-  --color[:on]        force color even if output is redirected (default: auto)
-  --colorTheme:THEME  select color THEME from 'simple' (default),
-                      'bnw' (black and white) ,'ack', or 'gnu' (GNU grep)
-  --count             only print counts of matches for files that matched
-  --context:N, -c:N   print N lines of leading context before every match and
-                      N lines of trailing context after it (default N: 0)
-  --afterContext:N,
-               -a:N   print N lines of trailing context after every match
-  --beforeContext:N,
-               -b:N   print N lines of leading context before every match
-  --group, -g         group matches by file
-  --newLine, -l       display every matching line starting from a new line
-  --cols[:N]          limit max displayed columns/width of output lines from
-                      files by N characters, cropping overflows (default: off)
-  --cols:auto, -%     calculate columns from terminal width for every line
-  --onlyAscii, -@     display only printable ASCII Latin characters 0x20-0x7E
-                      substitutions: 0 -> ^@, 1 -> ^A, ... 0x1F -> ^_,
-                                     0x7F -> '7F, ..., 0xFF -> 'FF
-* Miscellaneous:
-  --threads:N, -j:N   speed up search by N additional workers (default: 0, off)
-  --stdin             read PATTERN from stdin (to avoid the shell's confusing
-                      quoting rules) and, if --replace given, REPLACEMENT
-  --verbose           be verbose: list every processed file
-  --help, -h          shows this help
-  --version, -v       shows the version
-"""
+""" & slurp "../doc/nimgrep_cmdline.txt"
 
 # Limitations / ideas / TODO:
 # * No unicode support with --cols