ultraedit的語(yǔ)法著色的配置
一款好的文本編輯器,對(duì)方便編程確實(shí)有極大的好處
除了集成開(kāi)發(fā)環(huán)境得編輯器(集成開(kāi)發(fā)環(huán)境得編輯器大部分做的都不是很好),我想大家選擇最多得還是ultraedit,不過(guò)另一個(gè)編輯器editplus(主要是我要寫(xiě)匯編程序),它在功能上絲毫不遜于ultraedit。如:在ultraedit的v11版以前好像是沒(méi)有列選擇功能的,而editplus早就有了,而且它的語(yǔ)法著色很方便,大部分你能想到的編程語(yǔ)言,在它的網(wǎng)站上都有語(yǔ)法著色的文件。如果沒(méi)有也可以自己寫(xiě)一個(gè),每種類(lèi)型的文件的語(yǔ)法著色的文件是分開(kāi)的,而且及其簡(jiǎn)單哦。當(dāng)然它也存在一些小的缺陷,如項(xiàng)目管理實(shí)在有點(diǎn)差,沒(méi)有{}的折疊功能(在我用的V2.11版是這樣的,不知后面的版本加入此功能沒(méi)有)。Ultraedit來(lái)說(shuō),它的項(xiàng)目管理功能要稍好一點(diǎn),且在v11版加入了{(lán)}的折疊功能。但是它的所有文件類(lèi)型共用一個(gè)語(yǔ)法著色文件,此文件極難理解。對(duì)我等要寫(xiě)匯編的人來(lái)說(shuō),只能望什么興什么來(lái)了。(如果是寫(xiě)51系列的匯編,keil c 的uv3集成開(kāi)發(fā)環(huán)境的編輯器已經(jīng)做的很漂亮了,不用來(lái)攪和這個(gè))
為了在Ultraedit下寫(xiě)匯編,本人對(duì)Ultraedit的語(yǔ)法著色文件瞎攪和了一陣,有點(diǎn)小心得,拿出來(lái)大家See See。
Ultraedit的語(yǔ)法著色文件是安裝目錄下的wordfile.txt文件,(改之前記得備份),我們要添加匯編的語(yǔ)法著色,就在wordfile.txt的文件尾加入。wordfile.txt中的關(guān)鍵字是以’/’開(kāi)始的,且在行首。例子如下:
如 第一行:/L10"ASM" ASM_LANGLINEComment = ; EscapeCHAR= StringCHARs = " File Extensions = ASM INC A51
/L10 /表示后為關(guān)鍵字,L表示語(yǔ)言設(shè)置開(kāi)始了,10表示第十種語(yǔ)言,"ASM"是配置時(shí)的提示字符,寫(xiě)成自己喜歡的吧,引號(hào)可別忘了;ASM_LANG這個(gè)似乎沒(méi)什么關(guān)系的,就這樣寫(xiě)吧,LINEComment = ;行注釋當(dāng)然是’;’了,(還有一個(gè)塊注釋?zhuān)瑓R編可沒(méi)有啊。)EscapeCHAR= StringCHARs = "我也不是很明白,字符串用’”’號(hào)還是知道的,F(xiàn)ile Extensions = ASM INC A51文件擴(kuò)展名,你認(rèn)為你的匯編文件的擴(kuò)展名是什么就寫(xiě)什么嘍。
第二行:/Delimiters = ~!@%^&*()-+=|/{}[]:;"<> ,#
關(guān)鍵字分割符。
第三行:/Function String = "%[a-zA-Z_?]*)[~,]"
關(guān)鍵字的組成,這個(gè)就是正則表達(dá)式,說(shuō)實(shí)在的正則表達(dá)式我也不是很明白,[a-zA-Z_?]表示以字母下劃線(xiàn)或問(wèn)號(hào)開(kāi)始,*表示后面接任意的字符。)[~,]這串東西我也不明白,誰(shuí)教我表示的是什么。
前三行從其它語(yǔ)言copy過(guò)來(lái)修改一下就就ok了,C#的比較好。
前三行一行也不能少哦,否則……
第四行:/C1"Instruction"
/C1表示此語(yǔ)言的第一個(gè)關(guān)鍵字著色區(qū),下面行的字符就是要著色的字符了。"Instruction"在菜單配置時(shí)的提示字符,可任寫(xiě)。這里我寫(xiě)的時(shí)指令。
接下來(lái):
ACALL ADD ADDC AJMP ANL
CALL CJNE CLR CPL
DA DEC DIV DJNZ
INC
JB JBC JC JMP JNB JNC JNZ JZ
LCALL LJMP
MOV MOVC MOVX MUL
NOP
ORL
POPPUSH
RET RETI RL RLC RR RRC
SETB SJMP SUBB SWAP
XCH XCHD XRL
acall add addc ajmp anl
call cjne clr cpl
da dec div djnz
inc
jb jbc jc jmp jnb jnc jnz jz
lcall ljmp
mov movc movx mul
nop
orl
popPUSH
ret reti rl rlc rr rrc
setb sjmp subb swap
xch xchd xrl
大小寫(xiě)重復(fù)了,當(dāng)然了,這東東區(qū)分大小寫(xiě),有什么辦法。
在接著:/C2"SFRegister"
/C2表示此語(yǔ)言的第二個(gè)關(guān)鍵字著色區(qū),"SFRegister"特殊功能寄存器。
A AC ACC
B
C CY
DPH DPL DPTR
EA ET0 ET1 ETX ES EX0
F0 F1
GF0 GF1
IDL IE IE.0 IE.1 IE.2 IE.3 IE.4 IE.5 IE.6 IE.7 IE0 IE1 IP IP.0 IP.1 IP.2 IP.3 IP.4 IP.5 IP.6 IP.7 IT0 IT1
P0 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 PCON PD PS PSW PSW.0 PSW.1 PSW.2 PSW.3 PSW.4 PSW.5 PSW.6 PSW.7 PT0 PT1 PX0 PX1
REN RI
SBUF SCON SM0 SM1 SM2 SMOD SP
TB8 TCON TCON.0 TCON.1 TCON.2 TCON.3 TCON.4 TCON.5 TCON.6 TCON.7 TF0 TF1 TH0 TH1 TI TL0 TL1 TMOD TR0 TR1
RB8 SCON.0 SCON.1 SCON.2 SCON.3 SCON.4 SCON.5 SCON.6 SCON.7 RI RS0 RS1
OV
a ac acc
b
c cy
dph dpl dptr
ea et0 et1 etx es ex0
f0 f1
gf0 gf1
idl ie ie.0 ie.1 ie.2 ie.3 ie.4 ie.5 ie.6 ie.7 ie0 ie1 ip ip.0 ip.1 ip.2 ip.3 ip.4 ip.5 ip.6 ip.7 it0 it1
p0 p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 p1 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 p2 p2.0 p2.1 p2.2 p2.3 p2.4 p2.5 p2.6 p2.7 p3 p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7 pcon pd ps psw psw.0 psw.1 psw.2 psw.3 psw.4 psw.5 psw.6 psw.7 pt0 pt1 px0 px1
ren ri
sbuf scon sm0 sm1 sm2 smod sp
tb8 tcon tcon.0 tcon.1 tcon.2 tcon.3 tcon.4 tcon.5 tcon.6 tcon.7 tf0 tf1 th0 th1 ti tl0 tl1 tmod tr0 tr1
rb8 scon.0 scon.1 scon.2 scon.3 scon.4 scon.5 scon.6 scon.7 ri rs0 rs1
ov
不再說(shuō)了,總的文件如下,加在wordfile.txt后面即可。然后在ultraedit中點(diǎn)菜單 高級(jí)->配置。在 文件類(lèi)型頁(yè) 加入?yún)R編的文件關(guān)聯(lián)。 在 語(yǔ)法著色頁(yè) 中語(yǔ)言欄選擇上面第一行寫(xiě)到的 ASM,顏色組中配置自己喜歡的顏色吧。你也可參考此加入自己喜歡的語(yǔ)言。
/L10"ASM" ASM_LANGLINEComment = ; EscapeCHAR= StringCHARs = " File Extensions = ASM INC A51
/Delimiters = ~!@%^&*()-+=|/{}[]:;"<> ,#
/Function String = "%[a-zA-Z_?]*)[~,]"
/C1"Instruction"
ACALL ADD ADDC AJMP ANL
CALL CJNE CLR CPL
DA DEC DIV DJNZ
INC
JB JBC JC JMP JNB JNC JNZ JZ
LCALL LJMP
MOV MOVC MOVX MUL
NOP
ORL
POPPUSH
RET RETI RL RLC RR RRC
SETB SJMP SUBB SWAP
XCH XCHD XRL
acall add addc ajmp anl
call cjne clr cpl
da dec div djnz
inc
jb jbc jc jmp jnb jnc jnz jz
lcall ljmp
mov movc movx mul
nop
orl
popPUSH
ret reti rl rlc rr rrc
setb sjmp subb swap
xch xchd xrl
/C2"SFRegister"
A AC ACC
B
C CY
DPH DPL DPTR
EA ET0 ET1 ETX ES EX0
F0 F1
GF0 GF1
IDL IE IE.0 IE.1 IE.2 IE.3 IE.4 IE.5 IE.6 IE.7 IE0 IE1 IP IP.0 IP.1 IP.2 IP.3 IP.4 IP.5 IP.6 IP.7 IT0 IT1
P0 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 PCON PD PS PSW PSW.0 PSW.1 PSW.2 PSW.3 PSW.4 PSW.5 PSW.6 PSW.7 PT0 PT1 PX0 PX1
REN RI
SBUF SCON SM0 SM1 SM2 SMOD SP
TB8 TCON TCON.0 TCON.1 TCON.2 TCON.3 TCON.4 TCON.5 TCON.6 TCON.7 TF0 TF1 TH0 TH1 TI TL0 TL1 TMOD TR0 TR1
RB8 SCON.0 SCON.1 SCON.2 SCON.3 SCON.4 SCON.5 SCON.6 SCON.7 RI RS0 RS1
OV
a ac acc
b
c cy
dph dpl dptr
ea et0 et1 etx es ex0
f0 f1
gf0 gf1
idl ie ie.0 ie.1 ie.2 ie.3 ie.4 ie.5 ie.6 ie.7 ie0 ie1 ip ip.0 ip.1 ip.2 ip.3 ip.4 ip.5 ip.6 ip.7 it0 it1
p0 p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 p1 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 p2 p2.0 p2.1 p2.2 p2.3 p2.4 p2.5 p2.6 p2.7 p3 p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7 pcon pd ps psw psw.0 psw.1 psw.2 psw.3 psw.4 psw.5 psw.6 psw.7 pt0 pt1 px0 px1
ren ri
sbuf scon sm0 sm1 sm2 smod sp
tb8 tcon tcon.0 tcon.1 tcon.2 tcon.3 tcon.4 tcon.5 tcon.6 tcon.7 tf0 tf1 th0 th1 ti tl0 tl1 tmod tr0 tr1
rb8 scon.0 scon.1 scon.2 scon.3 scon.4 scon.5 scon.6 scon.7 ri rs0 rs1
ov
/C3"Keywords"
AT
BDATA BIT
CODE CSEG
DATA DB DBIT DS DW
END EQU EXTRN
IDATA
ORG
NAME
PDATA PUBLIC
RSEG
SEGMENT
XDATA
at
bdata bit
code cseg
data db dbit ds dw
end equ extrn
idata
org
NAME
pdata public
rseg
segment
xdata
/C4"Register"
AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7
評(píng)論