gpt4 book ai didi

vim - Vim中的:update和:w有什么区别?

转载 作者:行者123 更新时间:2023-12-03 12:30:20 25 4
gpt4 key购买 nike

我意识到在gvim中使用Control+S作为:update命令。我总是使用Ctrl+S进行保存,因此我认为:update是另一种表达“刷新更改”的方式。 :update与写:w基本相同吗?如果我将:update替换为:w!,会出现问题吗?

编辑:我想将:update更改为:w!,因为我有一个文件,内容为“只读,请添加!”。我认为这是唯一的解决方案

最佳答案

这是解释:write(快捷方式:w)和:update(快捷方式:up)之间区别的另一种方式:

每当我们键入:w时,无论缓冲区是否为空,VIM都会立即将缓冲区写入文件。该表示,它将文件的时间戳更新为键入的:w的时间,即使该文件的内容并未实际更改。

就像vim帮助手册中所述,使用:up时,VIM仅在更改文件后才更新时间戳

例如,当我打开一个文件以供阅读时,但是我可能不小心(或习惯性地)键入:w:wq,并且如果我确实关心文件的时间戳(即上次修改时间),那么就没有回头路了。以下示例(在BASH shell中)显示了效果:

$ touch test.txt
$
$ stat test.txt
File: `test.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828498 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-15 22:30:52.159258193 +0800
Modify: 2014-03-15 22:30:52.159258193 +0800
Change: 2014-03-15 22:30:52.159258193 +0800

现在,让我们对文件进行VIM,并分别尝试使用 :up:w命令:
$ vim test.txt

不编辑,只需键入 :up 然后 :q
$ stat test.txt
File: `test.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828498 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-15 22:33:10.002269244 +0800 <--- Different!
Modify: 2014-03-15 22:30:52.159258193 +0800 <--- Didn't Change!
Change: 2014-03-15 22:30:52.159258193 +0800 <--- Didn't Change!

如您所见,仅访问时间被更改,这是因为我们读取(访问)文件中的数据。但是修改时间和更改时间仍然相同。

现在,让我们再次vim,并使用 :w 命令。
$ vim test.txt

不要编辑,但是这次键入 :w 然后 :q
$ stat test.txt
File: `test.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 811h/2065d Inode: 98828538 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 514/ rank) Gid: ( 514/ rank)
Access: 2014-03-15 22:40:26.728239153 +0800 <--- Different Again!
Modify: 2014-03-15 22:40:26.728239153 +0800 <--- Changed!
Change: 2014-03-15 22:40:26.728239153 +0800 <--- Changed!

现在我们可以看到 :up:w之间的区别!尽管文件中没有真正更改,但文件数据已修改,文件状态也已更改。

因此,为了避免这种情况,可以使用 :w:up命令映射到 :map :w :up命令。

关于vim - Vim中的:update和:w有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3092911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com