Linux学习笔记3-VI 和 VIM的使用

vi: Visual Interface

vim: VI iMproved

全屏编辑器,

Linux系统下最强大的两款编辑器,vivimviLinux本身自带的一款编辑器,纯文本编辑不带任何效果;

vimvi的可以说是加强版在vi的基础上增加了许多格式化的功能,并且可以使代码命令以不同的色彩显示;

Vivim模式:

编辑模式(命令模式):在这种模式下,不能输入,只能操作命令。

输入模式:可以任意输入内容,在此状态下,输入的字母、数字、字符都是字符串。

末行模式:在编辑模式下 按:键即可进入到该模式下。

编辑-->输入:

i: 在当前光标所在字符的前面,转为输入模式;

a: 在当前光标所在字符的后面,转为输入模式;

o: 在当前光标所在行的下方,新建一行,并转为输入模式;

I:在当前光标所在行的行首,转换为输入模式

A:在当前光标所在行的行尾,转换为输入模式

O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入-->编辑:

按:ESC

编辑-->末行:

按::

末行-->编辑:

按:ESC, ESC

一、打开文件

# vim /path/to/somefile

vim +# :打开文件,并定位于第#行 

vim +:打开文件,定位至最后一行

vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

文件打开后,默认处于编辑模式

二、关闭文件

1、末行模式关闭文件

:q  退出

:wq 保存并退出

:q! 不保存并退出

:w 保存

:w! 强行保存

:wq --> :x

2、编辑模式下退出

Shift+zz: 保存并退出

三、移动光标(编辑模式)

1、逐字符移动:

h: 

l: 

j: 

k: 

 #h: 移动#个字符;

2、以单词为单位移动

w: 移至下一个单词的词首

e: 跳至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首

#w: 

3、行内跳转:

0: 绝对行首

^: 行首的第一个非空白字符

$: 绝对行尾

4、行间跳转

#G:跳转至第#行;

G:最后一行

          gg:第一行

末行模式下,直接给出行号即可

四、翻屏(不常用)

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

五、删除单个字符

x: 删除光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符

六、删除命令: d

d命令跟跳转命令组合使用;

#dw, #de, #db

dd: 删除当前光标所在行

#dd: 删除包括当前光标所在行在内的#行;

七、粘贴命令 p

p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;

P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

八、复制命令 y

用法同d命令

九、修改:先删除内容,再转换为输入模式

c: 用法同d命令

十、替换:r

R: 替换模式

:r [filename]

在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面

:! command

暂时离开 vi 到指令列模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

十一、撤消编辑操作 u

u:撤消前一次的编辑操作

连续u命令可撤消此前的n次编辑操作

#u: 直接撤消最近#次编辑操作

撤消最近一次撤消操作:Ctrl+r

十四、查找

/PATTERN

?PATTERN

n:向下查找

N:向上查找

十五、查找并替换

在末行模式下使用s命令

:n1,n2s/word1/word2/g

n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
『:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/g

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

:1,$s/word1/word2/gc

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

%:表示全文

练习:将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum

%s/ftp://instructor.example.com/pub/http://172.16.0.1/yum/g

%s@ftp://instructor.example.com/pub@http://172.16.0.1/yum@g

十六、高级话题

1、显示或取消显示行号

:set number

:set nu

:set nonu

永久显示行号  编辑vi /etc/vimrc   在空行加入  set number  保存退出

2、显示忽略或区分字符大小写

:set ignorecase

:set ic

:set noic

3、设定自动缩进

:set autoindent

:set ai

:set noai

4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

二十三、配置文件

/etc/vimrc

/etc/virc

~/.vimrc

更多的VI 和 VIM命令,请查看鸟哥的两篇文章:

http://vbird.dic.ksu.edu.tw/linux_basic/0310vi_2.php

http://vbird.dic.ksu.edu.tw/linux_basic/0310vi_3.php