[英]Textmate: How do I enter a repeated sequence of characters?
我经常需要输入文字(由重复的字符组成),如下所示:
------------------------------------
TODO
------------------------------------
在emacs中,我可以做一个
C-u 60 -
这是一个Ctrl + U后跟一个“60”后跟一个“ - ”,这使得输入一个重复的字符序列很容易。
有没有办法在TextMate中做这样的事情?
对于您给出的具体示例,您可以键入Ctrl-Shift-B,“TODO”来创建文本横幅。
在TextMate中,打开Bundle Editor并选择您要执行此操作的语言。(如果您希望使用所有语言的此功能,请使用Source包)单击左下角的加号,然后选择“新命令。” 为“保存”字段选择“无”,为两个输入字段选择“选定的文本或行”。 然后将其粘贴到“命令”字段中:
#!/usr/bin/python
import sys
commandLine = raw_input("")
tmArgs = commandLine.split()
numberOfArgs = len(tmArgs)
for i in range(eval(tmArgs[0])):
for j in range(1, numberOfArgs):
sys.stdout.write(tmArgs[j])
然后,您可以在“激活”字段中选择一个键盘快捷键来激活它。 它的工作方式与emacs命令非常相似:键入要跟随的字符数。 然后选择它们(如果它们是线上唯一的文本,则不需要此步骤)并按快捷键。 我的脚本允许您指定要打印的多个字符,并以空格分隔。 所以,如果你输入
10 - =
并点击快捷键,你会得到
-=-=-=-=-=-=-=-=-=-=
编辑 :思考之后......这是另一个版本。 这个将在数字后打印字符串。 所以举个例子
6 -= (space)
版画
-= -= -= -= -= -=
这是那个版本:
#!/usr/bin/python
import sys
import string
commandLine = raw_input("")
timesToPrint = eval(commandLine.split()[0])
firstSpace = string.find(commandLine, " ")
for i in range(timesToPrint):
sys.stdout.write(commandLine[firstSpace + 1:])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.