Sublime 3:选择没有行号的文本(从查找所有结果)

时间:2016-11-10 04:26:06

标签: html css sublimetext3

我在项目目录中找到了所有内容,得到了以下结果:

/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 个答案:

答案 0 :(得分:5)

最简单的解决方案是打开"查找和替换" (OS X上的 F ,Windows / Linux上的 Ctrl H )并输入以下选项(RegEx模式,查找^\s+[0-9]+,替换为空)

Sublime Text screenshot

答案 1 :(得分:4)

没有(记录)选项隐藏文件结果中的查找中的行号。为了不复制行号,您需要仔细使用多个选择来复制所有行并跳过数字,或者使用查找和替换作为他在答案中提到的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,如果您习惯以这种方式工作,这将复制当前行而不包含行号而无需选择任何内容。< / p>

如果需要,您还可以复制此命令(可以将其存储在同一文件中)并将类重命名为FindResultsCutCommand,并将执行的命令重命名为cut(使用适当的键绑定)如果您还需要这样的东西,也可以获得剪切文本和删除行号的功能。

答案 2 :(得分:2)

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