2009-02-06 40 views
6

我經常需要輸入文字(包括重複的字符)是這樣的:的TextMate:如何輸入字符的重複序列?

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

在Emacs,我可以做一個

C-u 60 - 

,這是一個按Ctrl + U然後是 「60」 後通過一個「 - 」,這使得輸入重複的字符序列容易。

有沒有辦法做這樣的事情在TextMate的?

+0

對於誰投下來,我很想知道爲什麼。 – PlagueHammer 2009-02-07 00:36:40

回答

4

在TextMate中,打開包編輯器,選擇語言,你想這樣做的(如果你想在所有語言的這一功能,使用Source束)點擊加號底部離開,然後選擇「新命令」。爲保存字段選擇「Nothing」,爲兩個輸入字段選擇「選定的文本或行」。然後粘貼到的命令字段:

#!/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:]) 
4

爲你提供了具體的例子,你可以按下Ctrl-Shift-B鍵,「TODO」來創建一個文本標識。

相關問題