First, about vi
The program called by the command vi on Linux systems is actually vim, or “vi improved.”
On other Unix systems, for instance an AIX system, you may be using either vi or vim (and won’t be able to tell).
To find out about vi/vim, on the command line type:
vi
Type :q to exit.
vimtutor
At the command line, type:
vimtutor
This gives you a nice tutorial you can review if you’re interested in using vi frequently.
The basics of working in vi
To open vi, just type:
vi
If you want to edit an existing document, type:
vi filename
You start in Command Mode. You can’t edit in this mode, just do things like save and quit. To get into Insert Mode, where you can edit text, issue the single-letter command:
i
Now you’re typing. Basic navigation is easiest with the arrows on your keyboard. Move around, type and delete just like you always would. But sooner or later you’ll have to leave Insert Mode. To do this, press the
<escape>
key. You’re back in Command Mode.
Need help? Type:
:help
To simply leave, type:
:q
That’s a colon and the letter “q”. If you’ve changed text, vi will complain that you haven’t saved. To quit without saving:
:q!
The exclamation point forces the issue. Or you can choose to write your changes (i.e. save them):
:wq
If you opened vi without specifying a file name, you’ll need to supply a file name to save:
:w filename
or
:wq filename
if you’re writing and quitting.
The SourceForge Beginner’s Guide to Vim: an excelent, extensive introduction with lots of examples
A basic vi reference sheet:
The Vi Cheat Sheet at http://www.lagmonster.org/docs/vi.html
For advanced reference details:
See the Advanced Vi Cheat Sheet at http://www.lagmonster.org/docs/vi2.html.
And for really detailed information:
Jerry Peek’s The Joy of Vim series:
Part One, at http://www.linux-mag.com/id/2996/ has particularly good info on vim’s help system, and windowing and tabs in vim
Part Two, at http://www.linux-mag.com/id/2991/
Part Three, at http://www.linux-mag.com/id/3028/
Version 7 of Vim offers many new features:
See William Nagel’s “Vimming to New Heights” at
http://www.linux-mag.com/id/2906/
pico
If you find vi frustrating or just plain silly, you can use another text editor on UNM systems. (It’s not included in every Linux distribution, for instance the Fedora we’re using in this class.)
Command:
pico
pico, unlike vi, allows you to begin typing immediately. You’ll see a menu along the bottom of the terminal, which makes life much nicer.
What’s the command to save a file?
What’s the command to leave pico?
mcedit, nedit
Other terminal-based editors you may find on your system are mcedit (the Midnight Commander Editor) and nedit. Try:
mcedit filename
If you have mcedit, you’ll see a screen with function-key operations listed across the bottom of the screen.
nedit filename
will give you a menu-based editor.
gedit, kedit, nedit
If you have a graphical environment available, the next step up in text editors is XWindows-based text editors like gedit, kedit, or nedit.
All of these are clean, simple editors along the line of Microsoft WordPad. You’ll find the menus and command buttons very familiar.
Best of all, gedit is easy to invoke from a command prompt:
gedit filename
emacs
In the Unix world, emacs is the grand old text editor. Some people have accused emacs fanatics of trying to create a complete operating system from their word processor.
emacs operates in modes: text mode, Perl mode, C mode, and so forth.
You can open emacs with the simple command:
emacs
From here on, nothing is simple. emacs requires that you, the user, know a number of keyboard functions.
Some Common emacs Keyboard Functions | |
Key | Purpose |
Ctl-a | Clear your terminal’s screen |
Ctl-e | Reset your terminal to default settings |
Ctl-h | Display a user’s information |
Ctl-d | List all currently logged-in user |
Ctl-k | List current users and their tasks |
Esc-d | Show your own current logged-in name |
Ctl-x + Ctl-c | Lists your UID and GIDs |
Ctl-x + Ctl-s | Display today’s date |
Ctl-x + Ctl-w | Display this month’s calendar |
Ctl-x + u | Leave a sub-shell |
Your system may have xemacs installed. On a Red Hat-based system, you can check by commanding:
rpm -q xemacs
This is an XWindows-based version of emacs that can give you some “training wheels.”
Finally, Arachnophilia and other Unix-compatible editors
There’s one very important point to keep in mind:
Line endings in Unix are different from line endings in Windows.
Thus it’s very important which text editor you use in Windows when you’re scripting for Unix.
Enter Arachnophilia.
On the home page for this class you’ll find a link to the Arachnophilia download page. The current version is written in Java. I personally like an older version, written in Visual Basic.
Download either or both and try them out. Find the menu item that deals with line endings!
And remember, Arachnophilia ain’t the only game in town for crossing the Unix/Windows border….
Converting Windows Files
If you find you’ve uploaded (or been sent) a Windows-based text file, you always have a quick fix:
dos2unix file1 file2 …
Be sure to check out man dos2unix for some interesting options.
Resources
Unix Manuals: vi Reference: http://www.unix-manuals.com/refs/vi-ref/vi-ref.htm