Sublime Text:让光标留在贴上?

时间:2013-03-18 21:48:43

标签: sublimetext2 sublimetext

例如:

<div>somestuff</div>
<div>somemorestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>

想要为每个人分配class="abc"

现在我意识到有一个Ctrl + Alt + Arrows来“雕刻”一个垂直的游标路径(整洁的技巧!)之后我可以粘贴到我的班级,但是如果我的div被分开那将无法工作通过某些方式。

所以我想粘贴:

<div class="abc">somestuff</div>
<div>somemorestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>
<div>somestuff</div>

但它把我的光标放在这里

<div class="abc"|>somestuff</div>

我希望它留在这里

<div| class="abc">somestuff</div>

这样我就可以重复 Ctrl + V

3 个答案:

答案 0 :(得分:3)

我要做的是选择<div,然后执行 CTRL + D 选择每个相同的文本。然后你可以相应地移动每一个光标。

答案 1 :(得分:3)

我认为实现所需目标的最佳方法是使用命令split selection into lines Ctrl + Shift + L (Mac上的 Cmd + Shift + L )。

  1. 选择您需要修改的所有行
  2. Ctrl + Shift + L
  3. 将光标(带箭头键)移动到要粘贴代码的位置
  4. 粘贴您的代码。
  5. 如果您确实希望光标停留在粘贴文本的开头,则可以创建插件。 Tools/New Plugin...

    import sublime_plugin
    
    
    class PasteAndResetCursorPositionCommand(sublime_plugin.TextCommand):
        def run(self, edit):
            start_region = self.view.sel()[0]
            self.view.window().run_command("paste")
            self.view.sel().clear()
            self.view.sel().add(start_region)
    

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

    然后将密钥绑定添加到Key Bindings - User

    { "keys": ["ctrl+alt+shift+v"], "command": "paste_and_reset_cursor_position" }
    

    当然,您可以使用您喜欢的快捷方式。

答案 2 :(得分:0)

我喜欢插件解决方案,并且认为还有一个一个解决方案值得一提,特别是因为这个问题特别要求反复简单地点击“down,ctrl + v”...... / p>

将光标放在要输入文本的位置,然后使用shift+ctrl+down将光标点“乘以”到必要的行数。输入您想要的内容,然后点击esc返回单点光标。

与@ derek_duncan的答案类似,但是通过更细粒度的控制,假设您正在编辑的文本与示例中一样排列。