Vim의 최근 파일 기록?


132

GVim에서 열고 닫은 최근 파일에 액세스하고 싶습니다. GVim을 자주 열고 닫습니다. 이전 세션에서 최근 파일에 액세스하고 싶습니다.

GVim은 Word 및 다른 많은 데스크톱 앱이 저장하는 어딘가에 최신 파일을 저장합니까? 액세스하는 방법?


질문에 대한 유사 : stackoverflow.com/questions/309723/...
malgca

답변:


229

최소한 터미널 vim은 이전 10 개의 파일을 ~/.viminfo파일 표시 섹션에 저장합니다 . 당신이 사용할 수있는 '0, '1, '2, ... '9그 (것)들의 사이에서 이동합니다.

( '0메모리가 내 것보다 강력하지 않은 경우 편집 한 마지막 파일로 돌아갈 때만 유용합니다 .)

:browse oldfiles명령을 사용하여 숫자가있는 메뉴를 얻을 수도 있습니다 .


2
사용하고자하는 경우 0- 9마르크로 탐색, 수동으로 표시하지 않습니다
위안

16
:browse oldget file-list를 사용 하십시오. q편집 할 파일을 선택하려면 입력하십시오 .
songhir

5
:e #<1마지막 파일을 엽니 다 (참조) :h c_#<.
Hotschke

: bro ol works .. 그러나 많은 키를 입력해야합니다. 먼저 파일 목록을 가져온 다음 q를 누른 다음 숫자를 선택하십시오. 아래 언급 된 MRU 플러그인이 훨씬 낫습니다. stackoverflow.com/a/3171323/4752883 <leader> f를 누른 다음 hjkl 또는 다른 키 / 파일 이름으로 파일을 찾아야합니다. 그런 다음 o, enter, t 또는 v를 눌러 커서 아래에서 파일을 빠르게 엽니 다.
alpha_989

rm위에서 언급 한 방법을 사용 하여 실수로 삭제 한 파일을 복구했습니다 .
탠덤

55

내가 사용하는 가장 좋은 방법은

:browse oldfiles

vim에서 가장 쉬운 방법.


1
좋은! ~ / .vimrc에서 해당 표현식을 "nmap bo : browse oldfiles <CR>"(따옴표없이)로 매핑했습니다. Normal 모드에서 매핑 (bo)을 입력하기 만하면 해당 명령이 실행됩니다
Victoria Stuart


22

@sarnolds answer 설명-oldfiles 명령 @see : h oldfiles 또는 : h viminfo를 사용하여 파일 기록을 볼 수 있습니다.

:oldfiles 

또한 뷰와 세션으로 세분화 된 파일 관리를 할 수 있습니다 ... @see : h mkview 및 : h mksession for specifics ...


4
의 목록에서 파일 번호를 알고 나면 실제로 파일을 여는 방법을 아는 것이 유용합니다 :oldfiles. :browse@sarnold가 설명한 것처럼 명령을 사용하여 대화 형 으로이 작업을 수행 할 수 있지만 :e #<NN은 oldfiles목록 의 숫자를 사용하여 수동으로 수행 할 수도 있습니다 .
Krzysztof Adamski

11

파일 전환 CtrlP plugin 의 스위스 나이프가 있으며 , 이는 janus 배포판의 일부이기도 합니다. 그것은이 :CtrlPMRU최근에 사용한 파일 중 스마트 조회와 명령을 사용합니다.

참고 : CtrlP 에 가장 최근에 사용한 파일 목록이 유지됩니다 g:ctrlp_cache_dir."mru/cache.txt". set viminfo?파일 표시 목록이 포함 된 viminfo ( )를 재사용하지 않습니다 . 이 목록을 지우려는 경우에 유용합니다.


1
CtrlP 인터페이스가 vim 사용자에게는 직관적이지 않습니까? MRU 파일 = ~ / regexp / (perl / grep regexp ~ / _viminfo로 쉽게 수행)를 찾기 위해 간단한 작업을 수행하기 위해 복잡한 인터페이스를 배우는 데 어려움이 없습니다.
mosh

예 .. Ctrlp를 사용하는 방법을 이해하려고 노력했지만 간단한 파일 세트가 있으면 MRU를 사용하는 것이 훨씬 쉬운 것 같습니다 ( stackoverflow.com/a/3171323/4752883 ). MRU에서는 VIM 정규식 검색을 통해 필요한 파일을 찾을 수도 있습니다.
alpha_989

9

를 사용 :bro ol하여 열려는 파일에 해당하는 번호를 누르십시오.


5

CtrlP의 플러그인은 당신이 잘 명령으로 현재 디렉토리에 파일로로 최근에 사용한 파일을 통해 검색 할 수 있습니다 :

nnoremap <c-p> :CtrlPMixed<cr>

이를 통해 내장 된 Vim 명령 및 MRU 플러그인을 처리해야하는 번거 로움을 덜 수 있습니다. 둘 중 어느 것도 퍼지 파일 검색을 수행하지 않아도되므로 큰 프로젝트에서 작업 할 때 중요합니다.


기능적으로 Ctrl-P의 기본값을 다시 매핑하는 것에 대해 저항력이있는 사용자의 경우 : Ctrl-P를 정상적으로 열고 Ctrl-F 또는 Ctrl-B를 사용하여 모드 간을 전환 할 수 있습니다 (MRU 중 하나임)
Gustavo Matias


2

여기 주석 (http://stackoverflow.com/questions/571955/undo-close-tab-in-vim)에서 볼 수 있듯이 파일은 여전히 ​​버퍼에 열려 있습니다.

:ls " get the buffer number
:tabnew +Nbuf " where N is the buffer number

예를 들어 새 탭에서 세 번째 버퍼를 다시 열 수 있습니다 (탭을 사용하지 않는 경우 : e 사용).

:tabnew +3buf

1
그렇습니다. 그러나 편집자의 임무는 일을 쉽게 만드는 것입니까? 명령을 실행해야하는 경우 시각적으로 무언가를 식별하고 ID를 기억 한 다음 사용자 시간을 낭비하는 다른 명령을 실행하십시오. 당신의 대답은 맞습니다. 저는 범죄를 의미하지는 않지만 Vim의 킬러 기능 중 하나를 만들지는 않습니다!
artfulrobot 2013

나는 같은 문제가 있었다. buffexplorer를 사용해 보셨습니까? ls와 : tabnew + Nbuf를 결합합니다. 이제 버퍼 목록을 열고 한 번의 키 입력 (o, t, v) 등으로 새 탭 등에서 열 수 있습니다.
alpha_989

2

다음을 사용하여 명령 행에서 목록에 액세스 할 수 있습니다.

grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'"$HOME"','

설명:

grep '^>' ~/.viminfo  #find the list of recent files
cut -c3-              #remove the first 2 characters
sed 's,~,'"$HOME"','  #replace ~ with absolute path

이것을 정기적으로 사용하면 bash 별칭을 가질 수 있습니다

alias vim_mru="grep '^>' ~/.viminfo|cut -c3-|sed 's,~,'\"$HOME\"','"

2

fzf가 이전에 언급되지 않았기 때문에 여기에 2 센트를 추가하는 것은 훌륭한 도구입니다.
fzf.vim 에는 :History가장 최근에 사용한 파일을 퍼지검색하고 입력하는 동안 검색 할 수 있는 명령이 있습니다 .
fzf가 검색 결과 목록을 가장 정확하게 일치시키지 않도록하여이 명령의 (기본) 동작을 사용자 정의합니다. 일치하는 모든 파일 이름의 순서가이 파일이 마지막으로 사용 된 순서로 유지되기를 원합니다.
이 사용자 정의를 수행하기 위해 .vimrc에 다음을 추가 History하여 fzf.vim 플러그인에 의해 정의 된 기본 명령 을 대체했습니다 .

    command! -bang -nargs=* History
      \ call fzf#vim#history({'options': '--no-sort'})

1

한 번 더 그하자를 플러그인하는 것은 당신이 마지막으로 수정 된 것들의 목록에서 파일을 선택입니다입니다 staritfy . 시작 화면이 가장 최근에 수정 된 파일 목록으로 바뀝니다. 나중에 언제든지 :Startify명령을 사용하여이 페이지를 열 수 있습니다 .


1
설치를 시작할 수도 없었습니다. 기본 설치 및 사용법에 대한 추가 문서가 필요합니다. 설치 및 사용이 쉽기 때문에 MRU 사용.
mosh

1

:ls 왼쪽 열에 버퍼 번호가있는 최근 파일을 나열합니다.

그런 다음 :b{buffer-number}점프하십시오.

예 : :ls파일 목록을 보여줍니다. 내가 방문한 마지막 파일로 이동하고 싶습니다. :b3저를 데려 갈 것입니다.

더 빠른 검색을 위해서는 .vimrc 파일 :ls과 같은 것으로 매핑 <Leader>.하십시오.


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