6

我经常需要像这样输入文本(由重复的字符组成):

------------------------------------
 TODO
------------------------------------

在emacs中,我可以做一个

C-u 60 - 

即 Ctrl+U 后跟“60”后跟“-”,这样可以轻松输入重复的字符序列。

有没有办法在 TextMate 中做这样的事情?

4

2 回答 2

4

对于您给出的具体示例,您可以键入 Ctrl-Shift-B、“TODO”来创建文本横幅。

于 2009-02-07T02:06:49.213 回答
4

在 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:])
于 2009-02-14T02:37:42.967 回答