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

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

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

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

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

E23: No alternate file

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

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

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



답변

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

: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>에 따라 이전 버퍼로 돌아가는 가장 빠른 방법 일 수 있습니다.


답변

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

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

:echo expand('#')

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


답변