找到出现次数最多的行
Find the line with maximum occurrence
我使用 sublime 文本,所以如果我要查找的内容不是 SB 中的原生内容,我需要一个正则表达式来在文档中找到包含某项出现次数最多的行。
例如,如果我的文档包含:
(line 1) blabla;;bla;bla
(line 2) blabla;;;bla;;bla
(line 3) blabla;bla;;;bla
然后我搜索包含最大“;”的行
SB 中正则表达式的结果应该是第 2 行。
感谢帮助!
我花时间写了一个插件来做你想要的。是这样的:
在您的 Packages
目录中创建文件夹 LineMaxOcc
。在其中创建两个文件:
文件LineMaxOcc.py
:
import sublime, sublime_plugin
class PromptLineMaxOccCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.show_input_panel("Search for:", "", self.on_done, None, None)
pass
def on_done(self, text):
self.window.active_view().run_command("line_max_occ", {"text": text} )
class LineMaxOccCommand(sublime_plugin.TextCommand):
def run(self, edit, text):
buf = self.view.substr(sublime.Region(0, self.view.size()))
result = 0
currentMax = 0
i = 0
for line in buf.split("\n"):
count = line.count(text)
if count > currentMax:
currentMax = count
result = i
i += 1
pt = self.view.text_point(result, 0)
self.view.sel().clear()
self.view.sel().add(sublime.Region(pt))
self.view.show(pt)
和文件 Default.sublime-keymap
:
[
{ "keys": ["ctrl+alt+g"], "command": "prompt_line_max_occ" }
]
这应该会立即起作用。
干杯!
我使用 sublime 文本,所以如果我要查找的内容不是 SB 中的原生内容,我需要一个正则表达式来在文档中找到包含某项出现次数最多的行。
例如,如果我的文档包含:
(line 1) blabla;;bla;bla
(line 2) blabla;;;bla;;bla
(line 3) blabla;bla;;;bla
然后我搜索包含最大“;”的行 SB 中正则表达式的结果应该是第 2 行。
感谢帮助!
我花时间写了一个插件来做你想要的。是这样的:
在您的 Packages
目录中创建文件夹 LineMaxOcc
。在其中创建两个文件:
文件LineMaxOcc.py
:
import sublime, sublime_plugin
class PromptLineMaxOccCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.show_input_panel("Search for:", "", self.on_done, None, None)
pass
def on_done(self, text):
self.window.active_view().run_command("line_max_occ", {"text": text} )
class LineMaxOccCommand(sublime_plugin.TextCommand):
def run(self, edit, text):
buf = self.view.substr(sublime.Region(0, self.view.size()))
result = 0
currentMax = 0
i = 0
for line in buf.split("\n"):
count = line.count(text)
if count > currentMax:
currentMax = count
result = i
i += 1
pt = self.view.text_point(result, 0)
self.view.sel().clear()
self.view.sel().add(sublime.Region(pt))
self.view.show(pt)
和文件 Default.sublime-keymap
:
[
{ "keys": ["ctrl+alt+g"], "command": "prompt_line_max_occ" }
]
这应该会立即起作用。
干杯!