2011-12-13 17 views
9

Vim (con o senza plug-in - non mi interessa) supporta il testo barrato? Mi sono ritrovato a tenere una lista di "TO-DO" in esecuzione, e vorrei essere in grado di "cross-off" i miei articoli fatti, tramite testo barrato.Testo barrato in vim?

Grazie!

+0

perché non basta cambiare l'evidenziazione per quella linea per differenziarla? – abcd

+1

@abcd 'Perché non cambiare l'evidenziazione di quella linea per differenziare? Forse perché non è COSÌ bello? :) è solo un punto della domanda, e l'autore ci ha dato esplicitamente di capire che vuole essere in grado di "crossover" i miei articoli, tramite testo barrato. Ecco perché stava cercando 'supporto barrato testo in Vim. È il desiderio e la volontà dell'autore della domanda. Perché ignorarlo? Ad ogni modo, se vuoi davvero fornire un altro modo per "tagliare" il testo in Vim, forse è meglio farlo con i dettagli (in Risposte)? – kenichi

risposta

-5

Se si utilizza Vim sotto un terminale, no non è possibile.

  1. argomenti evidenziazione per i terminali normali

           *bold* *underline* *undercurl* 
               *inverse* *italic* *standout* 
    

    termine = {attr-list} attr-list * evidenziazione termine * E418 attr-list è un elenco separato (senza spazi) del seguenti articoli (in qualsiasi ordine): grassetto sottolineatura undercurl non sempre disponibile ble invertire inversa stesso di invertire corsivo standout Nessuno No attributi utilizzati (usati per ripristinarlo)

    nota che "bold" può essere usato qui e utilizzando un carattere in grassetto. Sono hanno lo stesso effetto. "undercurl" è una sottolineatura arricciata. Quando "undercurl" non è possibile viene utilizzato "underline". In generale "undercurl" è disponibile solo nella GUI. Il colore è impostato con | highlight-guisp |. ~

Tuttavia, sotto interfaccia grafica, è possibile farlo. Sotto 'guifont', abbiamo la seguente:

For the Win32 GUI          *E244* *E245* 
    - takes these options in the font name: 
      hXX - height is XX (points, can be floating-point) 
      wXX - width is XX (points, can be floating-point) 
      b - bold 
      i - italic 
      u - underline 
      s - strikeout 
      cXX - character set XX. Valid charsets are: ANSI, ARABIC, 
       BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, 
       HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, 
       SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC. 
       Normally you would use "cDEFAULT". 

    Use a ':' to separate the options. 
    - A '_' can be used in the place of a space, so you don't need to use 
    backslashes to escape the spaces. 
    - Examples: > 
     :set guifont=courier_new:h12:w5:b:cRUSSIAN 
     :set guifont=Andale_Mono:h7.5:w4.5 
+0

E visto che guifont è globale, come faresti solo una parte del testo, stroken-out? – Rook

+0

Sì, hai ragione. Non c'è un modo per rendere una parte del testo strickeout. L'OP deve utilizzare diversi set di colori di sfondo/carattere o utilizzare l'opzione evidenziazione. –

+8

-1 [Ovviamente] (http://stackoverflow.com/a/8483044/430766) la tua affermazione è errata. – bitmask

-2

no, vim non supporta questo. è un editor di testo, non un editor WYSIWYG.

+8

-1 [Ovviamente] (http://stackoverflow.com/a/8483044/430766) la tua affermazione è errata. – bitmask

18

Se si lavora con il testo Unicode, si può essere in grado di ottenere questo utilizzando combinazioni di caratteri. Il seguente articolo descrive come questo può essere realizzato in gvim:

http://vim.wikia.com/wiki/Create_underlines,_overlines,_and_strikethroughs_using_combining_characters

Sarà necessario assicurarsi che il gvim font è utilizzare supporti i caratteri appropriati, su Windows sia Consolas e Courier New apparso per gestire questa situazione in modo corretto, ma la maggior parte degli altri no.

+1

Non riesco a farlo funzionare sotto Vim73 su XP con Consolas o Courier New. enc = utf-8, quindi è fileenc. Visualizza ancora "spazzatura". – Rook

+0

+1, funziona bene nel mio file TODO. Ho lavorato anche in TODOs nel mio codice, grazie :). – 0xc0de

+0

I caratteri combinati non funzionano con Vim74 con Consolas in ConEmu sotto Windows 7 per me. :(Ancora, buona risposta, +1 –

0

C'è un patch pending, per fare questo lavoro nella GUI. Sfortunatamente, questo è attualmente nascosto nella lista delle cose da fare, quindi ci vorrà un po ', finché non verrà applicato da Bram.

5

Andando per una soluzione più semplice evidenziando, vorrei usare una sintassi personalizzato Vim evidenziando regola in modo che, ad esempio, il testo contrassegnato in questo modo:

~~ testo ~~

viene visualizzato in un diverso colore (es.un colore di testo più scuro se si dispone di uno sfondo scuro o di colori invertiti scuri). Che sarebbe, in vimrc:

au BufRead,BufNewFile *.txt syntax match StrikeoutMatch /\~\~.*\~\~/ 
hi def StrikeoutColor ctermbg=darkblue ctermfg=black guibg=darkblue guifg=blue 
hi link StrikeoutMatch StrikeoutColor 

(dove il comando au viene utilizzato per applicare la regola a filetype .txt solo i file)

+0

Personalmente ho trovato che questa è l'implementazione migliore/più semplice Non ho bisogno di barrare la verità, ho solo bisogno di qualche indicazione che posso mappare nel mio cervello per barrare, e questo era il approccio più semplice Ho aggiunto a questo con alcuni comandi di rimappatura per soddisfare i miei gusti e ora è perfetto – Raj

2

funziona perfettamente bene con un vim unicode in un terminale.

Basta metterlo nel mio file vundle vim:

https://github.com/crux/crux-vimrc/blob/master/plugin/unicode.vim

con modalità mapping dei tasti visivi per la sottolineatura e strikethough.

+2

Mentre questo link può rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. –

+1

di seguito è ciò che è che cosa è dietro il collegamento, lasciato fuori perché non ero sicuro sull'opzione di formattare il codice qui, e ora ottenere un messaggio di errore "troppo lungo ..", (sospiro), e dopo aver provato cinque volte per ottenere il codice pre formattato inserisci qui mi arrendo ... –

2

È possibile creare un carattere barrato (singolo) aggiungendo al carattere unicode "sovrapposizione a lungo strike che combina il carattere" (0336). Ad esempio, per creare un barrato "Z", immettere (in modalità di ingresso):

Z^Vu0336 

(dove^V è CTRL-V).

È possibile utilizzare: s (sostituto) per barrato un gruppo di personaggi, ad esempio, per barrato la riga corrente:

:s/./&^Vu0336/g 

collegamenti Wikipedia: strikethrough e combining chaaracter.

Problemi correlati