linux vi 基本命令

来源:互联网 发布:大米线上销售数据 编辑:程序博客网 时间:2024/04/30 14:46


一、用vi filename打开文件:

二、基本知识:vi 可以分三种状态:命令模式(command)、插入模式(insert)和末行模式(last line)
    (1)命令模式:打开文件时默认是命令模式,控制屏幕光标的移动、字符、字或者行的删除,移动                复制;进入insert (按i:在光标位置插入;按a在光标所在位置的后一个字符开始增加;按o 插入新的一样从行首开始输入)或者last line 模式(按shift + :)
    (2)插入模式:只有insert模式可以做文字输入,按esc退回command模式。
    (3)末行模式:将文件保存或者退出vi。也可以执行找字符、列行号等命令。

三、各种命令(请注意在何种模式下和大小写):

1 定位某一行:
    (1)set number:(末行模式)可以给文本加行号。
    (2)跳至某一行:(末行模式),直接输入行号,按enter。如100行,:100
    (3)nu:(末行模式)可以输入命令nu(number缩写)来获得光标当前行的行号与该行内容。
    (4)#G:(命令模式)按#G跳至#行行首,如15G即跳到15行行首。
    (5)ctrl+g:(命令模式)列出光标所在的行号。
2 查找关键字(末行模式):
    (1)? 在当前位置向上查找,输入?关键字。如 ?authorize。如果第一次找的不是你要的关键字,                可以按n在同一方向继续查找,按N往反方向执行上一次搜索。
    (2)/ 在当前位置向下查找,输入/关键字。如 /authorize。如果第一次找的不是你要的关键字,                可以按n在同一方向继续查找,按N往反方向执行上一次搜索

3 移动光标:
    (1)在insert模式下,可直接使用键盘上的四个方向键移动光标。
    (2)在命令模式下,可以使用四个方向键来移动光标,还可以用h、j、k、l这四个键代替四个方向                键来移动光标,
    (3)-: (command模式)光标上移之后,光标位于该行的行首,则可以使用命令“-”。

    (4)0: (末行模式)输入数字0,移动到文章开头。
    (5)G:  (command模式)按G,移动到文章末尾。

    (6)$: (command模式)输入符号$,移动到本行 行尾。
    (7)^: (command模式)输入符号^,移动到本行 行首。
   
    (8)e:(command模式)到下一行行尾。
    (9)b:(command模式)到上一行行首

    (10)

4 退出vi(末行模式):
    (1)q   然后enter(不保存直接退出)
    (2)wq  然后enter(保存后退出)
    (3)q!  然后enter(不保存强制退出)
    (4)wq! 然后enter(强制保存后退出)

5 浏览换页(命令模式):
    (1)ctrl + b 屏幕 往后 移动一页
    (2)ctrl + u 屏幕 往后 移动半页

    (3)ctrl + f 屏幕 往前 移动一页
    (4)ctrl + d 屏幕 往前 移动半页


6 删除文字:
    (1)x:每按一次x,删除光标所在位置后的一个字符。#x (#是指数字),即删除光标后#个字符。
    (2)X: 每按一次X,删除光标所在位置前的一个字符。#X (#是指数字),即删除光标前#个字符。
    (3)dd:删除光标所在行。#dd(#是只数字):从光标所在行开始删除#行。
    (4)cw:改变光标所在位置的“单词”。
    (5)dw:删除光标所在位置的“单词”。
    (6)*,*d: 如20,100d。表示删除20到100行。(末行模式)

7 复制与粘贴:
    (1)yw:将光标所在之处到字尾的字符复制到缓冲区。#yw:将#个字符复制到缓冲区。
    (2)yy:复制光标所在行到缓冲区。#yy:将光标所在行往下数#行复制。
    (3)p:将缓冲区内的字符贴到光标所在位置。所有与y有关的复制都要与p配合用才完成复制粘贴


8 恢复上一次操作:u (相当于windows的撤销)

9 替换与更改:
    (1)r:替换光标所在处的字符
    (2)R:替换光标所到之处的字符,直到按下ESC退出为止。
    (3)cw:更改光标所在处的字到字尾处。
    (4)c#w:如c3w表示更改3个字。
    (5):3,$s/^/some string/在文件的第一行到最后一行的行首插入"some string"
    (6):%s/$/some string/g 在整个文件每一行的行尾添加“some string”
    (7):%s/string1/string2/g 在整个文件替换“string1”为“string2”
    (8):3,7%s/string1/string2/g 替换文件中3-7行“string1”为“string2”
        s---substitute,%表示所有行,g表示global。

10 同时编辑2个文件:
     (1)vi file1 file2
    (2)yy 在file1光标处拷贝
    (3):n 切换到file2 (n=next)
    (4):n 切换回file1

11 替换文件中的路径:
    使用命令“:%#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin切换为/bin。也可以用                “:%//usr/bin//bin/g”

12 移动、拷贝和删除行(末行模式):
    (1):n1,n2 co n3 将n1到n2行之间的内容拷贝到第n3行下
    (2):n1,n2 m  n3 将n1到n2行之间的内容移至到第n3行下
    (3):n1,n2 d  将n1行到n2行之间的内容删除





还有一些移动光标的命令。下面对它们的工作方
式介绍如下:

(r) (均称为右向键)

右向键的作用是将光标向右移动一个位置。若在向右键前先输入一个数字n,那么光标就
向右移动n个位置。例如5l表示光标向右移动5个位置。需要注意的是,光标移动不能超
过当前行的末尾。若给定的n超过光标当前位置至行尾的字符个数,如果用右向键,光标
只能移到行尾;如果用,光标移到下面一行或几行的适当位置。

h、、- (向左键)

执行一次向左键,光标向左移动一个位置。同向右键一样,也可以在向左键的前面输入
一个数字n,那么光标就向左移动n个位置。需要注意的是,如果用左向键,光标左移不
能超出该行的开头;如果用,光标移到上面一行或几行的适当位置。

j、、ˉ (向下键)

执行一次向下键光标向下移动一个位置(即一行),但光标所在的列不变。当这些命令
前面加上数字n,则光标下移n行。

Vi除了可以用向下键将光标下移外,还可以用键和“+”键将光标下移一行或n行(不包
括本行在内),但此时光标下移之后将位于该行的第一个字符处。例如:

3j 光标下移3行,且光标所在列的位置不变。

3+或3 光标下移3行,且光标位于该行的行首。

k、、 (向上键)

执行一次向上键光标向上移动一个位置(即一行),但光标所在的列不变。同样在这些
命令前面加上数字n,则光标上移n行。

若希望光标上移之后,光标位于该行的行首,则可以使用命令“- ”。

L (移至行首)

L 命令是将光标移到当前行的开头,即将光标移至当前行的第一个非空白处(非制表符
或非空格符)。

$(移至行尾)

该命令将光标移到当前行的行尾,停在最后一个字符上。若在$命令之前加上一个数字n
,则光标下移n-1行并到达行尾。

[行号] G(移至指定行)

该命令将光标移至指定行号所指定的行的行首。这种移动称为绝对定位移动。

环境变量 :
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次编辑。

原创粉丝点击