崇高文字:在选择范围内查找并替换


21

Sublime Text 2是否允许用户执行查找和替换(仅限于当前选择)?

我应该认为这是必须的,只有经过多次搜索才能找到执行该方法的方法。

Answers:


23

ST2中有一个用于此的按钮。

屏幕截图


4
没错,有一个按钮。但是,您如何使用它呢?特别是如何设置“选择”?根据我的经验,ST2使用打开搜索栏时的选择。因此,如果该条已经打开,则必须先将其关闭(Esc),然后选择要检查的文本范围,然后再次将其打开(Ctrl + F或Ctrl + H)。专家提示:如果选择内容跨越多行,它将不会替换您当前的搜索表达式。
罗伯特

3
在Mac上按Cmd + Opt + F打开查找和替换控制台。
米卡

2
我完全感到困惑,为什么没有“选择中”的键盘快捷键,特别是因为所有其他选项都没有!我真的必须将手移到鼠标上才能启用它吗?似乎与所有ST立场
背道而驰

5
@TheStoryCoder是的,这不是键盘快捷键,这很愚蠢,但是事实证明,编写该命令很容易,只是没有记录命令的名称,但是我很幸运并且猜对了。以下是添加到用户键盘绑定中的代码:{“ keys”:[“ alt + y”],“ command”:“ toggle_in_selection”,“ context”:[{“ key”:“ setting.is_widget”,“ operator” :“ equal”,“ operand”:true}]},
Owen_R

给像我一样困惑的其他人的注释:当您选择多行文本时,然后按Ctrl + H(这将打开“查找和替换”)并开始在“查找内容”字段中键入内容,选定的行将停止显示为选中状态,但是他们仍然是。如果不是那个问题,我什至都不会寻找解决方案并找到这篇文章。顺便说一句,我似乎记得以前没有这个问题,所以也许在重启之后或它会消失。
Stefan Monov

7

如果您选择的内容包含换行符,则“在选择范围内”按钮将自动激活-在ST2上

不幸的是,智能激活已在ST3上丢失。您可以在此处进行后续操作http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679


10
现在可以使用以下命令来恢复此功能:“ auto_find_in_selection”:true
mdrozdziel 2013年

不包含换行符时如何自动调用它?例如,当您有一排很长的直线跨越许多“行”时?每当我选择该行并调用搜索时,它都会禁用“选择中”选项。
user2544542

6

这是您需要添加到用户键绑定中的内容:

{ "keys": ["alt+y"], "command": "toggle_in_selection", "context":
    [
        { "key": "setting.is_widget", "operator": "equal", "operand": true }
    ]
},

是的,没有默认的键盘绑定设置是愚蠢的。

命令名称“ toggle_in_selection”也没有记录,但我猜很幸运。


编辑添加:

/*
btw, the way i want to use find by default
(actually, i use replace by default, but same dif),
is for "in_selection" to be true by default,
*unless* the selection is empty.
(
the default is that "in_selection" is *false* by default,
unless the selection contains a newline.
)
i finally got around to digging up how to get that,
which is apparently by changing the *keybindings* you use to pop open the find(/replace) panel?
*/
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": true}},
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": false},
    "context":
        [
            { "key": "selection_empty", "operator": "equal", "operand": true}
        ]
    },

默认情况下,绑定已存在。
elsadek '16

嗯 想知道为什么我会丢失它,然后...我在默认绑定中仅有的“ toggle_”是:toggle_side_bar toggle_full_screen toggle_distraction_free toggle_overwrite toggle_record_macro toggle_setting toggle_comment toggle_case_sensitive toggle_regex toggle_whole_word toggle_preserve_case
Owen_R

3

(使用Mac OS X特定的快捷方式)替换some namenew name

  1. 将光标置于文本上方
  2. 查找some namecmdf,键入some name(有时需要按return
  3. 指定替换:shiftcmdrtabtab去替换字段中,键入new namereturn
  4. 重复altcmde直到完成。

有谁知道这样做的更快方法?这是非常荒谬的并且不必要的难以记住
AJP

看到@奥利弗-G的答案- ST2这样做在默认情况下,如果您已禁用它,只需点击ctrl+H和左‘查找内容:’有titeled‘在选择’按钮
彼得

2

只需选择要搜索的文本,然后从查找菜单中单击替换。它将在您选择的范围内自动完成。


0

在选择范围内进行替换的关键是首先选择文本,然后查找>替换,然后填写要查找和替换的文本,然后选中工具栏中的“选择中”按钮,然后单击“全部替换”。 ..


0

我要添加另一个答案,因为最好的和最有用的解决方案(在我看来)被隐藏在评论中,而我几乎错过了它(感谢@mdrozdziel)。

选择要在其中搜索的文本,按Shift+调H出查找和替换工具栏。左侧的按钮组右侧有一个按钮,将激活选择范围内的搜索。

这是默认关闭的,但ST3,你可以将它设置为默认值,当您选择加入多条线路上"auto_find_in_selection": true您的喜好文件(通过输入发现AltNSEnter)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.