Melhor maneira de recuperar arquivos vim editados

2

Muitas vezes minha caixa do Linux é desligada com muitas sessões vim abertas. Para continuar meu trabalho, tenho que abrir todos os arquivos e decidir se continuo com o arquivo salvo ou com o arquivo de troca. Eu uso

for file in $(find ~/git -name *.swp); do
  gvim "$(echo $file | sed 's/.swp$//;s_/\._/_')"
done

que faz o que eu quero (sim, eu prefiro instâncias separadas de gvim sobre uma instância com vários buffers, e sim, teoricamente isso pode falhar para certos nomes de caminho que eu não tenho na vida real), mas é um maneira desagradável de roteiro.

Eu prefiro fazer algo como

find ~/git -name *.swp -exec gvim -r {} \;

mas isso não me deixa decidir se a versão salva ou a versão de recuperação é a única a continuar.

Você consegue pensar em alguma outra maneira mais direta de alcançar meu objetivo?

    
por Philippos 03.11.2017 / 14:54

1 resposta

1

Você tem um comando gvim sem opções nas quais manipula o nome do arquivo e um gvim -r no qual está passando o arquivo de troca.

Se você gosta do que o laço for faz, tente isto (que é uma versão somente bash):

find ~/git -name *.swp -exec bash -c 'f=${1%.swp}; f=${f/\/./\/}; gvim "%f"' x {} \;

Passar o "x" para o bash define $ 0 para "x", portanto, o espaço para localizar {} se torna $ 1.

    
por 03.11.2017 / 16:02