Linux-vim的":wq"和":x",这二者究竟有什么区别呢?

Linux-vim的":wq"和":x",这二者究竟有什么区别呢?

瑾兮 发布于 2017-03-07 字数 81 浏览 1326 回复 3

我们经常使用的vim文件保存退出命令":wq"和":x",这二者究竟有什么区别呢?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

瑾兮 2017-06-18 3 楼

很小的一点区别~要仔细~

浮生未歇 2017-06-05 2 楼

:wq 不论啥时候都写入并退出,除非碰到只读的或重名等问题会失败
:x 只有修改后才会保存,若设置了 hidden 选项,在多窗口时可以保存后隐藏该窗口

值得注意的是,写入文件就会改变文件的修改时间,在引用修改时间做判断的时候,时常会有些影响,不过像是版本控制的软件一般首选还是比较文件内容,修改时间一般不加以理会。

我一般退出那些不想保存的文本时,使用的是 :q!

浮生未歇 2017-05-10 1 楼

":x"和":wq"的真正区别,如下:
:wq 强制性写入文件并退出(存盘并退出 write%quite)。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。

这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。