1. vim命令
vi/vim是Linux用于编写文本、修改配置文件和程序的计算机软件,即文本编辑器。
通过在终端输入vim [OPTION] 文件路径
便可进入文本编辑器。
!vim
表示打开上一次打开的文件
vim +10 文件路径
光标从第十行开始
2. vim编辑器的三种工作模式
- 命令模式
- 输入模式
- 末行模式
2.1 命令模式
启动vim编辑器后,默认进入命令模式。
该模式下可以使用方向键 ↑ 、↓ 、← 、→
或k(上)、j(下)、h(左)、l(右)
键来移动光标的位置,还可以通过命令对文件内容进行复制、粘贴、替换、删除等一系列操作。
操作键 | 对应功能 |
---|---|
Home; ^ ; 0 | 跳转到本行的行首 |
End ; $ | 跳转到本行的行尾 |
G | 跳转到该文件的最后一行 |
gg | 跳转到该文件的第一行 |
#G ; #gg | #代表数字,跳转到#行 |
dd | 剪切光标所在行 |
#dd | 从光标处剪切到第#行 |
d^ | 剪切从光标处到行首 |
d$ | 剪切从光标处到行末 |
dw | 剪切当前光标处的单词 |
yy | 复制光标所在行 |
#yy | 从光标处向下复制#行 |
p | 粘贴到光标下一行 |
P | 粘贴到光标上一行 |
u | 撤销上一次操作 |
ctrl + r | 撤销上一次的撤销操作 |
ZZ | 保存并退出 |
/ * ; ? * | *代表内容, 全文查找该内容 (n下一个,N上一个) |
x | 删除当前光标所在的字符 |
r# | 用#替换当前字符 |
R | 进入替换模式 |
J | 合并两行 |
~ | 替换单个字符大小写 |
di"{[(< | 删除"" {} [] () <>中间的内容 |
v | 进入可视化模式 |
vi"{[(< | 选中"" {} [] () <>中间的内容 |
2.2 输入模式
在命令模式下,输入
`i` # 进入输入模式并且从当前光标开始编辑
`o` # 进入输入模式并且从光标下一行开始编辑
`O` # 进入输入模式并且从光标上一行开始编辑
按 ESC
可退回命令模式。
2.3 末行模式
在命令模式下,输入 :
进入末行模式
操作 | 对应功能 |
---|---|
:q | 退出不保存 |
:!q | 强制退出不保存 |
:w 新文件路径/#文件名 | 将文件另存为新的路径下并且改名为# |
:wq 或 :x | 保存并退出 |
:set nu | 将每行设置行号 |
:set nonu | 隐藏行号 |
:set key=# | #代表字符串,对文件进行加密,设置密码 |
:set key=空 | 取消加密 |
:set ai | 对齐,回车后和上一行对齐,自动缩进 |
:set ts=4 | 设置tab键为4个空格 |
:set list | 查看隐藏字符 |
:e [新的文件] | 打开新的文件进行编辑 |
:r [其他文件] | 在当前文件中把其他文件的内容复制进来 |
配置Vim
/etc/.vimrc #表示全局
~/.vimrc #表示个人在.vimrc中可以设置参数:
- set nu #显示行号
set cul #突出显示当前所在行
set ai #设置自动缩进,每行与上一节缩进相同
set ts=4 #设置tab键宽度为4个空格
替换文件内容
:[替换范围] sub /旧的内容/新的内容[/g]
sub
可以简写为s
替换范围:
%
表示整个文件内容、n,m
表示指定行数范围、.和默认
表示只对当前行内容、$
最后一行、$-1
倒数第二行、2,+3
表示2到5行。
/g
表示对替换范围内每一行的所有匹配结果都进行替换;省略 /g
则表示只替换每一行第一个匹配结果。
若要对每个替换动作提示用户进行确认,可在替换命令末尾加上
/c
命令
:% s/^#// 把所有开头的#删掉
:% s/^/#/ 把所有行开头加上#
!!!注意!!!
!!!可用
#
、@
作为分隔符,此时中间出现的/
则不会作为分隔符!!!
按 ESC
可退回命令模式