como desabilitar o loadview no vimdiff

1

Estou tentando desativar o recurso no vim que lembra onde eu estava, quando estou usando o vimdiff. a razão para isso é simples, eu não quero perder uma mudança que rolou para fora da vista.

Eu encontrei muita documentação no mkview e loadview, mas nada sobre como desativá-los. Alguém sabe como desabilitar loadview.

uma parte interessante disso é que, como o arquivo que está sendo comparado a ele pode ter código extra no início, ele precisa corresponder à posição inicial de qualquer arquivo que seja maior.

Eu resolvi metade do problema graças ao garyjohn.

if &diff
   au BuffWinEnter * 1
endif

o problema restante é quando o arquivo que eu estou comparando é mais alto, então a rolagem para a primeira linha do meu arquivo alterado não exibe todas as alterações no arquivo antigo.

no conceito o que eu preciso fazer é

1.) detect if vim is in diff mode
2.) scroll to the first line of the new file
3.) switch panes to the old code
4.) scroll to the top of hte changed file
5.) switch back to the new file
    
por Fire Crow 17.05.2012 / 23:24

1 resposta

1

Não tenho certeza de qual recurso você quer dizer, mas acho que você quer dizer o salto automático para a última posição do cursor descrita aqui:

:help last-position-jump

O comando automático que implementa esse recurso não é parte do próprio Vim, mas é frequentemente adicionado ao / etc / vimrc ou / usr / share / vim / vimrc por distribuições Linux como o Fedora. Se esse for o recurso que você deseja desativar, uma abordagem seria adicionar mais condições a esse autocommand, talvez

au BufReadPost *
\ if line("'\"") > 0 && line("'\::) <= line("$") && !&diff && (v:progname !~ "diff") |
\   exe "normal! g'\"" |
\ endif

Outra abordagem seria adicionar um novo comando automático ao seu ~ / .vimrc para ir para o topo do arquivo, se você estiver no modo de comparação, por exemplo,

au BufWinEnter * if &diff || (v:progname =~ "diff") | 1 | endif
    
por 18.05.2012 / 02:03

Tags