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