Linux命令: vi编辑器

Linux命令: vi编辑器

vi编辑器(1

》vi是Unix世界中最通用的全屏编辑器, Linux中用的是vi的加强版vim, vim同vi完全兼容.(当然如果系统中没有安装vim,则可以通过apt-get install vim-gtk 或者[sudo apt-get install vim-gtk] 进行安装)

》在Linux系统中,vi和vim是完全等价的两个命令,都可以启动vi编辑器。

》vi编辑器的运行状态共有三种模式。

  》一般模式(Normal mode):输入vi命令进入vi文本编辑器的时候,就是一般模式了,该模式将用户的输入看作命令,这个模式允许用户移动游标,且允许搜索文本功能。

  》插入模式(Instert mode):从一般模式按下I, o, a等字幕都可以进入编辑模式,在此模式下,vi将用户的输入插入到当前光标位置,修改暂时保存到缓冲区,按Esc按钮则从编辑模式退回到一般模式。

  》命令模式(command mode):可输入(:/?)进入到命令模式)输入:wq(当文件权限位为:444即-r--r--r--时,需要使用:wq! 来强制写入并保存退出)保存当前文件,或者输入:q!直接退出。

   vi编辑器模式切换图示(摘自网络):

  vi

 

  1. vi 编辑器(写文件/程序)  编写java程序
    1. vi filename.filetype(如:vi Hello.java)
    2. 输入i (小写I)[进入插入模式i/I、r/R、a/A]开始写java类
    3. 输入esc键[进入到命令模式]
    4. 输入: (冒号) [wq表示退出并保存, q!退出不保存]
    5. 编译文件: javac Hello.java(若没有jdk包,控制台会提示你需要安装jdk, apt-get install jdk包)
    6. 6.         运行java程序:java Hello

 

  1. vi 编辑器(写文件/程序)  编写C/C++程序
    1. 输入vi Hello.cpp
    2. 输入i(输入C/C++程序)
    3. 输入esc退出插入模式进入命令模式
    4. 4.         输入:wq退出并保存文件
    5. 5.         编译(C/C++程序) 输入: gcc –o Hello Hello.cpp或者gcc Hello.cpp(使用gcc Hello.cpp编译,系统会默认生成可执行文件a.out,为避免覆盖掉之前有可能存在a.out的文件应该使用gcc –o Hello Hello.cpp, 此时会编译出一个Hello的可执行文件)
    6. 6.         运行: ./Hello或者./a.out

 

vi编辑器(2

》vi编辑器提供了强大的搜索和替换功能

》首先按下斜杠键(/), 光标会自动移动到vi编辑器下方的命令行,用户输入待搜索的字符串,按下Enter键开始搜索, vi编辑器可能用三种方式响应用户的搜索。

》vi编辑器的替换命令的基本格式:

:s/old_string/new_string

:s/old_string/new_string

 

 

按键说明(除了上面iar[Esc]:wq:wq!:q还有许多按键)

  1. 一般模式下可用按键说明: 光标移动、复制粘贴、查找替换等

移动光标的方法

h或向左箭头键(

光标向移动一个字符串

j或向下箭头键()

光标向移动一个字符串

k或向上箭头键(

光标向移动一个字符串

l或向右箭头键(

光标向移动一个字符串

当要移动多行或者多列的时候,可以按下数字键+(hjki)组合移动光标。如要向下跳到30行,可30j,要向左跳5列可按下5h.

Ctrl + f (Forward)

屏幕向下移动一页,相当于 [PageDown]键(常用)

Ctrl + b(back)

屏幕向上移动一页,相当于 [PageUp]键(常用)

Ctrl + d(down)

屏幕向下移动半页

Ctrl + u(up)

屏幕向上移动半页

-(数字键上的 -)

光标移动到非空格的上一行

+(数字键上的+)

光标移动到非空格的下一行

n<space>(数字+空格键)

n为数字,即将光标移动到当前行当前光标后的第n个字符出(光标右移动n个字符)。如12<space>:表示将光标移到该行当前光标后的第12个字符处

0

数字“0”,光标回到行首(常用)

$

$美元符号,光标移动到行尾(常用)

H

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

M

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

L

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

G

光标移动到这个文件的最后一行的第一个字符处(常用)

nG

n为数字,光标移动这个文件的第n行。如:30G,表示光标移动到这个文件第30行的第一个字符处。

gg

光标移动这个文件的第一行的第一个字符处。相当于:1G(常用)

n[Enter]

n是数字,光标向下移动多少行。如:10+Enter表示向下移动10行。(常用)

查找替换

/word

向下查找一个名称为word的字符串。例如要在文件中查找 take这个字符串,输入 /take 即可(常用)

word

向上查找一个名称为word的字符串。

n

n为英文,n按键。表示重复查找前一个查找的操作。例如刚才我们查找 take这个字符串,在输入 /take之后,vi会将光标定位到向下的第一个take出现的位置,按下n键之后,会继续查找下个 take 出现的位置。按 ?take 同理,会向上查找take出现的位置。

N

N为英文键,与n刚好相反,为“反向”进行前一个查找的操作。例如输入 /take 后,按下N键,会向上查找 take。

使用 /word或者?word的时候,配合n键或N键非常有帮助。

:n1, n2s/word1/word2/g

n1与n2为数字。在第n1与n2行之间查找word1这个字符串,并将该字符串替换为word2.例如:在100到200行之间查找word1并替换为word2 “ :100, 200s/word1/word2/g”(常用)

:1,$s/word1/word2/g

从第一行到最后一行查找word1 字符串,并将该字符串替换为word2.(常用)

:1,$s/word1/word2/gc

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

删除、复制、粘贴

xX

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

nx nX

n为数字,nx向后连续删除n个字符。例如,向后连续删除5个字符“5x”。nX向前连续删除n个字符.例如向前连续删除12个字符“12X

dd

删除光标所在的那一整行(常用)

ndd

n为数字。删除光标所在行的向下n行,例如20dd,表示向下删除20行。(常用)

d1G

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

dG

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

d$

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

d0

为数字“0”。删除光标所在处到该行第一个字符

yy

复制光标所在的那一行(常用)

nyy

n为数字。复制光标所在的向下n行,例如20yy则是复制20行(常用)

y1G

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

yG

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

y0

复制光标所在的那个字符到该行行首的所有数据

y$

复制光标所在的那个字符到该行行尾的所有数据

p,P

p为将已经复制的数据在光标下一行粘贴,P则为光标的上一行粘贴。例如:目前光标在15行处,且已经复制了8行的数据,则按下p后,那8行的数据就会粘贴在原本的15行之后,也即在16行开始粘贴。但如果按下P,则当前15行会变到23行处。(常用)

J

将光标所在行与下一行的数据结合成同一行。

c

重复删除多个数据。例如:向下删除 10行,“10cj”(将会进入到编辑模式,要复原按 Esc键退出,按下 u键即可还原), 向上删除3行“3ck”

u

复原上一个操作(常用)

Ctrl + r

重做上一个操作(常用)

u和[Ctrl + r]是最常用的命令。一个是复原,另一个则是重做一次,利用它们,编辑将更加得心应手。

.

小数点。表示重复前一个操作。例如:想要重复删除、重复粘贴等操作,可以按下小数点“.”。(常用)

 

 

 

 2.       一般模式切换到编辑模式按键

进入插入或替换的编辑模式

iI

进入插入模式(Insert mode):i为从当前光标处插入;I为在目前所在行的第一个非空格符处开始插入(常用)

aA

进入插入模式(Insert mode):a为从当前光标处的下一个字符插入;A为在光标所在行的最后一个字符处开始插入(常用)

oO[字母o大小写]

进入插入模式(Insert mode):o为从当前光标处的下行插入新的一行;O为光标所处的上一行插入新的一行(常用)

rR

进入替换模式(Replace mode):r替换当前光标处那个字符一次;R一直替换到光标所在的文字,直到按下[Esc键]为止。(常用)

当按下如上按键之后,vi编辑器的左下方会出现“——INSERT——”或“——REPLACE——”的字样。

Esc

退出编辑模式,回到一般模式(常用)

 

 

 3.       一般模式切换到命令行模式的按键

 

命令行的保存、离开等命令

:w

将编辑的数据写入到硬盘文件中(常用)

:w!

若文件权限位“只读”,强制写入该文件。(当然到底能不能强制写入还是看你对当前文件的文件权限。)

:q

离开vi编辑器(常用)

:q!

若曾修改文件,又不想保存离开,使用“!”为强制离开不保存。

“!”感叹号,在vi编辑器中经常具有“强制”的意思。

:wq

保存文件后离开vi编辑器。若为“:wq!”则表示强制保存后离开(常用)

ZZ

若文件没有改动,则不保存离开;若文件已被改动,则保存后离开。

:w[filename]

将编辑的数据保存成另一个文件(相当于另存文件)

:r[filename]

在编辑的数据中,读入另一个文件的数据, 即将“filename”这个文件内容加到光标所在行后面

:n1, n2 w [filename]

将n1到n2的内容保存成filename这个文件

:! command

暂时离开vi编辑器到命令行模式执行command的显示信息。例如“:! ls /root”即可在vi当中查看 /root下面以ls输出的文件信息

vi编辑器的环境更改

:set nu

显示(设置)vi编辑器的行号

:set nonu

取消vi编辑器的行号

posted @ 2015-02-08 23:01  Ajunboys  阅读(369)  评论(0编辑  收藏  举报