2011-08-18 16 views
8

Se abilito la modalità di ingresso di bash utilizzando set -o vi, quindi premere Esc seguito da v, ottengo una finestra VI che mi permette di modificare un file temporaneo che viene eseguito una volta lascio . In quella finestra mi piacerebbe vedere l'evidenziazione della sintassi di Vim per gli script di Bash. Non è sufficiente eseguire :syntax enable. Il problema potrebbe essere correlato al fatto che il file temporaneo non ha una terminazione .sh né una testa #!/bin/bash che potrebbe essere utilizzata per determinare il tipo di file.evidenziazione della sintassi in modalità VI-input Bash

+0

Cosa produce l'output di 'echo $ EDITOR'? Potrebbe essere che in realtà stai chiamando 'vi' o' vim' in modalità compatibile invece di 'vim'. 'vim' di solito può raccogliere il tipo di file da euristiche come la linea shebang. –

+0

questa soluzione sarebbe applicabile? http://stackoverflow.com/questions/5487338/vim-set-filetype-txt-for-every-new-file-no-name Fondamentalmente imposta il tipo di file su un valore predefinito se non viene rilevato. – numbers1311407

+0

_Il problema potrebbe essere legato al fatto che il file temporaneo non ha .sh ending_ Heh, potresti aver risposto alla tua stessa domanda .... – RustyTheBoyRobot

risposta

7

Aggiungi questo al vostro .vimrc

if expand('%:t') =~?'bash-fc-\d\+' 
    setfiletype sh 
endif 

i file temporanei sono della forma bash-fc-3537253897, quindi la regex se il file inizia con bash-fc- e applica il tipo di file.

7

userei la formulazione più breve:

au BufRead,BufNewFile bash-fc-* set filetype=sh 

Credo che questo tipo di autocmd è il modo canonico di gestire le assegnazioni filetype (almeno, il mio Vimrc ha un certo numero di loro).

@Eric Fortis, per favore conferma o correggi se c'è un motivo per cui l'hai fatto diversamente.

Problemi correlati