2017-09-07 60 views
0

在macOS Sierra上,Terminal.app和iTerm2中的Vi(m)7.4+突出顯示,黑色顯示斜體標記。這包括Markdown文件中的*example*和TeX文件中的\emph{example}Vim 7.4+在macOS上突出顯示黑色斜體

GUI MacVim正確地將這段文字斜體。

即使運行準系統command vi -u NONE test.md +"syntax on"(其中test.md包含*example*)從Terminal.app,這個錯誤仍然出現。

充其量,我想讓iTerm2識別並斜體顯示這段文字。最糟糕的是,我想至少停止突出顯示黑色文字。

回答

0

閱讀vim的源代碼表明它能夠做斜體。

修復這將是一個正確的終端描述。斜體字在4-5年前才變得流行,而MacOS的ncurses終端數據庫的拷貝比這個要舊得多。

有在ncurses的郵件列表中的一些recent discussion of iTerm2和更新的終端描述導致:

# Reconstructed via infocmp from file: /usr/local/ncurses/share/terminfo/i/iterm2 
iTerm2.app|iterm2|terminal emulator for Mac OS X, 
    am, bce, hs, mir, msgr, npc, xenl, xon, 
    colors#0x100, cols#80, it#8, lines#24, pairs#0x7fff, wsl#50, 
    acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
    bel=^G, [email protected], bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J, 
    cnorm=\E[?25h, cr=\r, csr=\E[%i%p1%d;%p2%dr, 
    cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n, 
    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, 
    dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, dsl=\E]2;\007, ed=\E[J, 
    el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 
    flash=\E[?5h$<200/>\E[?5l, fsl=^G, home=\E[H, 
    hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%[email protected], ich1=\E[@, 
    il=\E[%p1%dL, il1=\E[L, ind=\n, kEND=\E[1;2F, kHOM=\E[1;2H, 
    kLFT=\E[1;2D, kRIT=\E[1;2C, [email protected], [email protected], [email protected], kbs=^?, [email protected], [email protected], 
    kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
    kdch1=\E[3~, kend=\EOF, [email protected], kf1=\EOP, kf10=\E[21~, 
    kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, 
    kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~, 
    kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, 
    kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf3=\EOR, 
    kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, 
    kf9=\E[20~, khome=\EOH, kind=\E[1;2B, knp=\E[6~, kpp=\E[5~, 
    kri=\E[1;2A, op=\E[0m, rc=\E8, rev=\E[7m, ri=\EM, 
    ritm=\E[23m, rmacs=^O, rmam=\E[?7l, 
    rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
    rmso=\E[m, rmul=\E[m, 
    rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, 
    setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 
    setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 
    sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 
    sgr0=\E[m\017, sitm=\E[3m, smacs=^N, smam=\E[?7h, 
    smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, 
    smul=\E[4m, tbc=\E[3g, tsl=\E]2;, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, 

要使用,您將它保存到一個文件,並運行tic編譯它(和當然,設置TERMiterm2)。 iTerm2在默認情況下將TERM錯誤設置爲「xterm」,但這不正確。

+0

This Works,thank you。我想要一個更優雅的解決方案,但是你建議蘋果公司負責。 – gmarmstrong

+0

是的 - 如果你有一些附加組件,比如MacPorts,那似乎會得到更頻繁的更新(但是快速檢查顯示最近的版本是幾周前...) –