Como habilito o destaque de sintaxe para .bash_aliases no vim?


19

Estou trabalhando na reorganização da minha .bashrc. Mudei meus aliases para .bash_aliases(que é originário de .bashrc, mas não consigo descobrir como habilitar o realce de sintaxe para este arquivo. vimParece incapaz de descobrir em qual idioma o arquivo está. Funciona bem .bashrc. Alguma idéia?

Respostas:


12

Vá para o vim e execute:

:echo $VIMRUNTIME

Normalmente, o valor será algo como:
/ usr / share / vim / vim72
Em seguida, edite (usando o root) o arquivo /usr/share/vim/vim72/filetype.vim
Pesquise bashrc.
Você encontrará uma linha parecida com esta:

au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")


Edite a linha e adicione seu nome de arquivo (.bash_aliases).

É isso, agora deve funcionar.


Perfeito! Isso resolveu meu problema.
Matthew

5
Você não deve editar a distribuição do vim (arquivos em / usr / share / vim). Suas alterações podem ser substituídas quando você atualiza o vim. Em vez disso, você deve criar seu próprio script que faça o mesmo (ou a adição dessa linha ao seu vimrc faria isso).
idbrii 9/09/11

11

A resposta está nisto: vimdoc - setf, mas para lhe ajudar , se você quiser que a sintaxe e o destaque da sintaxe funcionem, você pode:

  :setf bash

Outra possibilidade que eu acabei de perceber quando estava respondendo a outra pergunta do VIM era que você também podia adicionar esta seção ao seu arquivo .vimrc e habilitaria automaticamente o destaque de sintaxe para o arquivo .bash_aliases sempre que você o editar sem precisar de uma modelagem ou ter que manualmente digite : setf bash toda vez que você abrir o arquivo.

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END
endif

Em terceiro lugar, como Mugen Kenichi abaixo nos comentários aponta, você também pode adicionar uma modeline ao arquivo .bash_alias da seguinte forma:

# vim: set filetype=bash: 

e / ou adicionar um modeline ao seu arquivo festa vimdoc.sourceforge.net/htmldoc/options.html#modeline
Matthias Krull

@Mugen Kenichi - Oh boa captura lá! Eu nunca uso modeline, mas já vi isso em arquivos antes.
Pharaun 20/08/10

3
Isso realmente me ajudou muito, obrigado pessoal. Uma coisa que eu tinha que fazer, era que eu tinha que definir o tipo de arquivo para sh em vez de bash, mas eu provavelmente deve apenas encontrar um bom arquivo vim festa em vez disso, como que iria resolver o meu problema assim: p
ICCO

O meu VIM 7.3 da cygwin também não sabe sobre "filetype = bash". Se você ler filetype.vim, "sh" será usado como tipo de arquivo para todos os outros padrões do bash.
Bogdan Calmac

Apesar do fato de eu achar que a .vimrcedição é mais confiável, as modelagens do VIM são incríveis! Obrigado.
4wk_

1

Adicione a seguinte linha ao ~ / .vimrc (crie-a se ela não existir).

au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")

0

Acompanhe a resposta do @ Pharaun para o vim 8 e vários arquivos de alias. Para obter o realce correto, foram necessárias duas configurações. Primeiro no novo arquivo .bash_aliases:

# vim: set filetype=bash

Bem como a verificação no meu .vimrc

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile *_aliases set filetype=sh
  augroup END
endif

Observe que o tipo de arquivo é sh e o curinga * para vários nomes de arquivos.

Não sei por que essas duas configurações são necessárias. Tentei usar apenas uma configuração, mas os dois combos eram necessários para que o realce estivesse correto.


Eu uso o vim 8, mas não preciso da modeline (# vim ...). Basta definir o tipo de arquivo como sh no meu vimrc. De alguma forma, o tipo de arquivo não deve, bashmas apenas sh.
Jinghao Shi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.