Linux vim/vi编辑器的基本操作和基本命令的使用

Linux系统基本命令之vim编辑器的使用



Linux系统下有很多编辑器,经常听到的就有:Emacs ,pico ,nano ,joe , vim等

一、     学习vim编辑器的原因

l  所有的Linux系统都会内置vi编辑器,而不一定会存在其他的文本编辑器(所以学会vim 就不用担心Linux系统版本不同而不会使用编辑器)

l  很多软件的编辑接口都会主动调用vim

l  Vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计

l  程序简单,编辑速度相当快速

l  功能强大

二、       Vim的基本使用

       基本上vim分为3中模式,分别是一般模式,编辑模式(插入模式)和命令行模式。

l  一般模式

通过vim打开一个文件就自动进入了一般模式,在一般模式下可以自由使用上下左右按键来移动光标,可以删除字符或删除整行,也可以进行复制,粘贴等功能。

Linux vim/vi编辑器的基本操作和基本命令的使用_第1张图片


l  编辑模式

在一般模式中只能进行删除,复制,粘贴等操作,但是无法编辑文件内容。只有在一般模式下按下“i,I, o, O,a ,A,r,R”等任何一个字母才会进入编辑模式。在Linux中,按下这些按键在界面的左下方会出现INSTER(插入)或REPLACE的字样

在此时才能进行编辑。而如果要回到一把模式必须按下【Esc】键才能退出编辑模式。


Linux vim/vi编辑器的基本操作和基本命令的使用_第2张图片

Linux vim/vi编辑器的基本操作和基本命令的使用_第3张图片

l  命令行模式

在一般模式中,输入“:,/ ,?”3个字符中的任何一个字符都可以将光标移动到最下面那一行。

在这个模式中,可以提供你查找数据的操作,保存,大量替换字符,离开vim,显示行号等操作都是在此模式完成的

Linux vim/vi编辑器的基本操作和基本命令的使用_第4张图片

三、vim按键的基本操作

l  一般模式

移动光标的方法

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

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

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

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

(hjkl)四个键排列在一起的,因此可以使用这四个按键来移动光标

如果想要进行多行移动,想要移动的行数+按键来进行多行移动,例如:向下移动15行,则15j或(15下箭头)。

G                            移动到这个文件的最后一行(常用)

nG                           n为数字。移动这个文件的第n行。(配合set nu 使用)

gg                            移动到这个文件的第一行,相当于1G(常用)

n【Enter】               n为数字。光标向下移动n行(常用

屏幕移动

【Ctrl】+【f】              屏幕向下移动一页

【Ctrl】+【b】             屏幕向上移动一页

 0或功能键【home】   移动到这一行最前面的字符处(常用)

 $ 或功能键【end】     移动到这一行的最后面的字符处(常用)

查找和替换

/word                          向下寻找一个名称为word的字符串(常用)

?word                          向上寻找一个名称为word的字符串

n                                   重复前一个查找动作,表示继续向下查找

N                                  反向进行查找,向上查找

:n1,n2s/word1/word2/g                    n1,n2是数字,在第n1到n2行之间寻找word1这                                                             个字符串,并且替换为word2(前面是冒号,相当                                                              于在命令行才能执行)

:1,$s/word1/word2/g                     从一行到第二行查找word1这个字符串,并且替换                                                            为word2(同上,实际相当于在命令行)

如果在g后面加上c则给出提示信息给用户确认是否需要替换。

删除、复制与粘贴

x X                                            在一行字中x为向后删除一个字符。X为向前删除一个字 符

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

dd                                            删除光标所在的光标的那一整行

ndd                                           n为数字,删除光标所在的向下的n

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

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

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

d0                                             删除光标所在处到改行的第一个字符

yy                                             复制光标所在的那一行

nyy                                           复制光标所在的向下的n

p P                                            p将复制内容在光标下一行粘贴

                                                 P将复制内容在光标上一行粘贴

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

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

y0                                              复制光标所在字符到行首的字符

y$                                     复制光标所在字符到行尾的字符

l  一般模式

基本按键说明

I, i                                            进入插入模式(insert mode)i为光标处开始插入,I为   在目前所在行的第一个非空格字符插入

A  a                      a当前字符的下个字符插入,A光标所在行的最后一个字    符开始插入

O  o                                          o在光标下一行插入,O在光标上一行插入

r,R                       取代模式(replacemode)r:只会取代光标所在的那个                                                    字符一次,R会一直取代光标所在的文字直到按下ESC   键为止

l  命令行模式的按键说明

命令行模式 储存、离开等指令:

:w                                            将编辑的数据写入硬盘文件中

:w!                                        强制写入文件,不过能不能写入,还是和权限有关

:q                                            离开vim

:q!                                        强制离开(不存储)

:wq                                         储存后离开

ZZ                                             文件变动,存储后离开,没有变动,不存储离开(实际是                                               在一般模式)

:w 【filename】                      储存为另一个文件(类似另存文件)

:set nu                                     显示行号

:set nonu                                  取消行号

 

你可能感兴趣的:(Linux)