Liunx vi/vim 2

移动光标的方法

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

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

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

G 移动到这个档案的最后一行(常用)

nG n为数字,移动到这个档案的第n行。例如20G则会移动到这个档案的第20行(可配合 :set nu )

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

n<Enter> n为数字 ,光标向下移动n行(常用)

搜索替换

/word 向光标之下寻找一个名称为word的字符串。例如要在档案内搜索vbird这个字符串,就输入/vbird即可(常用)

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

n 这个n是英文按键,代表着重复前一个搜寻的动作。举例来说,如果刚刚我们执行/vbird 去向下搜寻vbird这个字符串,则按下n后,

会向下继续搜寻下一个名称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续搜寻名称为vbird的字符串

N 这个N是英文按键,与n刚好相反,为 反向 进行前一个搜寻动作。例如/vbird后,按下N则表示 向上 搜寻 vbird

使用/word 配置n及N是非常有帮助的 ,可以让你重复的找到一些你搜寻的关键词

:n1,n2s/word1/word2/g n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为word2 

举例来说,在100到200行之间搜寻vbird 并取代为VBIRD则:

:100,200s/vird/VBIRD/g (常用)

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

:1,$/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串取代为 word2  且在取代前显示提示字符给用户确认

confirm 是否 需要取代 (常用)

删除 复制 与粘贴

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

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

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

ndd n为数字,删除光标所在的向下 n行,例如20dd 则是删除20行(常用)

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

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

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

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

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

p,P p 为将已复制的数据在光标下一行贴上,P则为贴在游标上一行,举例来说,我目前光标在第20行,且已经复制了10行数据

,则按下p后,那10行数据会贴在原本的20行之后,就是从21行开始帖,但如果是按下P,那么原本的第20行会被推到变成30行(常用)

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

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

u 复原前一个动作 (常用)

Ctrl + r  重复上一个动作(常用)

. (点) 重复前一个动作

第二部分: 一般模式切换到编辑模式的可用的按钮说明

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

i,l 进入输入模式(Insert mode )

i 为【从目前光标所在处输入】 I 为 【在目前所在行的第一个非空格符处开始输入】 (常用)

a A 进入输入模式(Insert mode)

a 为【从目前光标所在的下一个字符处开始输入】A 为【从光标所在行的最后一个字符处开始输入】

oO 进入输入模式(Insert mode)

这是英文字母o的大小写,o为【在目前光标所在的下一行处输入新的一行】O 为在目前光标所在处的上一行输入新的一行(常用)

rR 进入取代模式(Replace mode)

r 只会取代光标所在的那一个字符一次,R会一直取代光标所在的字符,知道按下Esc 为止(常用)

上面这些按键中,在vi画面的左下角处会出现【INSERT】 【replace】 

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

第三个部分: 一般模式切换到指令行模式的可用的按钮说明

指令行的存储, 离开等指令

:w 将编辑的数据写入硬盘档案中 (常用)

:w! 若文件属性为【只读】时,强制写入该档案,不过,到底能不能写入,还是跟你对该的档案的权限有关

:q 离开 vi(常用)

:q!  若曾修改过档案,又不想存储,使用!为强制离开不存储档案。

注意: ! 在vi中,常常有 强制的意思。

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

ZZ 这是大写的 Z ,若档案没有更改,则不存储离开,若档案已经被更改过,则存储后离开

:w [filename]  在编译的数据中,读入另一个档案的数据,即将【firlename】 这个档案内容加到游标所在行的后面

:n1,n2 w[filename] 将n1到n2 的内容存储成filename 这个档案。

:!command 暂时离开vi 到指令行模式下执行 command 的显示结果,例如【:!ls /home】 即可在vi 当中查看/home底下ls输出的档案信息

vim 环境的变更

:set nu 显示行号,设定之后,会在每一行的前缀显示改行的行号

:set nonu 与 set nu  相反,为取消行号!

原文地址:https://www.cnblogs.com/simadongyang/p/8136569.html