2016-11-10 45 views
5

我没有一个找到所有的项目目录,我得到了以下结果:崇高3:选择文本没有行号(从找到的结果)

/home/yusuf/Downloads/concept/concept/css/style.css: 
    234 position: relative; 
    235 } 
    236: .scrolled .fh5co-nav { 
    237 background: #fff; 
    238 padding: 10px 0; 
    ... 
    241 box-shadow: 0px 5px 7px -7px rgba(0, 0, 0, 0.15); 
    242 } 
    243: .scrolled .fh5co-nav a { 
    244 color: #000; 
    245 } 

如何选择没有行号的文本?有没有办法在搜索结果中隐藏行号?我想选择代码并将其粘贴到别的地方。

回答

3

没有(文件)选项隐藏行号在文件中查找结果。为了不复制行号,您需要仔细使用多项选择来复制所有行并跳过数字,或者按照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(用适当的键绑定)也获得对剪切文本的能力并删除行号,如果你还需要这样的事情。

5

最简单的方法是打开 “查找&替换”(˚F在OS X上,按Ctrl^h Windows/Linux上),并输入以下选项(正则表达式模式,找到^\s+[0-9]+ ,更换空)

Sublime Text screenshot

+0

@SidBiffi done;) –

2

在搜索结果中双击任意生成的文件路径或TXT字符串打开原始文件从复制。