Vim criando arquivos

1

Existe alguma configuração para o vimrc que altera as permissões que ele define no arquivo se estiver criando um arquivo? Por exemplo, se eu criar um arquivo agora é 664, mas eu gostaria que fosse o padrão 755. Alguém sabe da configuração que eu posso colocar no vimrc para fazer isso?

    
por csteifel 23.02.2012 / 20:28

5 respostas

4

Você não pode fazê-lo no seu .vimrc, mas se você definir sua umask adequadamente no ambiente onde o Vim é iniciado, você pode (principalmente) realizar o que deseja. Veja o artigo da Wikipedia sobre ask .

O Umask não será padronizado para executável em arquivos (a menos que o programa que está criando o arquivo solicite a permissão de execução na criação), mas será feito nos diretórios. No entanto, mesmo se você puder, jjlin está correto, você nunca deve ser padrão para executável em arquivos; altere-o apenas conforme necessário. Isso é facilmente alcançado fazendo algo como " :!chmod a+x % " dentro do Vim.

    
por 23.02.2012 / 21:10
2

Os arquivos não devem ser executados, por isso, mesmo se vim tivesse esse recurso, você não deveria usá-lo. Defina o bit executável caso a caso.

    
por 23.02.2012 / 20:49
1

Como já foi mencionado, você não deve ever criar arquivos com o bit executável definido por padrão. O mecanismo padrão para configurar as chamadas máscaras de criação de arquivos é controlado por umask . O comando umask pode ser usado para visualizar e definir esses valores para o ambiente atual. No entanto, você só precisará definir o bit executável em seus arquivos sempre que isso for realmente necessário - ao escrever scripts e outros. Então, seria melhor criar, por exemplo, uma função bash wrappy para fazer exatamente o que você deseja:

vimx() { vim "$@" && chmod +x "$@"; };

Cole isso no arquivo ~/.bashrc e execute source ~/.bashrc . Agora, sempre que você executar vimx , o arquivo será salvo com o bit executável definido.

Se você quiser apenas uma execução de teste em um arquivo aberto (sem +x permissions), basta executar o seguinte comando a partir de vim para testar seu script (aqui bash script):

:!bash %
    
por 23.02.2012 / 22:30
0

Como os outros escreveram, você não deve apenas configurar a permissão de execução em todos os arquivos que você escreve. Por outro lado, se você está criando um novo arquivo em alguma linguagem de script, presumivelmente você quer executá-lo, então por que não salvar algumas teclas.

Para criar automaticamente novos scripts de shell por você, coloque o seguinte em seu arquivo ~ / .vim / after / ftplugin / sh.vim.


au BufWriteCmd <buffer> call s:BufWrite(expand("<afile>"))

function s:BufWrite(file)
    if v:cmdbang == 1
        let bang = "!"
    else
        let bang = ""
    endif

    if glob(a:file) != ""
        exe 'w'.bang a:file
    else
        try
            exe 'w'.bang a:file
        finally
            exe '!chmod u+x' a:file
        endtry
    endif
endfunction

    
por 23.02.2012 / 22:21
0

Se você estiver interessado em criar o recém-criado estilo Unix #! arquivos de scripts executáveis quando você salvá-los pela primeira vez, então você pode achar útil o plugin vim-eunuch de Tim Pope. Ele inclui alguns “autocommands (undocumented ) que farão um chmod +x em um novo arquivo cuja primeira linha começa com #! (ex. #!/bin/sh ) imediatamente após salvá-lo pela primeira vez .

Não documentado no sentido de que eles não são mencionados no arquivo README.

    
por 24.02.2012 / 06:14

Tags