推荐阅读:vim入门教程
https://www.cnblogs.com/hezhiyao/p/7624831.html
第一部分:一般模式可用的按钮说明,光标移动、复制粘贴、查找替换
移动光标的方法:
h 或者左箭头←光标向左移动一个字符
j 或者下箭头↓ 光标向下移动一个字符
k 或者上箭头↑ 光标向上移动一个字符
l 或者右箭头→ 光标向右移动一个字符
如果想要进行多次移动的话,例如向下移动30行,可以使用“30j” 或 “30↓” 的组合键,即加上想要进行的次数后,按下操作即可
Ctrl +f 屏幕向下移动一页,相当于 Page Down 按键
Ctrl +b 屏幕向上移动一页,相当于 Page Up 按键
Ctrl +d 屏幕向下移动半页
Ctrl +u 屏幕向上移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n<space> 那个n表示数字,例如20。按下数字后在按空格键,光标会向右移动
这一行的n个字符。例如20<space>,光标会向后面移动20个字符距离。
0或功能键[Home] 这是数字“0”:移动到这一行的最前面字符处
$或功能键[End] 移动到这一行的最后面字符处
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
使用/wod配置n或者N是非常有帮助的,可以重复查找一些关键字
:n1,n2s/word1/word2/g n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,
并将word1字符串替换为word2,例如,在100到200行之间查
找vbird并替换为VBIRD则用”:100,200s/vbird/VBIRD/g”
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为
word2
:1,$s/word1/word2/gc 从第一行到最后一行差早word1字符串,并将该字符串替换为
word2,且在替换前显示提示字符串给用户确认是否需要替换
删除、复制、粘贴
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 重复上一个操作
。 就是小数点,重复前一个操作的意思,如果你要重复删除、复制、粘贴等操作,
按下小数点。就可以
第二部分:一般模式切换到编辑模式的可用按键说明
进入插入或替换的编辑模式
i,I 进入插入模式,i为从目前光标所在处插入,I为在目前所在行的第一个非空格字符
处开始插入
a,A 进入插入模式,a为从目前光标所在的下一个字符开始插入,A为从光标所在行的
最后一个字符处开始插入
o,O 进入插入模式,o为在目前光标所在行的下一行插入新的一行,O为在目前光标所
在处的上一行插入新的一行
r,R 进入替换模式,r只会替换光标所在的那一个字符一次,R会一直替换光标所在的
文字,知道按下[Esc] 键为止
[Esc] 退出编辑模式,回到一般模式中
第三部分:一般模式切换到命令模式可用的按键说明
命令行的保存、离开命令
:w 将编辑的数据写入硬盘文件中
:w! 若文件属性为只读,强制写入该文件,不过,能不能写入,还跟你对该文件的
文件权限有关
:q 离开vi
:q! 若曾修改过文件,又不想存储,使用 !为强制离开不保存
:wq 回车后离开,若为 “:wq!”则为强制保存后离开
ZZ 若文件没有改动,则不保存离开,若文件已经被更改过,则保存后离开
:w[filename] 将编辑的数据保存成另一个文件,类似于另存文件
:r[filename] 在编辑的数据中,读入另一个文件的数据,即将“filename”这个文件的内容
加到光标所在行的后面
:n1,n2w[filename] 将n1到n2的内容保存成filename这个文件
:!commond 暂时离开vi到命令行模式执行commond的显示结果,例如:
“:! ls /home”即可在vi中查看/home下面以ls输出的文件信息
Vim 环境的更改
:set nu 显示行号,设置之后,在每一行的前缀显示该行的行号
:set nonu 与set nu相反,为取消显示行号
块选择的按键意义
V 字符选择,会将光标经过的地方反白选择
V 行选择,会将光标经过的行反白选择
Ctrl+v 块选择,可以用长方形的方式选择数据
y 将反白的地方复制起来
d 将反白的地方删除
多文件编辑的按键
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个vim打开的所有文件
多窗口情况下的按键功能
:sp [filename] 打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否
则表示两个窗口为同一个文件内容(同步显示)
Ctrl+w +j
Ctrl+w +↓ 按键的按法是:先按下ctrl 不放,再按下w后放开所有的按键,然后在
按下j(或下箭头键),则光标可以移动到下方的窗口
Ctrl+w +k
Ctrl+w +↑ 同上,不过光标移动到上方的窗口
Ctrl+w +q 其实就是 :q 结束离开,举例来说,如果我想要结束下方的窗口,那么利用ctrl+w+↓移动到下方窗口后,按下 :q即可离开,也可以按下 ctrl+w+q
Vim环境设置参数
:set nu 就是设置行号
:set nonu 取消行号
:set hlsearch
:set nohlsearch hlsearch就是high light search,这个就是设置是否将查找的字
符串反白的设置值,默认值是hlsearch
:set autoindent
:set noautoindent 表示是否自动缩排,autoindent就是自动缩排
:set backup 表示是否自动保存备份文件,一般是nobackup 的,如果设
置backup的话,那么当你改动任何一个文件时,则源文件被
另存为一个文件名为filename~的文件,举例来说,我们编辑
hosts,设置:set backup,那么当改动hosts时,在同目录下,
就会产生hosts~文件名的文件,记录原始的hosts文件内容
:set ruler 右下角的一些状态栏说明,这个ruler就是来显示或者不显示
该设置值的
:set showmode 这个则是是否要显示 --INSERT--之类的字眼在左下角的状态
栏
:set backspace=(012) 一般来说,如果我们按下i进入编辑模式后,可以用退格键
backspace来删除任意字符的,但是某些distribution则不许如
此,此时,我们可以通过 backspace来设置,当backspace为
2时,可以删除任意值,为0或1时,仅可删除刚才输入 的
字符,而无法删除原本已经存在的文字
:set all 显示目前所有的环境参数设置值
:set 显示与系统默认值不容的设置参数,一般来说就是你有自行变
动过的设置参数
:syntax on
:syntax off 表示是否依据程序相关语法显示不同颜色,举例来说,在编辑
一个纯文件的时候,如果开头是以#号开始,那么该行就变成蓝色,
:set bg=dark
:set bg=light 可以用以显示不同的颜色色调,默认是light,如果你发现批注的
字体深蓝色是在很不容易看,可以设置dark,