Linux熟练使用vim 编辑器及熟练掌握vim的工作模式

1.熟练使用vim 编辑器
    vim是vimsual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。这是其他编辑程序所没有的。vim 不是一个排版程序,它不像 Word 或 WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。vim是全屏幕文本编辑器,没有菜单,只有命令。

1.1启动与退出vim
   在系统提示符后输入vim 和想要编辑(或建立)的文件名,便可进入vim,如:
  [root@RHEL7-1 ~]# vim myfile
   如果只输入vim,而不带文件名,也可以进入vim,如图7-1所示。
   在编辑模式下(初次进入vim不做任何操作就是编辑模式)键入:q,:q!,:wq 或:x(注意“:”),就会退出 vim。其中:wq 和:x是存盘退出,而:q是直接退出。如果文件已有新的变化,vim 会提示你保存文件,而:q命令也会失效。这时可以用:w命令保存文件后再用:q退出,或用:wq 或:x命令退出。如果你不想保存改变后的文件,就需要用:q!命令。这个命令将不保存文件而直接退出vim,例如:Linux熟练使用vim 编辑器及熟练掌握vim的工作模式_第1张图片
  

 vim 编辑环境

:w

保存

:w  filename

另存为filename

:wq!

保存退出

:wq! filename

注:以filename为文件名保存后退出

:q!

不保存退出

:x

应该是保存并退出,功能和:wq!相同


1.2 熟练掌握vim的工作模式
    vim有3种基本工作模式:编辑模式、插入模式和命令模式。考虑到各种用户的需要,采用状态切换的方法实现工作模式的转换,切换只是习惯性的问题,一旦熟练地使用上了vim你就会觉得它其实也很好用。
   1.2.1编辑模式
   进入vim。之后,首先进入的就是编辑模式。进入编辑模式后,vim等待编辑命令输入而不是文本输入。也就是说,这时输入的字母都将作为编辑命令来解释。
   进入编辑模式后光标停在屏幕第一行首位,用“_”表示,其余各行的行首均有一个“_”符号,表示该行为空行。最后一行是状态行,显示出当前正在编辑的文件名及其状态。如果是[New File],则表示该文件是一个新建的文件;如果输入vim带文件名后,文件已在系统中存在,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数和字符数。
    1.2.2插入模式
    在编辑模式下按下相应的键可以进入插入模式:插入命令i、附加命令a、打开命令。、修改命令c、取代命令r或替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都被 vim 当作文件内容保存起来,并将其显示在屏幕上。在文本输入过程中(插入模式下),若想回到编辑模式下,按“Esc”键即可。
    1.2.3命令模式
   在编辑模式下,用户按“:”键即可进入命令模式。此时vim会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的。末行命令执行完后,vim 自动回到编辑模式。

若在命令模式下输入命令的过程中改变了主意,可在用退格键将输入的命令全部删除之后,再按一下退格键,即可使vim回到编辑模式。
1.3 使用vim 命令
1.3.1在编辑模式下的命令说明
在编辑模式下,光标移动、查找与替换、复制粘贴等的说明分别如表1、表2和表3所示。

表1 编辑模式下的光标移动的说明

移动光标的方法

h或向左箭头键(

光标向左移动一个字符

j或向下箭头键(

光标向下移动一个字符

k或向上箭头键(

光标向上移动一个字符

l或向右箭头键(→)

光标向右移动一个字符

Crl+f

屏幕向下移动一页,相当于“Page Down”键(常用)

Ctrl+b 

屏幕向上移动一页,相当于“Page Up”键(常用)

Ctrl+d

屏幕向下移动半页

Ctrl+u

屏幕向上移动半页

+

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

-

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

n

n表示数字,例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符。例如输入20则光标会向后面移动20个字符距离

0或功能键“Homen

这是数字0:移动到这一行的最前面字符处(常用)

$或功能键“End"

移动到这一行的最后面字符处(常用)

H

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

M

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

L

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

G

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

nG

n为数字。移动到这个文件的第n行。例如输入20G则会移动到这个文件的第20行(可配合:setnu)

gg

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

n

n为数字。光标向下移动n行(常用)

说明:如果将右手放在键盘上,你会发现h、j、k、1是排列在一起的,因此可以使用这4个按钮来移动光标。如果想要进行多次移动,例如向下移动30行,可以使用“30xj”或“30×↓”的组合按键,即加上想要进行的次数(数字)后,按下动作即可。


表2 编辑模式下的查找与替换的说明

查找与替换

/word

向光标之下寻找一个名称为word的字符串。例如要在文件内查找myweb 这

个字符串,就输入/myweb即可(常用)

?word

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

n

这个n是英文按键。代表重复前一个查找的动作。举例来说,如果刚刚我们执行/myweb 去向下查找myweb这个字符串,则按下n后,会向下继续查找下一个名称为myweb的字符串。如果是执行?myweb,那么按下n则会向上继续查找名称为myweb的字符串

N

这个N是英文按键。与n刚好相反,为反向进行前一个查找动作。例如执行

/myweb 后,按下N则表示向上查找myweb

使用/word配合n及N是非常有帮助的!可以让你重复地找到一些查找的关键词

:n1,n2 s/word1/word2/g

n1与n2为数字。在第nl~n2行寻找wordl这个字符串,并将该字符串取代为word2!举例来说,在100~200行查找myweb并取代为MYWEB则输入":100,200s/myweb/MYWEB/g”(常用)

:1,$ s/word1/word2/g

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

:1,$ s/word1/word2/gc

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

表3 编辑模式下删除、复制与粘贴的说明

删除、复制与粘贴

x,X

在一行字当中,x为向后删除一个字符(相当于“Del”键),X为向前删除一个字符(相当于Backspace,退格键)(常用)

nx

n为数字,连续向后删除n个字符。举例来说,要连续删除10个字符,输入10x

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则为粘贴在光标上一行! 举例来说,目前光标在第20行,且已经复制了10行数据,则按下p后,那10行数据会粘贴在原来的20行之后,即由21行开始粘贴。但如果是按下P呢?将会在光标之前粘贴,即原本的第20行会变成第30行(常用)

J

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

c

重复删除多个数据,例如向下删除10行,输入10cj

u

复原前一个动作(常用)

Ctrl+r

重做上一个动作(常用)

.

不要怀疑!这就是小数点!意思是重复前一个动作的意思。如果你想要重复删除、重复粘贴等动作,按下小数点就可以(常用)

说明:这个“u”与“Ctrl+r是很常用的指令!一个是复原,另一个则是重做一次。利用这两个功能按键,将会为编辑提供很多方便。
    这些命令看似复杂,其实使用时非常简单。例如,在编辑模式下使用5yy复制后,再使用以下命令进行粘贴。
p            在光标之后粘贴
Shift+p      在光标之前粘贴
    当进行查找和替换时,要按“Esc”键,进入命令模式;输入/或?就可以进行查找了。例如,在一个文件中查找swap单词,首先按“Esc”键,进入命令模式,然后输入:
/swap

?swap
    若把光标所在行中的所有单词the,替换成THE,则需输入:
:s /the/THE/g
    仅把第1行到第10行中的the,替换成THE:
:1,10 s /the/THE/g
    这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成的。需要注意的是,我们采用计算机的键盘来说明vim的操作,但在具体的环境中还要参考相应的资料。

1.3.2进入插入模式的命令说明
    编辑模式切换到插入模式的可用的按键的相关说明如表4所示。
                          表4进入插入模式的说明

类型

命令

 

进入插入模式

i

从光标所在位置前开始插入文本

I

该命令是将光标移到当前行的行首,然后插入文本

a

用于在光标当前所在位置之后追加新文本

A

将光标移到所在行的行尾,从那里开始插入新文本

o

在光标所在行的下面新开一行,并将光标置于该行行首,等待输入

O

在光标所在行的上面插入一行,并将光标置于该行行首,等待输人

Esc

退出编辑模式或回到编辑模式中(常用)

说明:上面这些按键中,在vim 画面的左下角处会出现·“--INSERT.--”或“--REPLACE--"的字样。由名称就知道该动作了。需要特别注意的是,我们上面也提过了,想要在文件里面输入字符,一定要在左下角处看到INSERT或REPLACE才能输入。
1.3.3命令模式的按键说明
    如果是插入模式,先按“Esc”键进入编辑模式。在编辑模式下按“:”进人命令模式。保存文件、退出编辑等的命令按键如表5所示。
                           表5命令模式的按键说明

:w

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

:w!

若文件属性为只读时,强制写入该档案。不过,到底能不能写入,还与你对该文件拥有的权限有关

:q

退出vim(常用)快捷键为SHIFT+ZZ

:q!

若曾修改过文件,又不想储存,则使用“!”强制退出而不储存文件。注意一下,惊叹号(!)在vim当中,常常具有强制的意思快捷键为SHIFT+ZZ

:wq

储存后离开,若为“:wq!”,则为强制储存后离开(常用)

ZZ

这是大写的Z。若文件没有更改,则不储存离开;若文件已经被更动过,则储存后离开

:w[filename]

将编辑的数据储存成另一个文件(类似另存为新文件)

:r[filename]

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

:n1,n2 w[filename]

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

:! command

暂时退出vim到命令列模式下执行command的显示结果。例如,“:!ls/home”即可在vim当中察看/home底下以1s输出的文件信息

:set nu

显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu

与:setnu相反,为取消行号

你可能感兴趣的:(linux基础命令,vim,linux,编辑器)