Baeldung Pro – Linux – NPI EA (cat = Baeldung on Linux)
announcement - icon

Learn through the super-clean Baeldung Pro experience:

>> Membership and Baeldung Pro.

No ads, dark-mode and 6 months free of IntelliJ Idea Ultimate to start with.

Partner – Orkes – NPI EA (tag=Kubernetes)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

1. Introduction

Vim is a powerful tool distributed with most Linux and Unix systems, including macOS. Whether an editor of choice or a quick way to write git commit descriptions, at times it can be quite confusing.

In this article, we will decipher the basics everyone should know: how to save and quit.

2. Save and Quit

First, let's assume we already know how to open a file and edit it. Vim, by default, starts in normal mode, also known as command mode. This mode is where we will be writing our commands. We can use the Esc key to switch from insert mode back to normal mode.

When we open a file, Vim creates a buffer. In essence, this is a temporary copy of the file's contents. Thus, to save our changes we override the original file with this buffer. The :w command, a shorthand version of :write, will do exactly that:

:w

Perhaps, we may want to save the buffer to a different file. We could also be working with a buffer that is not associated with any file. In these cases, the destination path can be provided as an argument. It can be an existing file or a new one we wish to create:

:w {file path}

Now, that we have saved our changes, we may want to exit. The :q command, a shorthand for :quit, quits the current buffer:

:q

Assuming we are working with one file or buffer, that will also quit the application.

Vim gives a helpful warning and terminates the action if anything goes wrong. Attempting to quit when we have unsaved changes is one such scenario. Another is opening the file in read-only mode and then deciding to modify and save it. In both cases, we can force the action with a trailing !:

:w!
:q!

Note, although ! in our context forces the action, it does not have universal meaning in Vim.

3. Combining Commands

The :wq command will do save and quit together:

:wq

The scenarios separately discussed for saving and quitting can happen here as well. For example, we will need to provide a destination file path when we attempt to save an unnamed buffer:

:wq {file path}

Likewise, when we need to make modifications after opening the file in the read-only mode, we can force save and quit:

:wq!

There is another useful command. The :x command, a shorthand for :xit or :exit, will also save and quit:

:x

However, there is one key difference. Unlike :x, the :w and :wq commands will change the last modification date even when there are no changes made to the file's contents. Important to consider, in case processes get triggered by such changes.

4. Conclusion

This was a quick introduction to saving and quitting in Vim. Certainly, the built-in help will give more information if we run the :help save or :help quit commands.