답변:
M-x revert-buffer
당신이 원하는 것을 정확하게 할 것입니다. 여전히 확인을 요청합니다.
다른 옵션 (내가 가장 좋아하는)은 다음 기능입니다.
;; Source: http://www.emacswiki.org/emacs-en/download/misc-cmds.el
(defun revert-buffer-no-confirm ()
"Revert buffer without confirmation."
(interactive)
(revert-buffer :ignore-auto :noconfirm))
(revert-buffer t (not (buffer-modified-p)) t)
.
또한이 auto-revert-mode
자동으로 수행하고 당신에게 피드백을 제공한다.
doc 문자열에서 :
auto-revert-mode is an interactive autoloaded compiled Lisp function
in `autorevert.el'.
(auto-revert-mode &optional ARG)
Toggle reverting buffer when the file changes (Auto Revert mode).
With a prefix argument ARG, enable Auto Revert mode if ARG is
positive, and disable it otherwise. If called from Lisp, enable
the mode if ARG is omitted or nil.
Auto Revert mode is a minor mode that affects only the current
buffer. When enabled, it reverts the buffer when the file on
disk changes.
Use `global-auto-revert-mode' to automatically revert all buffers.
Use `auto-revert-tail-mode' if you know that the file will only grow
without being changed in the part that is already in the buffer.
내가 사용하는 다른 옵션은에 find-alternate-file
바인딩되어 C-x C-v
있습니다. 현재 버퍼를 재사용하는 파일이 열립니다.
기본적으로 현재 사용중인 파일을 가리 키므로 입력 C-x C-v RET
하여 파일을 다시로드 할 수 있습니다. 버퍼에 저장되지 않은 데이터가 없으면 메시지가 표시되지 않습니다.
같은 일부 텍스트가 아닌 모드 image-mode
및 (렌더링 사진, PDF 파일, svgs ... 등 사용)을 dired
한 revert-buffer
바인딩 g
빠른 액세스를 위해.
C-x C-v
.
이맥스는 이것을 호출합니다 reverting
.
을 사용하여 현재 파일을 되돌릴 수 있습니다 M-x revert-buffer
. 변수에 나열된 패턴과 일치하는 파일을 제외하고 파일 수정 여부를 묻는 메시지가 표시됩니다 revert-without-query
(자세한 내용은 설명서 참조). 또 다른 문제 revert-buffer
는 파일 모드를 기본값으로 재설정한다는 것입니다.
다음 함수를 사용하여 이름으로 주어진 많은 파일을 되돌립니다. 파일이 일부 버퍼에서 열리지 않으면 무시됩니다.
(defun revert-files (&rest files)
"Reload all specified files from disk.
Only files that are currently visited in some buffer are reverted.
Do not ask confirmation unless the buffer is modified."
(save-excursion
(let ((revert-without-query '("")))
(dolist (file-name files)
(message "Considering whether to revert file %s" file-name)
(let ((buf (find-buffer-visiting file-name)))
(when buf
(message "Reverting file in buffer %s" (buffer-name buf))
(set-buffer buf)
(revert-buffer t nil t)))))))
이 기능의 일반적인 사용 사례는 버전 관리에서 파일을 업데이트 한 후입니다. 업데이트 된 모든 파일 emacsclient
을 호출 revert-files
하거나 업데이트와 관련된 모든 파일 을 호출 하는 데 사용 합니다 . 다음 쉘 스크립트를 호출하여 파일을 인수로 전달합니다.
#! /bin/sh
# Similar to gnuclient, but call `revert-files' on the files.
files=
## Find a way to convert a path to absolute. Bizarre OSes such as Windows
## require special cases. We also try to detect non-filenames such as URIs.
case `uname -s` in
CYGWIN*)
absolute_path () {
cygpath -a -w -- "$1"
};;
*)
wd="`pwd -P 2>/dev/null || pwd`"
absolute_path () {
case "$1" in
/*) printf '%s' "$1";; # ordinary absolute path
*:/*)
if expr "z$1" : 'z[0-9A-Z_a-z][-.0-9@A-Z_a-z]*:/.*'; then
printf '%s' "$1" # URI or machine:/some/path
else
printf '%s' "$wd/$1" # default to a relative path
fi;;
*) printf '%s' "$wd/$1";; # default to a relative path
esac
};;
esac
for x; do
files="$files \"`absolute_path "$x" | sed 's/[\\\\\\\"]/\\\\&/g'`\""
done
exec emacsclient -e "(revert-files$files)"
사용 예 :
svn update
find -name .svn -prune -o -type f -exec emacsclient-revert {} +
Magit은 자동으로 파일 복구를 관리하여 핵심 문제를 해결합니다. 다른 기능들도 활용할 수 있습니다.
관심있는 설정을 조정하기위한 문서 는 다음과 같습니다 .
Magit을 사용하는 경우 작업 손실을 피하기 위해 3 개의 전역 WIP 모드 (Work In Progress)를 모두 활성화 해야합니다 .
따라서 Magit을 사용하여 Emacs 내에서 버전 제어 작업을 수행하고 원래 문제를 방지 할 수 있습니다.
misc-cmds.el
. 복잡하지는 않지만 무언가를 정확하게 복사 할 때 소스를 가리키는 것이 일반적입니다.