vim에서 마지막에 닫은 것과 같은 줄 번호로 파일을 열려면 어떻게해야합니까?


141

vim을 중단했던 곳에서 파일을 열도록 구성하고 싶습니다.

vim 

: ' "아포스트로피 다음에 큰 따옴표가 표시
되면

답변:


195

우분투 /etc/vim/vimrc파일 에서이 예제는 주석 처리됩니다.

" 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

그래도 문제가 해결되지 않으면 일반적인 문제는 ~/.viminfo파일 소유권이없는 것 입니다. 이 경우 다음을 실행하십시오.

sudo chown user:group ~/.viminfo

사용자는 당신의 username 것이며 group종종 사용자 이름과 동일합니다.


9
autocmd는 vim doc에서 바로 나옵니다. 참조 : last-position-jump
user55400

19
두 번째 줄의 작은 따옴표가 백틱으로 바뀌면, 그 줄의 시작뿐만 아니라 실제 커서 위치로 점프합니다.\| exe "normal! g`\"" | endif
u2622

4
chown부분은 문제를 해결했습니다. 오프 모자!
slowpoison

2
마지막으로 누군가 내 .viminfo가 어떤 이유로 루트에 의해 소유되어 있다고 지적합니다! 이것은 내가 읽은 다른 100 가지 문서에 있어야합니다.
Jack

2
chown user ~/.viminfo추가 를 +1하고 싶습니다 . 나는 이것을 한 시간 동안 알아 내려고 노력했으며 당신은 내 하루를 구했습니다.
Christopher Reid

48

단순성을 위해 거래 자동화가 마음에 들지 않으면 '"파일을 열 때 키 입력 (아포스트로피 다음에 큰 따옴표)을 누르기 만하면 현재 위치로 이동합니다. 이것은 본질적으로 @marcog의 답변이하는 일입니다.


24
  :h views-sessions

이것을 .vimrc에 넣을 수 있습니다 :

  au BufWinLeave * mkview
  au BufWinEnter * silent loadview

뷰는 $ HOME / .vim / view에 배치됩니다. 이 디렉토리를 작성해야합니다.


다른 하나는 내 Mac에는 존재하지 않는 / etc / vim / 파일을 참조했기 때문에이 답변이 마음에 듭니다.
MarkHu

15

다음을 사용하여 파일 이름을 지정하지 않고 vim을 시작할 수 있습니다

vim 

그런 다음 Ctrl + O를 두 번 눌러 작업 한 파일의 마지막 위치로 이동하십시오.


NERDTree를 설치 한 경우 Co를 두 번 누르면 현재 버퍼에서 NERDTree를 열 수 있습니다. 필자의 경우 Co를 최대 5 번까지 눌러야하지만 결국 @MatAff에서 설명한 효과를 얻습니다.
ashrasmun

Ctrl-c한 번 누르면 충분합니다. 또한, Ctrl-c더 많은 것을 누르면 커서 위치 histroy에서 더 멀리 돌아갑니다 (열리지 않은 관련 파일을 열어도). 나는 Neovim 0.4.2를 사용하지만 내 이해는 그것이 또한 적용된다는 것 vim입니다.
T_T

7

viminfo를 활성화 `0한 경우 마지막으로 편집 한 파일 위치로 이동하는 것만 큼 ​​간단 합니다. 이것은 단지 '마크로 이동'명령이라는 것을 알 수 있습니다.

실제로 나중에 '3'을 수행하여 이전에 편집 한 세 번째 위치 (아마도 다른 파일)로 이동 한 다음 마지막 위치로 `0다시 돌아갈 수 있습니다

보세요

 :marks

기억 된 위치를 볼 수 있습니다. viminfo는 모든 종류의 다른 것들 (레지스터 내용, 파일 당 마크, 명령 및 검색 기록 등)을 저장합니다. 대부분의 사람들은 명백한 이유로 이것을 가능하게합니다


`0은 mac의 vim 버전 7.4.1689에서 작동하지 않습니다. 그러나 '0은 트릭을 수행합니다. 답이 오타입니까?
alamoot

@alamoot 아니요, vimdoc motion.txt 참조 - `키가 실제로 생성 하는 문자 확인 또는 수행:verbose map `
sehe

네 말이 맞아 vimdoc에 따르면 둘 다 맞습니다!
alamoot

6

vim-lastplace (저는 저자입니다) 라는 플러그인이 있습니다 . 일반적으로 새 메시지를 편집하고 커밋 메시지 파일의 맨 위에서 시작하기 때문에 커밋 메시지를 무시하여 위의 제안을 개선합니다.


플러그인없이 할 수있는 모든 것이 가장 좋습니다. vimrc의 목표 : 코드가 작을수록 더 가볍고 빠릅니다
nilon

1

때로는 ~/.viminfo읽기 전용이되거나 사용자가 파일에 액세스 할 수없는 경우가 있습니다. 파일을 닫을 때 vim이 커서 위치를 저장하지 않는 이유이기도합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.