2024年3月12日发(作者:)

移动光标的方法

h或 左箭头 光标向左移动一个字符

j 或 下箭头 光标向下移动一个字符

k 或 上箭头 光标向上移动一个字符

l 或 右箭头 光标向右移动一个字符

[Ctrl]+f

屏幕[向下]移动一页

[Ctrl]+b

屏幕[向上]移动一页

[Ctrl]+d

屏幕[向下]移动半页

[Ctrl]+u

屏幕[向上]移动半页

+

光标移动到非空格符的下一列

-

光标移动到非空格符的上一列

n

n表示数字,按下数字再按空格键,光标会向右移动这一行的n

个字符

0 或者 功能键 Home 移动到这一行的最前面字符处

$ 或者 功能键 End 移动到这一行的最后面字符处

H

光标移动到这个屏幕的最上方那一行的第一个字符

M

光标移动到这个屏幕的中央那一行的第一个字符

L

光标移动到这个屏幕的最下方那一行的第一个字符

G

移动到这个档案的最后一行

nG

n表示数字,移动到这个档案的第n行

gg

移动到这个档案的第一行

n

n表示数字,光标向下移动n行

搜寻与取代

/word

向光标之下寻找一个名称为word的字符串

word

向光标之上寻找一个名称为word的字符串

n

n为英文按键,代表重复一个搜寻动作。例如:如果刚执行的是

/word向下搜寻word字符串,则按下n后会继续向下搜寻;如果

刚执行的是?word向下搜寻word字符串,则按下n后会继续向上

搜寻

N

N为英文按键,与n相反。如果刚执行的是/word向下搜寻word

字符串,则按下N后会继续向上搜寻;

:n1,n2s/word1/word2/g

n1与n2表示数字。在n1和n2行之间寻找字符串word1,并用

word2替换word1

:1,$s/word1/word2/g

从第一行到最后一行寻找word1字符串,并用字符串word2替代

:1,$s/word1/word2/gc

从第一行到最后一行寻找word1字符串,并用字符串word2替代,

且在取代前显示提示字符给用户确认(Confirm)是否需要取代

删除,复制与粘贴

x , X

在一行中,x为向后删除一个字符(相当于[del]),X为向前删除一

个字符([相当于[backspace])

nx

n表示数字,连续向后删除n个字符

dd

ndd

d1G

dG

d$

d0

yy

nyy

y1G

yG

y0

y$

p , P

J

c

[Ctrl]+r

u

.

i , I

a , A

o , O

r , R

[ESC]

:w

:w!

:q

:q!

:wq

:wq!

ZZ

:w [file name]

:r [file name]

:n1,n2 w [file name]

:! command

:se nu

删除光标所在的那一行

n表示数字,删除光标所在的向下n行

删除光标所在行到第一行的所有数据

删除光标所在行到最后一行的所有数据

删除光标在该行所在处,到该行的最后一个字符

后面为数字0,删除光标在该行所在处,到该行的最前面一个字

复制光标所在的在整行

n表示数字。复制光标所在行的向下n行

复制光标所在行到第一行的所有数据

复制光标所在行到最后一行的所有数据

复制光标该行所在处到该行行首的数据

复制光标该行所在处到该行行尾的数据

大写字母J。将光标所在行与下一行数据结合成同一行

重复删除多个数据。例如:向下删除10行,[10c]

重做上一个动作

撤销上一个动作

小数点。重复前一个动作。

进入插入或取代的编辑模式

进入插入模式(Insert Mode):i为从当前光标所在处插入;I为当前

所在行的第一个非空格符出开始插入

进入插入模式(Insert Mode):a为从当前光标所在的下一个字符出

开始插入;A为从光标所在行的最后一个字符处开始插入

进入插入模式(Insert Mode):o为在当前光标所在行的下一行插入

一个新行;O为在当前光标所在处的上一行插入一个新行

进入取代模式(Replace Mode):r取代光标所在的字符一次;R会

一直取代光标所在的字符,直到按ESC退出。

退出编辑模式,进入一般模式

存储、离开

将编辑的数据写入文件中

若文件属性为只读是,强制写入该文件(与权限有关)

退出vi编辑

强制退出vi,且废除先前的编辑

存储后离开

强制存储后离开

若文件没有更改,则不存储离开;若文件已经被改动,则存储离

将编辑的数据存储成另一个档案

读入另一个文件的数据,且将数据添加到光标所在行的后面

n1,n2代表行数,将n1到n2行的内容存储到file name文件中

暂时离开vi编辑到指令模式下执行命令。例如::! ls /home,就可

以看到/home下的文档

显示行号

:se nonu

取消行号显示