Desative o vi de ir para a última linha visitada após a abertura do arquivo

5

Existe algo que eu posso colocar no meu arquivo exrc para evitar que vi vá para a última linha em que eu estava na última vez que eu abri o arquivo e apenas coloquei o cursor na parte superior por padrão? >

Eu acho que é distro-específico - ele não se comporta assim no Solaris, mas faz no RHEL

Obrigado

    
por amphibient 26.12.2012 / 18:37

4 respostas

5

Este recurso é implementado como autocommand. Está configurado em /etc/vimrc - veja o snippet abaixo. Remova-o de lá ou adicione o comando para remover esse autocommand para o seu arquivo vimrc. (Eu estou usando fedora - no rhel deve ser bem parecido)

if has("autocmd")
  augroup fedora
  autocmd!
  "...
  " When editing a file, always jump to the last cursor position
  autocmd BufReadPost *
  \ if line("'\"") > 0 && line ("'\"") <= line("$") |
  \   exe "normal! g'\"" |
  \ endif
  "...
  augroup END
endif

Se você não tem permissões ou não deseja alterar /etc/vimrc , o comando para colocar seu local .vimrc para remover o autocommand é :au! <group> <cmdname> , neste caso :au! fedora BufReadPost .

    
por 27.12.2012 / 11:21
1

Este é mais um comentário do que uma resposta real. O Solaris não é uma distro do Linux. É uma versão do sistema operacional Unix. O vi no RedHat, que é uma distribuição Linux (Linux! = Unix), está simbolicamente ligado ao vim. O Solaris vi refere-se ao editor vi original criado por Bill Joy. Então não estamos falando aqui sobre os mesmos editores. Eu não tenho idéia de como o vim se comporta como eu estou usando o nvi na minha caixa do OpenBSD, que é outro clone do vi genuíno. Eu sugiro que você instale o editor vi na sua caixa RedHat primeiro e tente reproduzir o problema. Digitando vi filename.txt deve abrir o arquivo e colocar o prompt no início da primeira linha. Digitar vi + filename.txt deve abrir o arquivo na última linha. Entretanto, o vi pode ser aberto com muitas outras opções, como vi +n filename.txt , que coloca você no início da n-ésima linha ou vi +/regexp filename.txt , colocando você no início da linha que contém a primeira ocorrência da expressão regular (regexp), view filename.txt modo somente leitura. Por favor, consulte as páginas do manual para a lista completa. Não esqueça de desassociar o comando vi do vim quando instalar um vi real.

    
por 27.12.2012 / 05:42
0

Pode haver outra opção disponível para isso, mas você pode usar o seguinte trabalho em torno de

vim <filename> +1

+1 indica, para mover o cursor para a linha 1.

    
por 26.12.2012 / 18:50
0

Para se certificar de que esta função é adicionada por um plug-in, tente abrir o arquivo com

vim --noplugin <filename>

Se o cursor não pular para a posição da última edição, você deve abrir o arquivo novamente sem o --noplugin -switch e estudar a saída de :scriptnames . :scriptnames lista todos os scripts de origem anterior.

Se você é um usuário do vim semi-experiente, pode excluir a maioria dos scripts por meio do caminho. Por exemplo, todos os scripts localizados em &rtp/{ftplugin,spell,colors,syntax} (& rtp: = runtimepath) estão fora de questão.

Posso imaginar que o script que implementa esse recurso tem um nome relacionado.

    
por 26.12.2012 / 19:25

Tags