【问题标题】:Sublime text word_separator CamelCase崇高文本 word_separator 驼峰式
【发布时间】:2013-08-03 11:08:42
【问题描述】:

崇高的文字word_separator是:

"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",

我还希望将 CamelCase 中的大小写更改视为更改。有没有设置/方法可以做到这一点?

(例如在 FooBar ctrl+bck_space 应该只删除 Bar)。

【问题讨论】:

  • 按 alt 而不是 ctrl
  • Alt + Delete 未绑定。

标签: sublimetext2 sublimetext sublimetext3


【解决方案1】:

我认为这只能通过插件来完成,而不仅仅是通过更改 Sublime Text 的设置。

这个插件看起来很有前途:
https://github.com/jdc0589/CaseConversion

【讨论】:

    【解决方案2】:

    如果有人还在看这个......

    在您的默认键绑定中,您会发现:

    { "keys": ["ctrl+left"], "command": "move", "args": {"by": "words", "forward": false} },
    { "keys": ["ctrl+right"], "command": "move", "args": {"by": "word_ends", "forward": true} },
    { "keys": ["ctrl+shift+left"], "command": "move", "args": {"by": "words", "forward": false, "extend": true} },
    { "keys": ["ctrl+shift+right"], "command": "move", "args": {"by": "word_ends", "forward": true, "extend": true} },
    
    { "keys": ["alt+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
    { "keys": ["alt+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
    { "keys": ["alt+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
    { "keys": ["alt+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
    

    使用 alt+direction 将移动“子词”而不是“词”,这会考虑驼峰式。我更喜欢默认设置,所以我将 alt+direction 设置复制到我的用户键绑定中,并用 ctrl 替换了 alt 的实例。瞧,ctrl+direction 以驼峰命名方式以及定义的单词分隔符移动。

    另外,我不确定使用 subwords 设置是否会考虑下划线,我总是在单词分隔符中添加 _ 以确保。

    【讨论】:

    • 附带说明:此设置似乎仅适用于 Windows。在 Mac 上,Alt+Left 是“按单词移动”的系统默认值 - 我必须在用户定义的键绑定首选项中手动将 Super+Left 映射到“按子词移动”
    • 子词分隔符只有_,由大写变为小写。 foo1bar 有 1 个子词,foo1Bar 有 2 个子词(foo1 + Bar),foo_bar 也有 2 个子词(foo_ + bar)
    • @Philipp 对我来说,Alt+Left 也适用于 OS X。_(下划线)不是默认的单词分隔符,因此您必须自己在用户的 Preferences.sublime-settings 中添加它。
    【解决方案3】:

    使用 alt 仅适用于移动,不适用于删除,但我发现一些效果很好:

    向前删除(alt+delete):

    delete_subword.sublime-macro:
    [
       {
          "command": "move",
          "args": {
             "by": "subwords",
             "extend": true,
             "forward": false
          }
    
       },
       {
          "args": null,
          "command": "left_delete"
       }
    ]
    

    向后删除(alt+退格)

    delete_subword_forward.sublime-macro:
    [
       {
          "command": "move",
          "args": {
             "by": "subwords",
             "extend": true,
             "forward": true
          }
       },
       {
          "args": null,
          "command": "right_delete"
       }
    ]
    

    将其保存到您的用户目录中。现在,您可以像这样绑定键:

    { "keys": ["alt+backspace"], "command": "run_macro_file", "args": {"file": "Packages/User/delete_subword.sublime-macro"} },
    { "keys": ["alt+delete"], "command": "run_macro_file", "args": {"file": "Packages/User/delete_subword_forward.sublime-macro"} },
    

    Source

    【讨论】:

    • 这实际上回答了关于按子词删除的问题!
    【解决方案4】:

    Alt + W 在 vi​​m 模式下适用于我在 sublime text 3 中遍历 camelCase 单词

    【讨论】:

      【解决方案5】:

      您可以尝试调整此动作并查看此包中提供自定义动作代码的示例代码:
      https://github.com/robertcollier4/KeyboardNavigation
      https://packagecontrol.io/packages/KeyboardNavigation

      KeyboardNavigation - 键盘移动和选择以及删除到自定义分隔符。在相邻边界之间快速导航。对于 SublimeText。

      【讨论】:

        猜你喜欢
        • 2015-12-06
        • 2013-09-29
        • 2020-02-01
        • 2016-09-14
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 2010-12-09
        • 2016-06-12
        相关资源
        最近更新 更多