我想用 sublime-text 删除多行单词。
例如,我想删除所有行号(有行号,因为我从某处粘贴代码)如下:
使用列编辑模式删除它们: http ://www.sublimetext.com/docs/2/column_selection.html
使用鼠标右键 + Shift 选择
或者
用鼠标中键选择
按CTRL添加到选择
按ALT从选择中减去
CTRL+ ALT+ 向上
CTRL+ ALT+ 下
您还可以使用正则表达式进行搜索和替换。以下是在 Windows 版本中测试的:
^[\d]+
在“查找内容”字段中输入以选择所有行开头的任何数字。(搜索^[\w]+
是否要选择第一个单词而不是仅数字)
我以不同的方式做到了这一点……虽然不是在 Sublime 中,但以防万一有人感兴趣……有几个网站可以让你这样做!只需将您的代码与行号一起粘贴到其中,它们就会被删除。我喜欢用这个:
Frank He 提出了一种多光标模式,列选择(鼠标指令,键盘指令)。另一种是使用搜索添加额外的实例(官方说明)。如果您正在编辑的行不是连续的,这将特别有用。
在您的情况下,您可以(例如)从所有行共有的一行中选择一种模式(例如“”)。然后,您可以使用Command+ D(Mac) 或Command+ D(Linux/Windows) 选择模式的连续实例。 Command++ (Mac) 或++ Shift( Linux/Windows )将选择模式的所有实例。DCommandShiftD
要比我更好地了解这些选项,请参阅本教程视频(优秀系列的一部分)。
您可以创建一个插件(工具/新插件...),将剪贴板复制到所有选定区域:
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 插件。