> ## Content Index
> Fetch the complete content index at: https://www.kollr.at/llms.txt
> Use this file to discover other available public pages before exploring further.

# ~./vimrc
- URL: https://www.kollr.at/vimrc/
- Published: 2026-07-02T13:01:33.000Z
- Updated: 2026-07-02T13:12:50.000Z
- Description: Vim is available on almost every Linux distribution and remains one of the most powerful terminal-based text editors. While the default configuration works well, a few small adjustments can significantly improve usability.
- Author: Georg Koller
- Tags: CLI, Linux

In this article, I'll show the minimal configuration I use on every Linux system. It provides consistent indentation, improves copy-and-paste behavior, and configures sensible tab settings. I'll also show how to use the same configuration when editing files with `sudo`.

![](https://www.kollr.at/content/images/2026/07/vimrc-1.png)

---

# Creating Your Personal Configuration

Vim stores per-user settings in a file called `~/.vimrc`.

If the file doesn't exist yet, create it:

```bash
touch ~/.vimrc

```

Then add the following configuration:

```vim
" Use Vim's default color scheme
colorscheme default

" Enable paste mode (helps when pasting code)
set pastetoggle=<F2>

" Enable smart indentation
set smartindent

" Tab settings
set smarttab
set tabstop=4
set shiftwidth=2
set expandtab

" Character encoding
set encoding=utf-8

```

---

# What These Settings Do

## Default Color Scheme

```vim
colorscheme default

```

Vim's default color scheme is clean, easy to read, and works well in most terminal emulators. Since it's included with every Vim installation, there's no need to install additional themes.

---

## Paste Mode

```vim
set pastetoggle=<F2>

```

Pasting code into Vim can sometimes trigger automatic indentation, which may alter the formatting.

Press **F2** to toggle Paste Mode before pasting large code snippets. Press **F2** again to return to normal editing.

---

## Smart Indentation

```vim
set smartindent

```

Automatically indents new lines based on the previous line, making it easier to write structured code.

---

## Tab Configuration

```vim
set smarttab
set tabstop=4
set shiftwidth=2
set expandtab

```

These settings configure how indentation behaves:

- A tab character is displayed as **4 spaces**
- Automatic indentation uses **2 spaces**
- Pressing the **Tab** key inserts spaces instead of literal tab characters

This configuration works well for shell scripts, YAML, Ansible playbooks, and many other configuration files.

---

## UTF-8 Encoding

```vim
set encoding=utf-8

```

Ensures Vim uses UTF-8, which is the standard character encoding on modern Linux systems.

---

# Using the Same Configuration with sudo

When editing files as the root user, Vim loads **root's** configuration instead of your personal `~/.vimrc`.

For example:

```bash
sudo vim /etc/ssh/sshd_config

```

will ignore your user-specific settings unless root has its own configuration.

To keep the editing experience consistent, simply copy your configuration to the root account:

```bash
sudo cp ~/.vimrc /root/.vimrc

```

From this point on, both your regular user account and the root user will use the same Vim configuration.

Whenever you make changes to your personal `.vimrc`, update root's copy as well:

```bash
sudo cp ~/.vimrc /root/.vimrc

```

This simple approach ensures that your preferred settings are always available, regardless of whether you're editing files as your normal user or with `sudo`.

---

# Final Thoughts

A customized `.vimrc` doesn't need to be complicated. Just a handful of settings can make Vim much more comfortable to use while keeping the behavior consistent across systems.

My minimal configuration focuses on:

- Vim's clean default color scheme
- Better paste handling
- Automatic indentation
- Consistent tab behavior
- UTF-8 encoding
- The same editing experience for both regular and root users

It's a small configuration, but one that I install on every Linux system I work with.