netrw (Vim 파일 탐색기)에서 편집 된 버퍼로 돌아 갑니까?


2

"Practical Vim"과 Vim 도움말에 따르면 바로 가기 <C-^>가 편집 된 파일로 돌아갑니다. 를 사용하여 netrw를 입력 :E합니다.

실험으로 다음과 같이 기본 바로 가기를 다시 매핑하려고했습니다.

:nnoremap <C-y> <C-^>

사용 <C-y>하면 피드백을받습니다.

E23: No alternate file

...하지만 편집 된 버퍼로 돌아 가지 않습니다.

편집 된 버퍼로 돌아가려면 어떻게해야합니까, 또는이 문제에 대해 문서화 된 절차에 따라 리턴하지 못하게하는 원인을 찾기 위해이 문제를 어떻게 디버깅 할 수 있습니까?

주의 :에 있지 않고 명령 프롬프트에서 매핑을 설정하고 .vimrc있습니다.

답변:


4

대체 파일은 실제로 같은 창에서 이전에 열린 버퍼입니다.

:e file1
:e file2
<C-^> shows file1
<C-^> shows file2
<C-^> shows file1
…

<C-^>같은 창에서 두 버퍼 사이를 빠르게 전환하는 데 사용됩니다 .

당신은 "대체로 이해되지 않는 netrw 일 것"으로 이동하기 위해 "대체 파일"을 가지고 있지 않을 수도 있으며 여기서는 쓸모가 없습니다 <C-^>.

대신 :bd현재 버퍼 (netrw)를 삭제하고 이전 버퍼로 되돌려 놓는을 사용하십시오. :Rex언제든지 최신 netrw 창을 되찾기 위해 사용할 수 있습니다 .

파일을 열지 않으면 (netrw를 사용하여 정보를 찾습니다) 워크 플로는 다음과 같습니다.

:Ex
(exploration)
:bd
if you want to start a new exploration,
    :Ex
    :bd
if you want to explore from where you were,
    :Rex
    :bd

그러나 읽어야 :h netrw아마 당신에게 많은 도움이 될 것 이상의 명령이 있기 때문에 : :Hex[plore](AN 수평 분할 창에 netrw 열립니다) :Vex[plore], (수직 분할 창에 netrw 열립니다) :Tex[plore]이 명령은 ...합니다 (새 탭에서 netrw 열립니다) "상태"를 유지하면서 사파리로 가자.

다른 방법으로, <C-o>그리고 <C-i>당신이 가서 JumpList에 실망이 편리한 단축키입니다. 상황 <C-o>에 따라 이전 버퍼로 돌아가는 가장 빠른 방법 일 수 있습니다.


1
훌륭한 답변. :bd이 경우에 내가 찾던 것입니다. 다른 명령은 큰 창에서 좋습니다. tmux작업 공간을 분할 하는 데 사용 하기 때문에 Vim이 얻는 화면 영역은 실제로 약간 작습니다.
0xC0000022L

0

매핑이 어떻게 관련이 있는지 보지 못합니다 E23. 원래 <C-^>명령 과 동일한 오류가 발생합니다 . 대체 파일이 아직 설정되지 않았을 수 있습니다. 일부 플러그인은 :keepalt명령을 명시 적으로 사용 하여 버퍼 변경 기록을 피합니다.

당신은 통해 대체 파일 이름을 확인할 수 있습니다

:echo expand('#')

또는의 출력 :ls에서시길이있는 행을 찾으십시오 #.


답변 해 주셔서 감사합니다. 아아, 도움이되지 않습니다. 사용하면 netrw에있는 동안:ls 편집 된 파일이 에 표시됩니다 . 그러나 그것은 저를 뒤로 뛰어 넘을 수 없습니다. 이것이 내 질문의 본질입니다. 나는 미국 영어 키보드를 일반 문자로 합성 하기 가 "더 어렵 기" 때문에 주로 다시 매핑을 시도했습니다 . #^
0xC0000022L
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.