2013-02-04 4 views
3

그래서 우분투의 Vim에 글을 쓰고 있는데, 나는 :wq을 수행하고 Vim으로 돌아갔다. 필자는 필요한 텍스트의 일부를 복사 한 다음 그 부분 인 :wq을 삭제 한 다음 Vim으로 돌아가 실수로 다른 부분을 복사했습니다. 처음에 복사 한 부분이 필요합니다. u을 누르면 이미 Vim에서 빠져 나와 다시 들어올 수 없기 때문에 이전 세션으로 돌아 가지 않습니다.Vim에서 삭제 된 행을 복구 하시겠습니까?

첫 번째 복사 된 부분을 복구 할 수있는 방법이 있습니까? Vim에서 어떤 종류의 복구가 있었거나 우분투에서 이전 복사본을 볼 수 있습니까?

도움이되면 생명을 구할 수 있으며, 감사드립니다. 감사합니다.

+0

나는 그것이 가능하다고 생각하지 않습니다. 이전에 다른 곳으로 복사하지 않았다면, 파일 시스템에는 아무 것도 없을 것입니다. vim 스왑 파일에서 정보를 복구 할 수있는 아주 작은 기회가있을 수 있지만 vim이 제대로 종료되면 삭제되므로 드라이브에서 정보를 찾은 다음 건초 더미의 바늘을 검색합니다. 두 번째 의견을 기다리십시오. 그러나 어딘가에서 만든 백업을 기적적으로 찾지 않으면 다시는 얻지 못할까 우려됩니다. – us2012

+1

지금은 도움이되지 않지만 나중에 참조 할 수 있도록 undofile 옵션을 설정하여 작업을 지속 할 수 있습니다. –

+0

(재 작성보다) 복구하는 것이 * super, super important * 인 경우 [Ubuntu documentation wiki의 DataRecovery] (https://help.ubuntu.com/community/DataRecovery)를 참조하십시오. (그리고 불행하게도 성공하지 못할 것임을 기억하십시오.) –

답변

7

yanked 텍스트가 너무 크지 않은 경우 :reg의 출력을 확인해야합니다. 당신이 잡아 먹은 것은 아마도 레지스터 1 또는 2에 있습니다.

레지스터는 세션간에 저장되지만 내용의 크기에는 엄격한 제한이 있습니다. :set viminfo?으로 시스템의 한계를 확인할 수 있습니다. 기본값은 <50s10을 포함해야합니다. 레지스터 내용이 50 줄 미만 및/또는 10KB 미만의 무게로 구성되는 경우 레지스터 내용이 저장된다는 의미입니다.

길이가 긴 두 줄을 잡아 당겼다면 괜찮을 것입니다.

이 값을 변경하려면 :h 'viminfo'을 참조하십시오.

4

내 대답은이 경우에는 도움이되지 않지만 앞으로는 세션마다 영구적 인 undofile을 사용할 수 있습니다.

이를 달성하려면 undofile 옵션을 설정해야합니다.

그것은 당신도 폐쇄하고 파일을 재개 한 후 취소 할 수 있습니다

:help persistent-undo를 참조하십시오.

이 옵션은 Vim 7.3 이후에만 사용 가능합니다.