复制
# 复制 # | |
yy 或者 Y | 复制游标所在行整行 |
2yy 或者 y2y | 复制两行 |
y^ 或者 y0 | 复制至行首,不含游标所在处字元 |
y$ | 复制至行尾。含游标所在处字元 |
yw | 复制一个word |
y2w | 复制两个字(单词) |
yG | 复制至档尾 |
y1G | 复制至档首 |
鼠标选中文本 | 先 alt+e,然后按 c |
粘贴
# 粘贴 # | |
p | 贴至游标后(下) |
P | 贴至游标前(上) |
如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了 | |
先 alt+e,然后按 p |
撤销
- u 撤销上一步的操作
- Ctrl+r 恢复上一步被撤销的操作
删除
-
c 功能和d相同,区别在于完成删除操作后进入INSERT MODE
-
cc 也是删除当前行,然后进入INSERT MODE
-
删除每行第一个字符 :%s/^.//g ? 试试
-
X 删除光标所在前字符
-
dw 删除到下一个单词开头
-
de 删除到本单词末尾
-
dE 删除到本单词末尾包括标点在内
-
db 删除到前一个单词
-
dB 删除到前一个单词包括标点在内
同时打开多个文件
vi .bash_profile .bashrc
-
切换 ——后一个文件
:n
-
切换 ——前一个文件
-
:N
全局替换
一、基本语法
替换命令语法:
:[addr]s/源字符串/目标字符串/[option]
全局替换:
:%s/源字符串/目标字符串/g
参数说明:
-
[addr]——表示检索范围,省略时表示当前行。
"%":表示整个文件,同"1,$"; ".,$":从当前行到文件尾; s:表示替换操作
-
[option]:表示操作类型
g:全局替换 c:表示进行确认 p:表示替换结果逐行显示(Ctrl+L恢复屏幕) 省略option:默认仅对每行第一个匹配串进行替换
如果在源字符串和目标字符串中有特殊字符,需要使用“\”转义
二、使用示例
1.常用场景
:s/str1/str2/ ——用str2替换当前行中首次出现的str1
:s/str1/str2/g ——用str2替换当前行中所有出现的str1
:.,\$s/str1/str2/g ——用str2替换正文当前行到末尾所有出现的str1
:1,\$s/str1/str2/g ——用str2替换正文中所有出现的str1
:%s/str1/str2/ ——替换每一行中所有str1为str2
:%s/str1/str2/(等同于:g/str1/s//str2/) ——替换每一行的第一个str1为str2
:%s/str1/str2/g(等同于:g/str1/s//str2/g) ——替换每一行中所有str1为str2
2.g选项总结:
g放在命令末尾,表示对搜索字符串的每次出现进行替换;不加g,表示只对搜索字符串的首次出现进行替换。
g放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
刷新
:e