我经常需要输入文字(由重复的字符组成),如下所示:
------------------------------------
TODO
------------------------------------
在emacs中,我可以做一个
C-u 60 -
这是一个Ctrl + U后跟一个“60”后跟一个“ - ”,这使得输入一个重复的字符序列变得容易。
有没有办法在TextMate中做这样的事情?
答案 0 :(得分:4)
对于您提供的具体示例,您可以键入Ctrl-Shift-B,“TODO”来创建文本横幅。
答案 1 :(得分:4)
在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:])