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

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容器:二进制数据部分的集合   java如何查找和跳过单词开头和结尾的特殊字符   JavaFXMaven插件:com。zenjava jfx:jar是否包含所有依赖项?   用户界面使Java Netbeans GUI生成器在读取文本文件的某些部分之前等待事件发生   由于Kotlin中存在未解析的引用,java无法设置文本或可绘制   java JSON解析嵌套数组对象   java如何使用Hibernate(EntityManager)或JPA调用Oracle函数或过程   链接列表末尾的java插入节点   jaxb EclipseLink Moxy:Java类型绑定不使用子类型(组合)   java为什么选择事件源模式中的事件流?   java为什么我的Eclipse项目与ClearCase没有关联?   通过Talend正确完成java数据库迁移   java如何自动调用数字键盘?   swing Java反射,投射到未知对象?   正则表达式如何在java中提取文本文件的键和值?   java rmi应用程序   线程“main”java中出现异常。lang.NoClassDefFoundError在我的测试中出现错误   java open失败:API 21中的EACCES(权限被拒绝)   java(RxJava)移植的Groovy方法不起作用   java AndroidStudio:如何在片段中移动按钮