没有(文件)选项隐藏行号在文件中查找结果。为了不复制行号,您需要仔细使用多项选择来复制所有行并跳过数字,或者按照Danill在答案中提到的方式使用查找和替换。
然而,通过一些插件代码,您可以通过崇高为您完成繁重的工作而获得两全其美的好处。
例如,从菜单中选择Tools > Developer > New Plugin...
,并用下面的python代码替换缓冲区的内容,然后将其保存为例如。 find_results_copy.py
。这需要在您的User
包中(名称无关紧要,只有扩展名可以),但是如果使用菜单条目创建存根插件,Sublime应自动处理。
插件代码修改为使用单个正则表达式操作,该操作由于我最初通过两个操作实现,而不是由于深夜放屁。 [/编辑]
import sublime
import sublime_plugin
import re
class FindResultsCopyCommand(sublime_plugin.ApplicationCommand):
def run(self):
sublime.active_window().run_command ("copy")
sublime.set_clipboard (re.sub (r"^\s*[0-9]+.", "",
sublime.get_clipboard(), flags=re.MULTILINE))
这实现了一个名为find_results_copy
首先运行默认copy
命令,然后用正则表达式替换修改剪贴板中的内容扔掉的行号的新命令。
现在您可以实现自定义键绑定来调用此命令。由于我们只希望此命令在查找结果中触发,因此您可以重新使用标准副本键盘快捷键,该快捷键已修改为使用我们的新命令并添加了一个使其仅在查找结果中生效的上下文。
本示例使用Windows/Linux的键盘命令;如果您在Mac上使用super+c
而不是映射到该平台的标准密钥。
{"keys": ["ctrl+c"], "command": "find_results_copy", "context":
[
{ "key": "selector",
"operator": "equal",
"operand": "text.find-in-files",
"match_all": true
},
]
},
由于这个使用默认的复制命令,如果你有copy_with_empty_selection
打开,这将没有行号的当前行复制,而你不必选择任何东西,如果你已经习惯了工作的方式。
如果需要,您也可以复制此命令(你可以将它存储在同一个文件),并重新命名类FindResultsCutCommand
和命令执行cut
(用适当的键绑定)也获得对剪切文本的能力并删除行号,如果你还需要这样的事情。
@SidBiffi done;) –