admin管理员组文章数量:1586685
【Linux】vim常用操作命令
文章目录
- 【Linux】vim常用操作命令
- 前言
- 一、一般命令模式
- 1.1 光标移动
- 1.2 查找与替换字符串
- 1.3 复制、删除、粘贴
- 1.4 其它小技巧
- 二、编辑模式
- 三、命令行模式
- 四、其它功能操作
- 4.1 多文件编辑
- 4.2 多窗口编辑
- 总结
- 参考资料
前言
vim共包含三种基本模式,分别是一般命令模式、编辑模式与命令行模式
-
一般命令模式
使用vi打开一个文件即可进入一般模式,一般模式中可以使用【上下左右】按键移动光标,可用使用【删除字符/整行】或【复制、粘贴】处理文件内容。 -
编辑模式
一般模式下可以进行删除、复制、粘贴操作但无法编辑文件内容。在一般模式下使用【i、I、o、O、a、A、r、R】可以进入编辑模式,在编辑模式下使用【ESC】可以返回一般模式。进入编辑模式后,左下方会出现【INSERT或REPLACE】字样。 -
命令行模式
一般模式下使用【: / ?】三者种任意一个按键可以进入命令行模式,命令行模式可以提供【查找数据】操作,并且可以实现读取、保存、批量转换字符、退出vi、显示行号等操作。使用【ESC】可以从命令行模式退回一般模式。
一、一般命令模式
进入一般命令模式
vi filename #进入一般命令模式
1.1 光标移动
操作 | 描述 |
---|---|
h或左箭头 | 光标向左移动一个字符 |
j或下箭头 | 光标向下移动一个字符 |
k或上箭头 | 光标向上移动一个字符 |
l或右箭头 | 光标向右移动一个字符 |
进行多次移动
,可以使用n+光标移动操作
例如:向上移动30行===>30k
操作 | 描述 |
---|---|
n +【SPACE】 | 光标向右移动n个字符 |
n +【ENTER】 | 光标向下移动n行 |
0 | 光标移动到该行最前面字符 |
$ | 光标移动到该行最后面字符 |
G | 光标移动到文件最后一行 |
nG | 光标移动到文件第n行 |
gg | 光标移动到文件第一行,相当于1G |
H | 光标移动到屏幕最上方第一个字符 |
M | 光标移动到屏幕中央行第一个字符 |
L | 光标移动到屏幕最下方第一个字符 |
【ctrl】 +【f】 | 向下移动一页 |
【ctrl】 + 【b】 | 向上移动一页 |
【ctrl】 + 【d】 | 向下移动半页 |
【ctrl】 + 【u】 | 向上移动半页 |
【+】 | 光标移动到非空格符下一行 |
【-】 | 光标移动到非空格符上一行 |
1.2 查找与替换字符串
操作 | 描述 |
---|---|
/word | 从当前光标处往下查找字符串word |
?word | 从当前光标处往上查找字符串word |
n | 重复前一个查找操作,若上一个操作为/word 则继续向下查找word;,若上一个操作为?word 则继续向上查找word |
N | 反向重复前一个查找操作,若上一个操作为/word 则向上查找word;,若上一个操作为?word 则向下查找word |
可以使用/word配合n或N实现关键词查找
例如:
在n1到n2行之间寻找word1,并将word1替换为word2
:n1,n2s/word1/word2/g
在1到最后一行之间寻找word1,并将word1替换为word2
:1,$s/word1/word2/g
在1到最后一行之间寻找word1,并将word1替换为word2,替换前提示用户进行确认(confirm)
:1,$s/word1/word2/gc
1.3 复制、删除、粘贴
- 复制操作
复制 | 描述 |
---|---|
yy | 复制光标所在行 |
nyy | 复制光标所在的向下n行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在字符到该行行首的所有字符 |
y$ | 复制光标所在字符到该行行尾的所有字符 |
- 删除操作
删除 | 描述 |
---|---|
x | 向后删除一个字符 |
X | 向前删除一个字符 |
nx | 向后连续删除n个字符 |
dd | 删除光标所在行 |
ndd | 删除光标所在向下n行 |
d1G | 删除光标所在行到第一行所有数据 |
dG | 删除光标所在行到最后一行所有数据 |
d0 | 删除光标所在处到该行行首的所有字符 |
d$ | 删除光标所在处到该行行尾的所有字符 |
- 粘贴操作
粘贴 | 描述 |
---|---|
p | 将已复制数据粘贴在光标下一行 |
P | 将已复制数据粘贴在光标上一行 |
1.4 其它小技巧
操作 | 描述 |
---|---|
J | 将光标所在行数据与下一行数据结合成同一行 |
c | 重复删除多个数据,例如向下删除10行====>【10cj】 |
u | 恢复前一个操作 |
【crtl】+ r | 重复上一个操作 |
【.】 | 重复前一个操作 |
二、编辑模式
从一般模式进入到编辑模式:
- 插入模式
页面左下角显示【INSERT】
操作 | 描述 |
---|---|
i | 光标所在处插入 |
I | 光标所在行第一个非空格符号处插入 |
a | 光标所在行下一行第一个字符处插入 |
A | 光标所在行最后一个字符处插入 |
o | 光标所在行下一行处插入新的一行 |
O | 光标所在行上一行处插入新的一行 |
- 替换模式
页面左下角显示【REPLACE】
操作 | 描述 |
---|---|
r | 替换光标所在处字符一次 |
R | 一直替换光标所在处字符直到按下【ESC】结束替换模式 |
按下【ESC]从编辑模式退回一般模式
三、命令行模式
保存、退出、另存为:
操作 | 描述 |
---|---|
:w | 将编辑的数据写入硬盘文件种 |
:w! | 若未见类型为只读时,强制写入该文件 |
:q | 退出vi |
:q! | 若修改过文件但不想进行保存,强制退出并不保存 |
:wq | 保存并退出 |
:wq! | 强制保存并退出 |
ZZ | 若文件未被修改则不保存退出;若文件被修改,则保存后退出 |
:w filename | 将编辑的数据另存为filename文件 |
:r filename | 将filename文件内容加到当前光标所在行后 |
:n1,n2 w filename | 将n1到n2的内容保存到filename文件中 |
:! command | 暂时退出vi到命令行模式下执行command的显示结果 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
当系统因为某些原因宕机时,vim可以利用缓存来恢复之前未保存的数据
,vim会在被编辑文件所在目录下简历一个.filename.swp
的文件。当缓存文件存在,vim会自动判断这个文件可能存在问题,打开文件时会出现警告信息。需要用户自行决定是否删除swp文件来避免警告信息。
警告信息按键:
.filename.swp already exists!下面说明你可进行的操作
- 【O】pen Read-Only:以只读方式打开文件,只想查看文件内容,并不编辑文件
- 【E】dit anyway:以正常方式打开要编辑的文件,不加载缓存文件内容
- 【R】ecover:加载缓存文件的内容并进入编辑,退出后还是要自行手动删除缓存文件
- 【D】elete it:若确定缓存无用,删除swp文件进入编辑
- 【Q】uit:退出vim
- 【A】bort:忽略这个编辑操作,退回命令提示符
四、其它功能操作
4.1 多文件编辑
vim编辑多个文件:
vim file1 file2 file3 ... filen
操作 | 描述 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出这个vim开启的所有文件 |
4.2 多窗口编辑
1. 同时编辑多个文件但是只打开第一个文件
vim file1 file2 ...
2.竖直分屏
vim -On file1 file2 ... filen
3. 水平分屏
vim -on file1 file2 ... filen
操作 | 描述 |
---|---|
:sp 【filename】 | 上下分割并打开一个新的文件 |
:vsp 【filename】 | 左右分割并打开一个新的文件 |
[ctrl] + w + s | 上下分割当前打开的文件 |
[ctrl] + w + v | 左右分割当前打开的文件 |
[ctrl] + w + j 或 [ctrl] + w + 【下】 | 光标移到下方窗口 |
[ctrl] + w + k 或 [ctrl] + w + 【上】 | 光标移到上方窗口 |
[ctrl] + w + h 或 [ctrl] + w + 【左】 | 光标移到左方窗口 |
[ctrl] + w + l 或 [ctrl] + w + 【右】 | 光标移到右方窗口 |
[ctrl] + w + q | 关闭当前窗口,若无剩余窗口则退出vim |
[ctrl] + w + c | 关闭当前窗口 |
:qall | 退出所有窗口 |
:wqall | 保存所有窗口并退出 |
:wall | 保存所有窗口但不退出 |
ctrl + w:先按住ctrl不放再按下w放开,再按下后续命令
总结
本文对vim在三种模式下的常用命令做出整理,并且介绍了vim多文件编辑以及多窗口功能操作
参考资料
1.《鸟哥的Linux私房菜》
2. https://wwwblogs/lovychen/p/6519847.html
版权声明:本文标题:【Linux】vim常用命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727986366a1141083.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论