how-to-exit-vim

Activity, over time

Daily observations from the public event archive.

Attention

Daily stars & forks

Loading attention chart

Star accumulation

Cumulative stars

Loading star accumulation chart

Pull requests

Daily opens & merges

Loading pull requests chart

Conversations

Daily issues & comments

Loading conversations chart

Community

Daily accounts & reviews

Loading community chart

Releases

Daily releases

Loading releases chart

Mentions

1post · 30d
Nov 30 posts
  1. Reddit · · r/linuxupskillchallenge · u/livia2lima

    Day 6 - Editing with "vim" - Lesson video - Complementary video: Day 6 Extras - ED, sed and grep - Complementary video: Vim Crash Course INTRO Simple text files are at the heart of Linux, so editing these is a key sysadmin skill. There are a range of simple text editors aimed at beginners. Some more common examples you'll see are nano and pico. These look as if they were written for DOS back in the 1980's - but are pretty easy to "just figure out". The Real Sysadmin<sup>tm</sup> however, uses vi - this is the editor that's always installed by default - and today you'll get started using it. Bill Joy wrote Vi back in the mid 1970's - and even the "modern" _Vim_ that we'll concentrate on is over 20 years old, but despite their age, these remain the standard editors on command-line server boxes. Additionally, they have a loyal following among programmers, and even some writers. Vim is actually a contraction of Vi IMproved and is a direct descendant of Vi. Very often when you type vi, what the system actually starts is vim. To see if this is true of your system type, run: vi --version You should see output similar to the following if the vi command is actually [symlinked](19.md#two-sorts-of-links) to vim: user@testbox:~$ vi --version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Oct 01 2021 01:51:08) Included patches: 1-2434 Extra patches: 8.2.3402, 8.2.3403, 8.2.3409, 8.2.3428 Modified by team+vim@tracker.debian.org Compiled by team+vim@tracker.debian.org ... YOUR TASKS TODAY - Run _vimtutor_ - Edit a file with vim WHAT IF I DON'T HAVE VIM INSTALLED? The rest of this lesson assumes that you have vim installed on your system, which it often is by default. But in some cases it isn't and if you try to run the vim commands below you may get an error like the following: user@testbox:~$ vim -bash: vim: command not found OPTION 1 - ALIAS VIM One option is to simply substitute vi for any of the vim commands in the [instructions](#instructions) below. Vim is reverse compatible with Vi and all of the below exercises should work the same for Vi as well as for Vim. To make things easier on ourselves we can just _alias_ the vim command so that vi runs instead: echo "alias vim='vi'" >> ~/.bashrc source ~/.bashrc OPTION 2 - INSTALL VIM The other option, and the option that many sysadmins would probably take is to install Vim if it isn't installed already. To install Vim on Ubuntu using the system [package manager](15.md), run: sudo apt install vim > Note: Since [Ubuntu Server LTS](00-VPS-big.md#intro) is the recommended > Linux distribution to use for the Linux Upskill Challenge, installing Vim for > all of the other various Linux "distros" is outside of the scope of this > lesson. The command above "should" work for most Debian-family Linux OS's > however, so if you're running Mint, Debian, Pop!_OS, or one of the many other > flavors of Ubuntu, give it a try. For Linux distros outside of the > Debian-family a few simple web-searches will probably help you find how to > install Vim using other Linux's package managers. THE TWO THINGS YOU NEED TO KNOW - There are two "modes" - with very different behaviours - Little or nothing onscreen lets you know which mode you're currently in! The two modes are "normal mode" and "insert mode", and as a beginner, simply remember: "Press Esc twice or more to return to normal mode" The "normal mode" is used to input commands, and "insert mode" for writing text - similar to a regular text editor's default behaviour. INSTRUCTIONS So, first grab a text file to edit. A copy of /etc/services will do nicely: cd pwd cp -v /etc/services testfile vim testfile At this point we have the file on screen, and we are in "normal mode". Unlike nano, however, there’s no onscreen menu and it's not at all obvious how anything works! Start by pressing _Esc_ once or twice to ensure that we are in normal mode (remember this trick from above), then type :q! and press _Enter_. This quits without saving any changes - a _vital_ first skill when you don't yet know what you're doing! Now let's go in again and play around, seeing how powerful and dangerous vim is - then again, quit without saving: vim testfile Use the keys _h_ _j_ _k_ and _l_ to move around (this is the traditional vi method) then try using the arrow keys - if these work, then feel free to use them - but remember those _hjkl_ keys because one day you may be on a system with just the traditional vi and the arrow keys won't work. Now play around moving through the file. Then exit with _Esc_ _Esc_ :q! as discussed earlier. Now that you've mastered that, let's get more advanced. vim testfile This time, move down a few lines into the file and press _3_ then _3_ again, then _d_ and _d_ again - and suddenly 33 lines of the file are deleted! Why? Well, you are in normal mode and _33dd_ is a command that says "delete 33 lines". Now, you're still in normal mode, so press _u_ - and you've magically undone the last change you made. Neat huh? Now you know the three basic tricks for a newbie to vim: - _Esc_ _Esc_ always gets you back to "normal mode" - From normal mode :q! will always quit without saving anything you've done, and - From normal mode u will undo the last action So, here's some useful, productive things to do: - Finding things: From normal mode, type G to get to the bottom of the file, then gg to get to the top. Let's search for references to "sun", type /sun to find the first instance, hit enter, then press _n_ repeatedly to step through all the next occurrences. Now go to the top of the file (_gg_ remember) and try searching for "_Apple_" or "_Microsoft_". - Cutting and pasting: Go back up to the top of the file (with _gg_) and look at the first few lines of comments (the ones with "#" as the first character). Play around with cutting some of these out, and pasting them back. To do this simply position the cursor on a line, then (for example), type _11dd_ to delete 11 lines, then immediately paste them back in by pressing _P_ - and then move down the file a bit and paste the same 11 lines in there again with _P_ - Inserting text: Move anywhere in the file and press _i_ to get into "insert mode" (it may show at the bottom of the screen) and start typing - and _Esc_ _Esc_ to get back into normal mode when you're done. - Writing your changes to disk: From normal mode type :w to "write" but stay in vim, or :wq to “write and quit”. This is as much as you ever _need_ to learn about vim - but there's an enormous amount more you _could_ learn if you had the time. Your next step should be to run vimtutor and go through the "official" Vim tutorial. It typically takes around 30 minutes the first time through. To solidify your Vim skills make a habit of running through the vimtutor every day for 1-2 weeks and you should have a solid foundation with the basics. > Note: If you [aliased vim to vi](#option-1---alias-vim) for the excercises above, now might be a good time to [install vim](#option-2---install-vim) since this is what provides the vimtutor command. Once you have Vim installed, you can run :help vimtutor from inside of Vim to view the help as well as a few other tips/tricks. However, if you're serious about becoming a sysadmin, it's important that you _commit_ to using vim (or vi) for all of your editing from now on. One last thing, you may see reference to is the Vi vs. Emacs debate. This is a long running rivalry for programmers, not system administrators - vi/vim is what you need to learn. WHY CAN'T I JUST STICK WITH NANO? - In many situations as a professional, you'll be working on other people's systems, and they're often very paranoid about stability. You may not have the authority to just "sudo apt install <your.favorite.editor>" - even if technically you could. - However, vi is always installed on any Unix or Linux box from tiny IoT devices to supercomputer clusters. It is actually required by the Single Unix Specification and POSIX. - And frankly it's a shibboleth for Linux pros. As a newbie in an interview it's fine to say you're "only a beginner with vi/vim" - but very risky to say you hate it and can never remember how to exit. So, it makes sense if you're aiming to do Linux professionally, but if you're just working on your own systems then by all means choose nano or pico etc. EXTENSION If you're already familiar with vi / vim then use today's hour to research and test some customisation via your ~/.vimrc file. The link below is specifically for sysadmins: - Getting more out of Vim RESOURCES - Here is why vim uses the _hjkl_ keys as arrow keys - Graphical vi-vim Cheat Sheet and Tutorial - Vi - Vim Tutorial (video) - How to Copy, Cut and Paste in Vim / Vi PREVIOUS DAY'S LESSON - Day 5 - More or less... Some rights reserved. Check the license terms here

    12 points

Latest stargazers

The last 10 distinct accounts we observed this year.

Most active participants

PR, issue, comment & review events in the past year.

Packages

No packages found.

README badges

Embed a badge in your README or website.

  • hakluke/how-to-exit-vim reached #2 in daily stars on gitwal · Jan 8, 2020
Live mentions · last 30 days
hakluke/how-to-exit-vim mentions in the last 30 days