Por padrão, patch retira caminhos dos arquivos de destino, para que você possa aplicar o patch usando
patch < vimlatex.patch
(assumindo que exista um arquivo compiler.vim no diretório atual).
Especificar -p0 instrui o usuário a usar todo o caminho de destino, portanto, espera encontrar um arquivo chamado home/rudra/compiler.vim a partir do diretório atual. A explicação para isso é que o comando que você usou para criar o patch foi transformado antes que diff fosse executado; o comando realmente usado para criar o patch é registrado como a primeira linha do patch (basicamente, ~ se torna /home/rudra e o primeiro / é retirado):
diff --git home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim home/rudra/compiler.vim
Como resultado, patch -p0 , por padrão, espera encontrar um arquivo correspondente a home/rudra/compiler.vim (o arquivo de destino), conforme explicado acima.
Eu não acho que haja uma maneira confiável de produzir o tipo de patch que você procura, porque patch ignora explicitamente os caminhos absolutos. Eu recomendaria usar apenas diff simples com caminhos relativos:
cd
diff -u .vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim compiler.vim > vimlatex.patch
e aplicando o patch no diretório apropriado.