Imacacs、私は現在のバッファが参照するファイル(特に変更時刻を変更したい)に "touch"を実行したいと思います。私はguardを使用して、ファイルが変更された後にいくつかのテストを実行しますが、時々手動で呼び出す必要があります。私はmtimeが設定されている限り、実際のシェルユーティリティタッチを実行することは気にしません。emacsの現在のファイルを "タッチ"
答えて
もちろん、これはパスにtouch
というコマンドがあることを前提としています。変数diredモードで
(defun touch()
"updates mtime on the file for the current buffer"
(interactive)
(shell-command (concat "touch " (shell-quote-argument (buffer-file-name))))
(clear-visited-file-modtime))
T
にデフォルトでバインドされたタッチコマンドがあります。このコマンドは、ユーザーにタイムスタンプを要求するため、使い方が簡単ではありません。私はそれが非常に一般的だと思うが、それは典型的には「タッチ」によって意図されていることをするのに非常に便利な方法ではない。カスタム関数より
(defun touch-file()
"Force modification of current file, unless already modified."
(interactive)
(if (and (verify-visited-file-modtime (current-buffer))
(not (buffer-modified-p)))
(progn
(set-buffer-modified-p t)
(save-buffer 0))))
私はこのようにします:スペースを挿入してから、スペースをもう一度削除して保存します。これはmtimeを変更します。
yea、これも私がやっていることですが、emacsの方法が必要です。 – spike
ええ、それは私がやることです。しかし、私はあなたを助けるlisp関数を書いています(この質問に対する私の答えを見てください)。 –
はそれを行うには、純粋なEmacsの方法です。
M-~
は、あなたはそれが反対の動作をした場合には、引数(C-u
接頭辞)、でそれを呼び出さない限り、バッファの変更フラグをクリアnot-modified
にデフォルトでバインドされています。次に、バッファを保存するだけです。
私はシェルに呼び出す必要のない「純粋な」elispソリューションが好きですが、この方法ではタイムスタンプを変更するだけで、バッファ全体を書き込んでいますファイルに? dired-modeのtouchコマンドでさえ、シェルにtouchコマンドを呼び出すよう呼び出します。本当に必要なのは、EmacsのプロセスからCでutime()を呼び出すelisp関数です。 –
@ GregMattes - 基本的には、バッファを "変更"して保存します(実際にはバッファの内容は変更しません)。 – jtahlborn
うん、まさに。コンテンツ全体が保存されているため、多くのファイルに触れていると、多くのI/Oが発生する可能性があります。たとえば質問質問者は、ファイルに触れてテストを強制することに興味があります。私は、彼がいくつかのファイル、おそらくは大量のファイルのセットに自動的に触れるようなelispを書くかもしれないと想像することができます。だから、iノードでmtimeを変更するのではなく、ファイル全体を書くことは非常に重要です。あなたのアプローチが間違っていると言っているわけではありません。実際には、外部のシェルコマンドを呼び出さずに、プラットフォームに依存しないelispですべてのことを行うことは本当にうれしいです。 –
- 1. 現在のタッチ位置
- 2. 現在のUIScrollViewのタッチをキャンセルする
- 3. 現在のemacsメジャーモードを編集する
- 4. 現在のemacsセッションでLispBoxを開く
- 5. Emacs現在のローカルキーマップの名前?
- 6. Emacsインデント/インデント解除現在の行
- 7. 私はパンゲスターゲットで以前のタッチと現在のタッチを検出したいアクションメソッド
- 8. emacsで現在のバッファ/ファイルに関する情報を取得するには?
- 9. Emacsでの現在の(非原子的な)s式の削除
- 10. Emacsシェルのリモートフォルダ上の現在のフォルダが曖昧です
- 11. emacs、現在のシェル出力を消去する
- 12. emacsでは、現在のフレームの現在の行だけをどのように強調表示しますか?
- 13. Emacs Lispで現在ロードされているファイルを参照するには?
- 14. Windows Phone画面のすべての現在のタッチの位置を取得
- 15. vimの現在の作業ディレクトリを現在のプロジェクトルートまたは現在のファイルのディレクトリに設定します
- 16. 現在の.cppファイルをコンパイルするVS2008
- 17. 現在のCSSファイルを取得
- 18. 現在のWPFアプリケーションでファイルを開く
- 19. pdf/UIImageファイルの現在の場所
- 20. PHP取得し、現在のファイルのディレクトリ
- 21. Tomcat/JSP Help:現在のファイル/ディレクトリのリスト?
- 22. Pythonは本の中で、現在のファイル
- 23. Emacsでは現在の行からファイルの最後までを削除する方法は?
- 24. Emacsファイルのナビゲーション
- 25. Jiraのクイックフィルタは、現在のユーザー現在
- 26. Pythonで現在のファイル、現在のクラス、および現在のメソッドを取得するにはどうすればよいですか?ファイルの
- 27. vimの現在のファイルと同じフォルダにファイルを開く
- 28. ファイルの変更時刻(タッチ)
- 29. iOS:現在のTableViewCellの現在のコントロールを指す方法
- 30. 現在のクライアント
これはその質問と重複していません。私はファイルを保存する必要はありません、私はちょうどファイルのmtimeが(したがって、タッチのための必要性は、@ jtahlbornの純粋なemacsソリューションではありません) – spike
私は人々が慎重に読んでいない。これは実際には良い質問です。 – Nemo