Linux下的VI和VIM编辑器
2010-05-17 by zhiwei
vi和vim是我们在Linux中最常用的编辑器。vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单 操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。以下是vi/vim中最常用的用法(在正常模式下)。
- [ctrl]+[f] : 向前翻页(foreward),和 [Page Down] 的用法一样。
- [ctrl]+[b] : 向后翻页(backward),和 [Page Up] 的用法一样。
- 0: 移动光标到当前行的第一个字母处。
- $: 移动光标到当前行的最后一个字母处。
- G: 移动光标到文档的最后一行。
- gg: 移动光标到文档的第一行,和1G的功能一样。
- n<enter>: n是个整数,向下移动光标n行。
- /word: 从光标处向下搜索下一个字符串”word”。
- ?word: 从光标处向上搜索前一个字符串”word”。
- :n1,n2s/word1/word2/g: n1,n2是整数,用“word2”替换n1-n2行之间的字符串“word1”.
- :0,$s/word1/word2/g: 用”word2″替换文档中所有的字符串”word1″.
- x,X : 在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[backspace]即退格键).
- dd : 删除光标所在的一整行。
- ndd : n为数字。从光标位置开始,删除向下的n行。
- yy : 复制光标所在的那一行。
- nyy : n为数字。复制光标所在的向下n行。
- p,P : p为将已复制的数字粘贴到光标的下一行,P则为贴在光标上一行。举例来说,当前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会贴在 原来的20行之后,即由21开始贴。但如果按下P,那么原来的20行会变成30行。
- u : 复原前一个操作.
- [ctrl]+r : 重做上一个操作.
- . : 这是小数点。意思是重复前一个动作。如果重复删除、重复粘贴,按下小数点“.”就可以。
- i,I : 插入:当前光标所在处插入输入文字,已存在的文字会向后退,其中i为“从当前光标所在处插入”,I为“在当前所在行的第一非空格符处开始插入”。
- a,A : a为“从当前光标所在的下一处开始插入”,A为“从光标所在行的最后一个字符处开始插入”。
- o,O : 英文字母o的大小写。o为“在当前光标所在的下一行插入新的一行”;O为“在当前光标所在处的上一行插入新的一行”。
- r,R : 替换:r会替换光标所在的那一个字符;R会一直替换光标所在的文字,直到按下Esc键为止。
- Esc : 退出编辑模式,回到一般模式中。
- :w : 将编辑的数据写入硬盘文件中。
- :w! : 强行写入。
- :q : 离开vi。
- :q! : 若曾修改过文件,又不想存储,使用!为强制离开而不存储文件。
- :wq : 存储文件后离开,:wq! 强制存储文件并离开。
以上30条是vi/vim最常用的命令,随着对vi/vim的了解,你会知道的更多。
vi/vim还有块选择功能,以下为我机器的hosts文件,如果只想复制IP地址的话就能到块选择功能了。
1 2 3 4 5 6 | 76.13.18.78 farm3.static.flickr.com 76.13.18.79 farm5.static.flickr.com 128.242.240.29 twitter.com 128.242.240.29 www.twitter.com 209.85.225.101 docs.google.com 74.125.127.100 writely.google.com |
在普通模式下的块选择按键的意义:
v:字符选择,会将光标经过的地方反白选择
V:行选择,会将光标经过的行反白选择
[ctrl]+v:块选择,可以用长方形的方式来选择数据
y:复制反白的地方
d:删除反白的地方
以上这些按键功能可自己亲自动手操作一下,这样你就会更加明白。
下面是我的VIM配置文件.vimrc,这个配置文件能保证基本的文档编辑功能和书写C、C++及shell语言的缩进、关键字高亮及显示行号等功能。这个.vimrc文件是我从网上找的,然后自己又修改了其中的一部分,对于其中的一些规则我自己也不是十分了解,但是已经足够满足我的使用了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | "Get out of VI's compatible mode..
set nocompatible
"Sets how many lines of history VIM har to remember
set history=400
"Enable filetype plugin
filetype on
filetype plugin on
filetype indent on
"Set to auto read when a file is changed from the outside
set autoread
"Font
set guifont=Courier\ 9
if has("syntax")
syntax on
endif
"Enable syntax hl
syntax enable
"Highlight current
"set cursorline
"Turn on WiLd menu
"set wildmenu
"Always show current position
set ruler
"Show line number
set nu
"Set backspace
set backspace=eol,start,indent
"Bbackspace and cursor keys wrap to
set whichwrap+=<,>,h,l
set incsearch
"Set magic on
set magic
"show matching bracets
set showmatch
"How many tenths of a second to blink
set mat=4
"Highlight search things
set hlsearch
"Text options
set expandtab
set shiftwidth=4
set tabstop=4
set smarttab
set lbr
"Auto indent
set ai
"Smart indet
set si
"C-style indenting
set cindent
"Wrap line
set wrap
"Chinese support
set encoding=utf-8
set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set ambiwidth=double
"Show C space errors
let c_space_errors=1
"IComplete Setting
autocmd Filetype cpp,c,java set omnifunc=cppcomplete#Complete |
© 2010, chenzhiwei.net. 版权所有.
本文永久链接:http://chenzhiwei.net/2010/05/vi-and-vim-under-linux/

不常用vi,用也只用很少几个命令。
我个人挺喜欢用vim的,写代码都是用vim。
vi确实强大,昨天还装了一个python代码自动补全的插件,太好使了
正在学用linux
额,这些基本都是翻翻手册
我的Centos就用的vi,很强大,但是就是没有视窗的那么方便啊^_^
这个会用一点
@医疗投诉 houkai都头像。。。
这个话说,我很早就试用了!呵呵!
好东西啊!!!!
都在用了呀 !! 我现在还是在用界面的 不过这个东西要必会呀 如果玩vps
无意转悠过来了,呵呵,留点痕迹~