Vim의 'gf'에서 어떻게 돌아 옵니까?


187

Unix 모드로 설치된 Windows에 Vim을 사용하고 있습니다. 이 사이트 덕분에 이제 gf명령을 사용 하여 커서 아래의 파일로 이동합니다.

다음 중 하나에 대한 명령을 찾고 있습니다.

  1. 이전 파일로 돌아가 거나 (ctags의 경우 Ctrl+ 와 유사 T) 또는
  2. gf 새 창에서 새 파일을 자동으로 시작하도록 다시 매핑 하십시오.

답변:


294

나는 사용한다 Ctrl-O


43
점프 목록에서 이전 위치로 이동하려면 CTRL-O, <Tab> 또는 새 위치로 이동하려면 CTRL-I
Sébastien RoccaSerra

4
@ g33kz0r 니모닉은 O = OUT, I = IN => Ctrl-O가 나오면 Ctrl이 나타납니다. 모든 점프가 문을 통과하는 것과 같습니다.
kronn

CTRL-O는 마지막 방문한 위치로 이동합니다. 새 파일을 검색 할 때 성가신 일입니다. Shift-Ctrl-6 (내 경우에는 Ctrl-6이 작동하지 않음)을 선호합니다.
Adriano

71

내가 자주 사용하는 Ctrl- 6이를 위해.

두 파일 사이를 빠르게 앞뒤로 이동할 수 있기 때문에 편리합니다.


47

CTRL-W gf새 탭에서 파일을 여는 데 사용할 수 있습니다 .

:bd사용하거나 항상 사용 CTRL-6하고 다른 일반적인 버퍼 변경 방법으로 새로 열린 파일을 닫을 수 있습니다 .


7
탭은 버퍼보다 ​​편리 nnoremap gf <C-W>gf하며 새 탭에서 여는 데 사용 하는 것이 좋습니다.
Searene 2012

13

gf를 사용하여 파일로 내려간 후 : bf를 사용하여 다시 가져옵니다.


1
탭에 두 개의 창이 열렸고 이전 버퍼로 건너 뛰는 대신 첫 번째에 두 번째 창이 열립니다.
케니에 비트

12

그냥 사용하십시오 :e#다음 Enter- 기본적으로 마지막 (최근) 파일 편집을 말한다.


9

Ctrl-Shift-6은 하나입니다.

:e#↲ 또 다른 것입니다.


8
교대는 필요하지 않습니다. 손가락을 찌르지 마십시오.
Zathrus

6
음 나는 오래된 타이머입니다. Ctrl-6은 몇 년 전에 직장에서 사용했던 Wyse 터미널에서 vi와 함께 작동하지 않습니다. 일부는 새겨 져 있습니다. 이 콤보에서 Shift를 사용하지 않으면 손가락을 완전히 남용하는 데 거의 영향을 미치지 않습니다. 적어도 당신은 최선을 다했습니다. HTH. 손.
tzot

이것은 대체 파일 이라고 불리는 것으로 전환 됩니다 .
jpaugh

5

CTRL-W f가 작동합니다.
내장 버전이 있음을 발견하기 위해서만 이러한 명령에 대한 맵을 완성하는 데 너무 오랫동안 소비 한 것은 상당히 우울합니다.


5

귀하의 질문 2 부에 대한 답변을 모르지만 1 부로 도와 드릴 수 있습니다.

:e#

Vim은 편집중인 파일 (버퍼) 목록을 유지 관리합니다. 입력하면

:buffers

현재 편집중인 모든 파일이 나열됩니다. 해당 목록에서 옆에 %가있는 파일이 현재 파일입니다. 옆에 #이있는 것이 대체 파일입니다. : e #는 현재 파일과 대체 파일 사이를 전환합니다. 많이 입력하지 않고 F2를 : e #에 매핑하여 현재 파일과 대체 파일을 쉽게 전환 할 수 있습니다. .vimrc에 추가하여 명령을 F2에 매핑합니다.

nmap `<F2> :e#<CR>`

2
파일을 다시로드 할 수 있기 때문에 : e #을 사용하고 싶지 않다고 생각합니다. : b #는이 문제없이 동등한 기능을 수행합니다.
lambacck

좋은 지적. 다시로드하지 않고 다른 버퍼로 전환합니다.
codebunny


2

gf 또는 : n 또는 다른 명령 으로 새 파일을 열면 이전 파일이 버퍼 목록에 남아 있습니다. : ls로 열린 파일을 나열 할 수 있습니다

vim에서 버퍼 간을 쉽게 탐색하려면 다음과 같은 매핑을 만들 수 있습니다.

nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>

이제 Alt + 왼쪽 화살표 또는 Alt + 오른쪽 화살표를 사용하여 버퍼간에 전환 할 수 있습니다.

매핑에 대한 전체 설명서는 다음과 같습니다.

:help map.txt

0

gf 명령을 보지 못했지만 : e 또는 : find 명령을 사용한다고 상상합니다 .
이것이 정확하다고 가정하면 : e 또는 : find: new (또는 세로 분할의 경우 : vnew)로 바꾸면 파일이 같은 창 대신 새 창에서 열립니다.

예 :

"헤더와 cpp 간 전환
nmap, s : 찾기 % : t : r.cpp <CR>
nmap, S : 새로운 % : t : r.cpp <CR>
nmap, h : 찾기 % : t : rh <CR>
nmap, H : 새로운 % : t : rh <CR>
nmap, F : new = expand ( "<cfile> : t") <CR> <CR>
nmap, d : new = expand ( "<cfile>") <CR> <CR> 


2
gf내장되어 있습니다. 그것은 우리 모두의 것입니다. :-)
jpaugh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.