Come posso eseguire un comando vim specifico quando apro un file con una determinata estensione?


9

Voglio che tutti i miei file che finiscono .texabbiano una lunghezza di riga 80. Quindi ogni volta che apro un .texfile in vim scrivo :set tw=79. Cosa metterei nel mio .vimrc per automatizzare questo?

Che cosa succede se ho voluto che lavoro con un elenco specifico di tipi di file, ad esempio, .md, .txt, e .tex?

Risposte:


10

Invece di controllare l'estensione e impostare la larghezza del testo di conseguenza, puoi semplicemente creare un file tex.vim(il nome deve corrispondere al tipo di file) in .vim/ftplugin/o per Windows $HOME/vimfiles/ftplugin/e impostare la larghezza del testo lì. Questo ti aiuterà a mantenere pulito il tuo .vimrc.

Il tuo .vim/ftplugin/tex.vimfile sarebbe simile a:

setlocal textwidth=79

Come ha detto 8bittree nei commenti, devi anche abilitare filetype pluginsnel tuo vimrc (non so perché nessuno lo abiliti):

filetype plugin on

Leggi questo per maggiori informazioni: http://vim.wikia.com/wiki/Keep_your_vimrc_file_clean


2
Ti consigliamo inoltre di assicurarti che i plugin del tipo di file siano abilitati .vimrccon filetype plugin on.
settembre

8

In ~/.vimrcpuoi aggiungere la seguente riga:

au BufReadPost,BufNewFile *.md,*.txt,*.tex setlocal tw=79

Per comandi extra, separali da |.

Questo imposterà le tue impostazioni subito dopo aver letto il file o aver aperto un nuovo file nel buffer per estensioni specifiche.


2
setpuò accettare qualsiasi numero di impostazioni. Qualcosa del genere set tw=79 nowrap formatoptions+=jfunzionerà. Non c'è bisogno di un |(a meno che tu non voglia chiamare un comando diverso, ovviamente) ;-)
Martin Tournoij,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.