Existe um patch da dev-list para o Vim que é dito para implementar paradas de tabulação variáveis. É indicado {1} como estando em fase beta.
Obviamente, isso envolveria a compilação do vim para o (s) servidor (es) em que você deseja usá-lo.
Outra opção seria configurar um tipo de arquivo personalizado que traduza guias em espaços delimitados por algum caractere especial. Você pode configurar autocommands para disparar uma rotina de importação (ou seja, converter para colunas delimitadas) em leitura e uma rotina de exportação (para converter de volta a delimitação de tabulação) na gravação, para que ela funcione de maneira mais ou menos transparente.
Então, por exemplo, o arquivo
Column 1 header\tColumn 2 header\tcolumn 3 header
first row, column 1\tfirst row, column 2\tfirst row, column 3
seria visto no vim como algo como
Column 1 header» «Column 2 header» «Column 3 header
first row, column 1» «first row, column 2» «first row, column 3
Isso está mais ou menos no topo da minha cabeça; pode haver um pacote vimscript que implemente isso. Se não, não seria tão difícil de escrever. Você só precisa se certificar de que os caracteres delimitadores de coluna --here "" "e" «" - não sejam realmente usados no arquivo. Para um arquivo de configuração de ligação, eu pensaria que qualquer coisa não-ASCII seria segura. Para melhorar a robustez, eu acho que você poderia dar ao vim algumas opções, e fazer com que ele escaneie o arquivo para encontrar um conjunto que não estava presente no arquivo, ou simplesmente escape de qualquer um desses caracteres.
Pode ser melhor, em vez disso, preencher com caracteres que se parecem com espaços {2}, mas não são como "\ xa0" ou "\ u2002"; novamente isso só funcionaria corretamente se o caractere de preenchimento não estivesse presente no arquivo, ou se você estiver fazendo com que a rotina de importação escape daqueles que estão.
Além disso, estou assumindo familiaridade com o backquoting de estilo c: na primeira parte do exemplo, "\ t" representa um caractere de tabulação; as sequências \ xe \ u são representações de caracteres hexadecimais e unicode.
Se você acabar implementando ou encontrando algo assim, por favor me avise.
{1}: http ... groups.google.com/group/vim_dev/web/vim-patches?pli=1
{2}: http ... www.cs.tut.fi/~jkorpela/chars/spaces.html
NB: estilo de referência da velha escola ofuscado é devido à minha falta de reputação neste site.