Difference between revisions of "Vim"

From ArchWiki
Jump to: navigation, search
m (translation, a small piece of text about vimtutor)
m (added freely distributable quickstart guide.)
Line 57: Line 57:
 
</pre>
 
</pre>
 
vim will open the tutor file.
 
vim will open the tutor file.
 +
 +
==VIM quick start guide==
 +
 +
*1. How to start vim
 +
*2. How to exit vim
 +
*3. How to enter text
 +
*4. How to move cursor
 +
*5. How to insert text
 +
*6. How to delete text
 +
*7. Copy, cut and paste
 +
*8. How to search for word
 +
*9. How to substitute text
 +
 +
How to start vim
 +
 +
* to start vim and edit a file (new or existing)
 +
 +
vim file_name
 +
* to start vim and open a new file
 +
vim
 +
 +
You can give the stuff you typed in a name when later you save it as a file.
 +
 +
How to exit vim
 +
 +
* save your file before you exit: press ESC, then type
 +
 +
:wq
 +
 +
or
 +
:x
 +
or
 +
ZZ
 +
 +
* save your file as newname before you exit: press ESC, then type
 +
 +
:wq newname
 +
 +
* Exit without saving, press ESC, then type
 +
 +
:q
 +
 +
* Forced quit
 +
 +
If :q doesn't work, it's probably because you didn't save the change. If you want to save, use :wq. If you don't want to save the changes, type
 +
 +
:q!
 +
 +
Once entering vim, what can I do
 +
If this is one of the first few times you use vim, perhaps you're wondering why you cannot type in anything. This is because you're in command mode. In command mode, your key strokes are interpreted as editing commands. To begin typing new text into the file, you need to switch to insert mode by press i. Then you can see each character you type appears on the screen.
 +
 +
The two basic modes of vim are.
 +
 +
* Insert mode, in which anything you type (except some special keys) will appear on the screen and become part of your file buffer
 +
 +
* Command mode, in which your key strokes are interpreted as commands.
 +
 +
After you start vim, you're in command mode.
 +
 +
*Switch between modes
 +
 +
1. From command mode to insert mode, press
 +
 +
i
 +
 +
2. from insert mode to command mode, press ESC
 +
 +
*How to move around on the screen
 +
 +
In both the command mode and the insert mode you can always use the arrow keys to move the cursor, and with gvim you can click mouse to get to new position. However, these are not the ways of vi guys. If you do that, you're not using vim, you're using notepad. If you want to call yourself a vi guy, forget about the arrow keys, backspace, delete, insert, ... and of course, the mouse. The most effective ways of moving cursor is first go to the command mode by pressing ESC and then use vim's cursor-moving commands to move around. The 4 basic commands are
 +
 +
* j move down one line
 +
 +
* k move up one line
 +
 +
* h move left one character
 +
 +
* l move right one character
 +
 +
Remember: these commands work only in command mode. At first you may feel a bit uncomfortable. After you get familiar using these commands you will stick to them and forget the arrow keys.
 +
 +
*How to delete
 +
 +
First I will tell you that the DELETE key always works, and the BACKSPACE key works with the newly typed text in the insert mode. However, I suggest you do not use them. Instead, force yourself to use vim's deletion commands.
 +
 +
1. Make sure you are in command mode by press ESC
 +
 +
2. move the cursor to the character you want to delete
 +
 +
3. press x , this character disappears
 +
 +
x is just one of the many powerful deletion commands. Usually you need to move the cursor to the character you want to delete and then press x to remove it. Remember using the cursor motion commands j k h l to locate your target, and don't leave the command mode.
 +
 +
*How to insert text
 +
 +
1. In command mode, move the cursor to the desired location
 +
 +
2. press i, then you are in insert mode and can type in whatever you like.
 +
 +
*How to COPY, CUT and PASTE
 +
 +
If you run the GUI version of vim, gvim, you can use mouse and the pull-down menus to do that---the same fashion with other editors. However, that is not the preferred style. You'll feel better off if you can live without a mouse.
 +
 +
1. Enter the command mode
 +
by pressing ESC
 +
 +
2. Move the cursor to the line which you want to make a copy, by pressing j or k
 +
 +
3. press
 +
 +
yy
 +
 +
to make a copy of the line, or
 +
 +
dd
 +
 +
to cut it and make a copy
 +
 +
4. now move cursor (by pressing k or j) to the the location where you want to put this copy
 +
 +
5. press
 +
 +
p
 +
 +
to put the buffer after current line, or
 +
 +
P
 +
 +
to put the buffer before current line
 +
 +
If you want to copy or cut several lines, put a number before the yy or dd command, like
 +
 +
8yy
 +
 +
to copy 8 lines.
 +
 +
How to search for a word
 +
Suppose you want to find all the words apple in your file
 +
 +
1. Make sure you are in command mode
 +
by hitting ESC
 +
 +
2. type
 +
 +
/apple
 +
 +
followed by ENTER to find an occurrence of apple. When you type the slash, it and the following characters will be shown on the bottom of the screen. After you press ENTER, the cursor will go to the first occurrence of apple if found, and the target will be highlighted.
 +
 +
3. after you got the first apple, you can keep typing
 +
 +
n
 +
 +
to find other apples
 +
 +
How to substitute a word with another one
 +
 +
First make sure you're in command mode by pressing ESC.
 +
 +
* replace first occurrence of old in current line with new
 +
 +
:s/old/new/
 +
 +
* replace all occurrence of old in current line with new
 +
 +
:s/old/new/g
 +
 +
* replace the first occurrence of old in each line between line n1 and n2 with new
 +
 +
:n1,n2s/old/new/
 +
 +
* replace all occurrence of oldbetween line n1 and n2 with new
 +
 +
:n1,n2s/old/new/g
 +
 +
* replace all occurrence of old in the whole buffer with new, prompt for confirmation.
 +
 +
:1,$s/old/new/gc
 +
 +
* replace all occurrence of old in the whole buffer with new, prompt for confirmation.
 +
 +
:%s/old/new/gc
  
 
==External links==
 
==External links==
 
* [http://www.vim.org/ The Official website]
 
* [http://www.vim.org/ The Official website]
 
* [http://vimdoc.sourceforge.net/ Vim Documentation]
 
* [http://vimdoc.sourceforge.net/ Vim Documentation]

Revision as of 02:00, 20 March 2008

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end

Vim (Vi IMProved), is a text editor derived from Vi. It's notoriously known for its steep learning curve, and user unfriendly interface. However, because of it's efficiently, variety of plugins, and customization options vim is one of the most popular text editors for programmers and *nix users (along with Emacs). A graphical version gVim which provides a user with menus is also available.

Installation

  • vim depends on vi, so that must be installed first. However, since vi is part of the base installation most users should already have it.
pacman -S vim

Configuration

vim's configuation file is in a user's home directy (~/) and is named .vimrc. A sample .vimrc can be found in /etc/vimrc.

"Sample .vimrc
set nocompatible
set showmatch
set incsearch
set ignorecase  
set smartcase
set history=100
set backspace=eol,start,indent
set ruler
set tabstop=4
set shiftwidth=4
set expandtab
set virtualedit=all
set background=dark
set vb t_vg=
set mouse=v
set textwidth=79
set formatoptions=tcrq
  • To install gvim (Just like vim but with gtk2 interface and listens to /etc/gvimrc and ~/.gvimrc)
pacman -S gvim
  • There is also a group of selected popular vim scripts available via pacman
pacman -S vim-plugins

Vim Tutor

To make your very first steps learning vim, just enter

vimtutor

vim will open the tutor file.

VIM quick start guide

  • 1. How to start vim
  • 2. How to exit vim
  • 3. How to enter text
  • 4. How to move cursor
  • 5. How to insert text
  • 6. How to delete text
  • 7. Copy, cut and paste
  • 8. How to search for word
  • 9. How to substitute text

How to start vim

  • to start vim and edit a file (new or existing)
vim file_name
  • to start vim and open a new file
vim

You can give the stuff you typed in a name when later you save it as a file.

How to exit vim

  • save your file before you exit: press ESC, then type
:wq

or

:x

or

ZZ
  • save your file as newname before you exit: press ESC, then type
:wq newname
  • Exit without saving, press ESC, then type
:q
  • Forced quit

If :q doesn't work, it's probably because you didn't save the change. If you want to save, use :wq. If you don't want to save the changes, type

:q!

Once entering vim, what can I do If this is one of the first few times you use vim, perhaps you're wondering why you cannot type in anything. This is because you're in command mode. In command mode, your key strokes are interpreted as editing commands. To begin typing new text into the file, you need to switch to insert mode by press i. Then you can see each character you type appears on the screen.

The two basic modes of vim are.

  • Insert mode, in which anything you type (except some special keys) will appear on the screen and become part of your file buffer
  • Command mode, in which your key strokes are interpreted as commands.

After you start vim, you're in command mode.

  • Switch between modes

1. From command mode to insert mode, press

i

2. from insert mode to command mode, press ESC

  • How to move around on the screen

In both the command mode and the insert mode you can always use the arrow keys to move the cursor, and with gvim you can click mouse to get to new position. However, these are not the ways of vi guys. If you do that, you're not using vim, you're using notepad. If you want to call yourself a vi guy, forget about the arrow keys, backspace, delete, insert, ... and of course, the mouse. The most effective ways of moving cursor is first go to the command mode by pressing ESC and then use vim's cursor-moving commands to move around. The 4 basic commands are

  • j move down one line
  • k move up one line
  • h move left one character
  • l move right one character

Remember: these commands work only in command mode. At first you may feel a bit uncomfortable. After you get familiar using these commands you will stick to them and forget the arrow keys.

  • How to delete

First I will tell you that the DELETE key always works, and the BACKSPACE key works with the newly typed text in the insert mode. However, I suggest you do not use them. Instead, force yourself to use vim's deletion commands.

1. Make sure you are in command mode by press ESC

2. move the cursor to the character you want to delete

3. press x , this character disappears

x is just one of the many powerful deletion commands. Usually you need to move the cursor to the character you want to delete and then press x to remove it. Remember using the cursor motion commands j k h l to locate your target, and don't leave the command mode.

  • How to insert text

1. In command mode, move the cursor to the desired location

2. press i, then you are in insert mode and can type in whatever you like.

  • How to COPY, CUT and PASTE

If you run the GUI version of vim, gvim, you can use mouse and the pull-down menus to do that---the same fashion with other editors. However, that is not the preferred style. You'll feel better off if you can live without a mouse.

1. Enter the command mode by pressing ESC

2. Move the cursor to the line which you want to make a copy, by pressing j or k

3. press

yy

to make a copy of the line, or

dd

to cut it and make a copy

4. now move cursor (by pressing k or j) to the the location where you want to put this copy

5. press

p

to put the buffer after current line, or

P

to put the buffer before current line

If you want to copy or cut several lines, put a number before the yy or dd command, like

8yy

to copy 8 lines.

How to search for a word Suppose you want to find all the words apple in your file

1. Make sure you are in command mode by hitting ESC

2. type

/apple

followed by ENTER to find an occurrence of apple. When you type the slash, it and the following characters will be shown on the bottom of the screen. After you press ENTER, the cursor will go to the first occurrence of apple if found, and the target will be highlighted.

3. after you got the first apple, you can keep typing

n

to find other apples

How to substitute a word with another one

First make sure you're in command mode by pressing ESC.

  • replace first occurrence of old in current line with new
:s/old/new/
  • replace all occurrence of old in current line with new
:s/old/new/g
  • replace the first occurrence of old in each line between line n1 and n2 with new
:n1,n2s/old/new/
  • replace all occurrence of oldbetween line n1 and n2 with new
:n1,n2s/old/new/g
  • replace all occurrence of old in the whole buffer with new, prompt for confirmation.
:1,$s/old/new/gc
  • replace all occurrence of old in the whole buffer with new, prompt for confirmation.
:%s/old/new/gc

External links