Como faço para que o VIM se lembre da linha em que eu estava quando reabrei um arquivo? [duplicado]

14

Acabei de me mudar do RH / Fedora para o Ubuntu 12.04. No RedHat, quando eu reabrir um arquivo com o VIM, ele é aberto com o cursor na linha em que estava quando fechei o arquivo. No entanto, o que vejo agora é que, quando reabro um arquivo, o cursor está sempre no topo, a cada hora. Como alguns dos arquivos com os quais estou trabalhando têm 20k linhas, isso fica um pouco antigo rapidamente.

Eu instalei a versão completa do VIM através do apt-get no meu novo Ubuntu para que eu pudesse usar as teclas de seta no modo de inserção. A versão impressa é VIM - Vi IMproved 7.3.

Qualquer ajuda seria muito bem-vinda.

    
por pennyrave 17.10.2012 / 15:33

2 respostas

30

Adicione as seguintes linhas ao seu ~/.vimrc ou global /etc/vim/vimrc

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Isso saltará para a última posição do cursor conhecido, a menos que:

  • a posição é inválida
  • a posição está dentro de um manipulador de eventos
por Sentry 17.10.2012 / 15:40
9

Esta é uma configuração padrão em / etc / vim / vimrc como mencionado vim não é lembrando a última posição

Já contém recurso necessário. Só precisa descomentar:

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Este é um comando automático que procura por números de linha das expressões avaliadas. O comando g salta para a última posição se foi gravado. Usando: comandos de ajuda para BufReadPost, line () e g 'explicarão os detalhes de como isso funciona.

    
por grantbow 19.01.2013 / 03:50

Tags