如何在TextMate中多次执行操作(Emacs和Vim都可以轻松实现!)?
时间:2020-03-05 18:53:52 来源:igfitidea点击:
Emacs:C-U(79)#
一个漂亮的79个字符的长度分隔符
VIM:79-i-#
见上文
短信:????
还是只是假设我们将进行Ruby调用或者在某处插入一个代码段?
解决方案
回答
我将创建一个bundle命令来执行此操作。
我们可以将编辑器选择作为脚本的输入,然后将其替换为执行结果。例如,此命令将采用一个选定的数字并以该次数打印字符"#"。
python -c "print '#' * $TM_SELECTED_TEXT"
当然,此示例不允许我们指定字符,但是可以使我们对可能的情况有所了解。
回答
通过采取
python -c "print '#' * $TM_SELECTED_TEXT"
再进一步,我们可以复制问题中给出的示例。
只需制作一个片段(称为除法器或者类似内容),然后将" tab trigger"字段设置为适当的"'-",然后输入类似以下内容:
`python -c "print '_' * $TM_COLUMNS"`
然后,当我们键入"-?"(破折号)时,我们应该获得正确宽度的分隔线。
没错,我们已经失去了从vim中获得的简洁感,但是重用起来要容易得多,而且只需键入一次即可。我们也可以使用任何喜欢的语言。
回答
受到其他答案的启发。使用以下代码片段:
`python -c "print ':'.join('$TM_SELECTED_TEXT'.split(':')[:-1]) * int('$TM_SELECTED_TEXT'.split(':')[-1])"`
并有选择地为其分配一个键序列,例如CTRL-SHIFT-R
如果键入-x:4
,选择它,然后调用代码段(例如,通过快捷方式),则将得到" -x-x-x-x"。
我们也可以使用:: 4
获得" ::::"。
我们重复的字符串用单引号引起来,因此要重复',必须使用'。