我经常需要像这样输入文本(由重复的字符组成):
------------------------------------
TODO
------------------------------------
在emacs中,我可以做一个
C-u 60 -
即 Ctrl+U 后跟“60”后跟“-”,这样可以轻松输入重复的字符序列。
有没有办法在 TextMate 中做这样的事情?
对于您给出的具体示例,您可以键入 Ctrl-Shift-B、“TODO”来创建文本横幅。
在 TextMate 中,打开 Bundle Editor 并选择您希望使用的语言。(如果您希望在所有语言中都拥有此功能,请使用 Source bundle)单击左下角的加号,然后选择“新命令。” 为保存字段选择“Nothing”,为两个输入字段选择“Selected Text or Line”。然后将其粘贴到命令字段中:
#!/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:])