13

我想用 sublime-text 删除多行单词。

例如,我想删除所有行号(有行号,因为我从某处粘贴代码)如下:

在此处输入图像描述

4

5 回答 5

12

使用列编辑模式删除它们: http ://www.sublimetext.com/docs/2/column_selection.html

对于带鼠标的 Windows

使用鼠标右键 + Shift 选择

或者

用鼠标中键选择

CTRL添加到选择

ALT从选择中减去

仅使用键盘

CTRL+ ALT+ 向上

CTRL+ ALT+ 下

于 2013-01-07T03:31:55.527 回答
6

您还可以使用正则表达式进行搜索和替换。以下是在 Windows 版本中测试的:

  1. CTRL+H打开替换对话框。
  2. 确保使用正则表达式:单击替换对话框中最左侧的图标或使用ALT+ R
  3. ^[\d]+在“查找内容”字段中输入以选择所有行开头的任何数字。
  4. 替换为字段留空以删除数字。
  5. 单击Replace All

(搜索^[\w]+是否要选择第一个单词而不是仅数字)

于 2013-01-08T12:14:12.840 回答
4

我以不同的方式做到了这一点……虽然不是在 Sublime 中,但以防万一有人感兴趣……有几个网站可以让你这样做!只需将您的代码与行号一起粘贴到其中,它们就会被删除。我喜欢用这个:

http://remove-line-numbers.ruurtjan.com/

于 2015-02-23T18:59:47.747 回答
3

Frank He 提出了一种多光标模式,列选择(鼠标指令键盘指令)。另一种是使用搜索添加额外的实例(官方说明)。如果您正在编辑的行不是连续的,这将特别有用。

在您的情况下,您可以(例如)从所有行共有的一行中选择一种模式(例如“”)。然后,您可以使用Command+ D(Mac) 或Command+ D(Linux/Windows) 选择模式的连续实例。 Command++ (Mac) 或++ Shift( Linux/Windows )将选择模式的所有实例。DCommandShiftD

要比我更好地了解这些选项,请参阅本教程视频(优秀系列的一部分)。

于 2013-01-07T22:01:33.760 回答
1

您可以创建一个插件(工具/新插件...),将剪贴板复制到所有选定区域:

import sublime, sublime_plugin

class PasteWithoutLineNumberCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        cleaned_str = self.clean_line_numbers(sublime.get_clipboard())
        sublime.set_clipboard(cleaned_str)
        self.view.run_command('paste')

    def clean_line_numbers(self, data):
        data = re.sub('(^|(?<=\n))[^\S\n]*\d+[^\S\n](?=[^\n]+)', '', data);
        return data;

将其保存在您的Packages/User目录中。

然后您可以添加键绑定(Preferences/Key Bindings - User):

{ "keys": ["ctrl+shift+;"], "command": "paste_without_line_number" }

或者你可以在这里安装插件: ClipboardCommands然后使用快捷方式ctrl+shift+;粘贴没有行号的代码。

======

更新:

ClipboardCommands您现在可以通过包控制直接安装 sublime 插件。

于 2014-03-25T07:01:22.207 回答