并行快速的程序员搜索工具

lk的Python项目详细描述


注释

  • 用python编写
  • 灵感来自ack
  • 并行:使用python的 多处理库
  • 通过“import lk”可以方便地从python程序进行搜索

示例

在当前工作目录中搜索“class”一词

$ lk class
/home/elijah/Development/lk/lk.py:
10: class NullDevice():
54: class SearchManager(object):
85: class ColorWriter:
122: class DirectoryResult(object):
145: class LineResult(object):

在/home/elijah/development/lk/

$ lk "line_.*" /home/elijah/Development/lk/
/home/elijah/Development/lk/lk.py:
129:         self._line_results = {}
134:         line_number = file_contents.count('\n', 0, match_start) + 1
139:         line_result = LineResult(line_number, left_offset,
142:         if not file_name in self._line_results:
143:             self._line_results[file_name] = []
144:         self._line_results[file_name].append(line_result)
146:     def get_line_results(self):
147:         return self._line_results.items()
150:     def __init__(self, line_number, left_offset, left_of_group,
152:         self.line_number = line_number
160:     for file_name, line_results in directory_result.get_line_results():
164:         for line_result in line_results:
165:             writer.write('%s: ' % (line_result.line_number))
166:             writer.write(line_result.left_of_group)
167:             writer.write_blue(line_result.group)
168:             writer.write(line_result.right_of_group+'\n')

安装

$ sudo easy_install lk

$ sudo pip install lk

放气边缘安装

如果您想使用最新和最好的LK版本:

$ git clone git://github.com/elijahr/lk.git
$ cd lk
$ sudo chmod +x lk.py
$ sudo ln -s `pwd`/lk.py /usr/local/bin/lk

然后,每当您想更新到最新版本时,请执行以下操作:

$ cd lk && git pull

用法

usage: lk [-h] [--ignore-case] [--no-unicode] [--no-multiline] [--dot-all]
          [--follow-links] [--hidden] [--binary] [--no-colors] [--stats]
          [--num-processes NUMBER_PROCESSES] [--exclude PATH_PATTERN]
          [--open-with COMMAND]
          PATTERN [DIRECTORY]

A programmer's search tool, parallel and fast

positional arguments:
  PATTERN               a python re regular expression
  DIRECTORY             a directory to search in (default cwd)

optional arguments:
  -h, --help            show this help message and exit
  --ignore-case, -i     ignore case when searching
  --no-unicode, -u      unicode-unfriendly searching
  --no-multiline, -l    don't search over multiple lines
  --dot-all, -a         dot in pattern matches newline
  --follow-links, -s    follow symlinks
  --hidden, -n          search hidden files and directories
  --binary, -b          search binary files
  --no-colors, -c       don't print ANSI colors
  --stats, -t           print statistics
  --num-processes NUMBER_PROCESSES, -p NUMBER_PROCESSES
                        number of child processes to concurrently search with
  --exclude PATH_PATTERN, -x PATH_PATTERN
                        exclude paths matching PATH_PATTERN
  --open-with COMMAND, -o COMMAND
                        run each COMMAND where COMMAND is a string with a
                        placeholder, %s, for the absolute path of the matched
                        file

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修复尝试将用户签名到服务器主机时出现的“字符串无法转换为json对象”错误?   控制台Java:不使用新行更新命令行中的文本   java servlet接收xml数据时,出现错误   使用REST API在Bitbucket中复制或复制存储库   java如何在JavaFX中对齐一行?   java如何在活动中显示通过服务获得的数据?   返回BigDecimal作为字符串:返回int   java组织。openqa。硒。InvalidSelectorException:尝试查找元素时选择器无效   java仅在阻塞状态下通知和通知所有影响线程   java JBOSS无法启动部署   java方法的返回值能保证类型安全吗?   JavaeShadoop序列化组织。阿帕奇。hadoop。木卫一。短写失败   java如果我在同一个类上同步了两个方法,它们能同时运行吗?   不使用java数据库的spring分页实现   java如何将字符串切碎成这样的数组?