繁体   English   中英

Textmate:如何输入重复的字符序列?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM