【问题标题】:How can I perform an action n-many times in TextMate ( both Emacs and Vim can do it easily! )?如何在 TextMate 中执行 n 次操作(Emacs 和 Vim 都可以轻松完成!)?
【发布时间】:2010-09-09 00:39:42
【问题描述】:

EmacsC-U (79) # » 一个漂亮的 79 个字符长度分隔符

VIM79-i-# » 见上文

Textmate:????

还是只是假设我们将进行 Ruby 调用或在某处进行 sn-p?

【问题讨论】:

    标签: macos textmate comments


    【解决方案1】:

    受到其他答案的启发。使用以下内容制作一个 sn-p:

    `python -c "print ':'.join('$TM_SELECTED_TEXT'.split(':')[:-1]) * int('$TM_SELECTED_TEXT'.split(':')[-1])"`
    

    并可选地为其分配一个键序列,例如CTRL-SHIFT-R

    如果你输入-x:4,选择它,然后调用sn-p(例如通过它的快捷方式),你会得到“-x-x-x-x”。

    您也可以使用::4获取“::::”。

    你重复的字符串用单引号括起来,所以要重复',你必须使用\'。

    【讨论】:

      【解决方案2】:

      通过采取

      python -c "print '#' * $TM_SELECTED_TEXT"
      

      更进一步,您可以复制您在问题中提供的示例。

      只需创建一个 sn-p,称为分隔符之类的,将 tab trigger 字段设置为适当的 '--',例如,然后输入类似的内容:

      `python -c "print '_' * $TM_COLUMNS"`
      

      然后当您输入--⇥(破折号标签)时,您应该得到一个正确宽度的分隔线。

      的确,您已经失去了从 vim 中获得的一些简洁性,但这更容易重用,您只需键入一次。你也可以使用任何你喜欢的语言。

      【讨论】:

      • 我遗漏了一些东西:你如何重复使用它?问题是关于执行一个动作,而不仅仅是插入一个角色。我是否必须为我想要重复的每个动作编写一个新的 Python 程序?
      【解决方案3】:

      我会创建一个捆绑命令来执行此操作。

      您可以将编辑器选择作为脚本的输入,然后将其替换为执行结果。例如,此命令将采用选定的数字并打印字符“#”该次数。

      python -c "print '#' * $TM_SELECTED_TEXT"
      

      当然,这个例子不允许你指定字符,但它让你知道什么是可能的。

      【讨论】:

        猜你喜欢
        • 2010-10-01
        • 1970-01-01
        • 2021-10-30
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-28
        • 1970-01-01
        相关资源
        最近更新 更多