use File::Modified;
my $detector = File::Modified->new(files=>[$filename]);
# [run the editor]
if($detector->changed) { # [...]
字符串 下面是一个完整的例子:
#!/usr/bin/perl
use File::Modified;
my $filename = 'myfile';
my $detector = File::Modified->new(files=>[$filename]);
my $cmd = "vi $filename";
system $cmd;
if($detector->changed) {
print "modified\n";
} else {
print "the same\n";
}
4条答案
按热度按时间bq3bfh9z1#
File::Modified
module封装了MD5和mtime检查(如果安装了File::MD5
,则首选MD5):字符串
下面是一个完整的例子:
型
lyfkaqu12#
在在线帮助中不太容易找到,但有一种方法可以退出非零。它隐藏在quickfix帮助中,这可能对寻找此答案的人也很有趣。
参见
:help cquit
或:help quickfix
以了解迭代的好处。最基本的方法是使用两种不同的方式退出.
:wq
(如果要写入文件)和:cq
(如果不写入文件(不幸的是,:cq
不提供保存文件的选项).使用不同的退出策略确实有它的好处.如果我进入文件并意识到我不希望自动化任务运行毕竟,我可以做:w
:cq
决定如何退出,是一个没有人需要的决定。下面的键图使生活变得简单。只需
Ctrl + x
退出。字符串
这里需要注意的是,即使设置了modified标志,文件也可能没有什么不同,请参见
:help modified
。注意,如果你还没有
vimrc
文件,你需要移植一个不会破坏Vim进入兼容模式的文件,比如cp /etc/vim/vimrc ~/.vimrc
zdwk9cvp3#
简单的方法是检查文件的
mtime
:字符串
r9f1avp54#
创建一个引入tmp文件的脚本:
字符串
当然,当doAction快速且安全时,您可以将rm命令移到if-then-else之外。