: '"apóstrofo seguido de aspas duplas redireciona a última linha de alterações
Dhiren Hamal
Respostas:
195
Do /etc/vim/vimrcarquivo do Ubuntu , este exemplo é comentado:
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal! g'\"" | endif
endif
Se isso não funcionar, um problema comum é não ter propriedade do seu ~/.viminfoarquivo. Se for esse o caso, execute:
sudo chown user:group ~/.viminfo
onde o usuário é seu usernamee groupgeralmente é o mesmo que seu nome de usuário.
O autocmd sai diretamente do vim doc. Veja: help last-position-jump
user55400
19
Se a aspas simples na penúltima linha for alterada para um backtick, ela passará para a posição real do cursor, não apenas para o início dessa linha:\| exe "normal! g`\"" | endif
u2622
4
A chownparte resolveu o problema para mim. Tiremos o chapéu!
precisa saber é o seguinte
2
Finalmente, alguém aponta que meu .viminfo é de propriedade da raiz por algum motivo! Isso precisa estar nas outras 100 documentações que eu li.
29415 Jack
2
Só quero marcar a chown user ~/.viminfoadição com +1 . Estou tentando descobrir isso há uma hora e você acabou de salvar meu dia.
Christopher Reid
48
Se você não se importa com a automação de negociação por simplicidade, basta pressionar a tecla '"(apóstrofo, seguido de aspas duplas) ao abrir um arquivo, você vai pular para onde estava. Isto é essencialmente o que a resposta da @ marcog está fazendo.
Se você tiver o NERDTree instalado, pressionar Co duas vezes pode abrir o NERDTree no buffer atual. No meu caso, às vezes preciso pressionar Co até cinco vezes, mas eventualmente recebo o efeito descrito por @MatAff.
ashrasmun
Pressionar Ctrl-cuma vez é suficiente para mim. Além disso, pressionar Ctrl-cmais leva-me ainda mais para trás na histroy da posição do cursor (mesmo abrindo arquivos não abertos relevantes). Eu uso o Neovim 0.4.2, mas meu entendimento é que ele também se aplica vim.
T_T
7
Se você tiver o viminfo ativado, é tão simples como `0ir para a última posição do arquivo editado. Você notará que este é apenas um comando 'ir para marcar';
Na verdade, você pode mais tarde fazer '3 de ir para o terceiro local editado anterior (talvez em outro arquivo), e depois voltar para o último com `0novamente
Dê uma olhada em
:marks
para ver locais lembrados. Observe também que o viminfo armazena todos os tipos de outras coisas (como o conteúdo de registros, marcas por arquivo, comando e histórico de pesquisa). A maioria das pessoas tem isso ativado por razões óbvias
`0 não funciona para mim no vim versão 7.4.1689 no mac. Mas '0 faz o truque. Isso é um erro de digitação na resposta?
Alamoot # 17/17
@alamoot não, não é, veja vimdoc motion.txt - Verifique qual caractere sua `chave realmente gera, ou faça:verbose map `
veja
você está certo. De acordo com o vimdoc, ambos estão corretos!
Alamoot # 17/17
6
Existe um plugin chamado vim-lastplace (eu sou o autor) que abrirá seus arquivos de onde você parou. Ele aprimora as sugestões acima ignorando as mensagens de confirmação, porque você normalmente está editando uma nova mensagem e deseja iniciar na parte superior do arquivo de mensagens de confirmação.
tudo o que você pode fazer sem plug-ins é o melhor. apontar para Vimrc: quanto menor for o código o mais leve e mais rápido
nilon
1
Às vezes, ~/.viminfotorna-se somente leitura ou seu usuário não tem acesso ao arquivo. Isso também pode ser um motivo pelo qual o vim não armazena a posição do cursor quando você fecha o arquivo.
Respostas:
Do
/etc/vim/vimrc
arquivo do Ubuntu , este exemplo é comentado:Se isso não funcionar, um problema comum é não ter propriedade do seu
~/.viminfo
arquivo. Se for esse o caso, execute:onde o usuário é seu
username
egroup
geralmente é o mesmo que seu nome de usuário.fonte
\| exe "normal! g`\"" | endif
chown
parte resolveu o problema para mim. Tiremos o chapéu!chown user ~/.viminfo
adição com +1 . Estou tentando descobrir isso há uma hora e você acabou de salvar meu dia.Se você não se importa com a automação de negociação por simplicidade, basta pressionar a tecla '"(apóstrofo, seguido de aspas duplas) ao abrir um arquivo, você vai pular para onde estava. Isto é essencialmente o que a resposta da @ marcog está fazendo.
fonte
Você pode colocar isso no seu .vimrc :
as visualizações serão colocadas em $ HOME / .vim / view. Você provavelmente precisará criar esses diretórios.
fonte
Você pode iniciar o vim sem especificar um nome de arquivo usando
Em seguida, pressione CTRL + O duas vezes para ir para o último local em qualquer arquivo em que você trabalhou.
fonte
Ctrl-c
uma vez é suficiente para mim. Além disso, pressionarCtrl-c
mais leva-me ainda mais para trás na histroy da posição do cursor (mesmo abrindo arquivos não abertos relevantes). Eu uso o Neovim 0.4.2, mas meu entendimento é que ele também se aplicavim
.Se você tiver o viminfo ativado, é tão simples como
`0
ir para a última posição do arquivo editado. Você notará que este é apenas um comando 'ir para marcar';Na verdade, você pode mais tarde fazer '3 de ir para o terceiro local editado anterior (talvez em outro arquivo), e depois voltar para o último com
`0
novamenteDê uma olhada em
para ver locais lembrados. Observe também que o viminfo armazena todos os tipos de outras coisas (como o conteúdo de registros, marcas por arquivo, comando e histórico de pesquisa). A maioria das pessoas tem isso ativado por razões óbvias
fonte
`
chave realmente gera, ou faça:verbose map `
Existe um plugin chamado vim-lastplace (eu sou o autor) que abrirá seus arquivos de onde você parou. Ele aprimora as sugestões acima ignorando as mensagens de confirmação, porque você normalmente está editando uma nova mensagem e deseja iniciar na parte superior do arquivo de mensagens de confirmação.
fonte
Às vezes,
~/.viminfo
torna-se somente leitura ou seu usuário não tem acesso ao arquivo. Isso também pode ser um motivo pelo qual o vim não armazena a posição do cursor quando você fecha o arquivo.fonte