用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。
可以这样做:
1. 将光标移动到要复制的文本开始的地方,按v进入可视模式。
2. 将光标移动到要复制的文本的结束的地方,按y复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式。
3. 我移动光标到文本结束的地方,按p粘贴。
esc键通用,回到命令模式
使用技巧:
:set ic 忽略大小写
:w newfile 保存为一个新文件
:r file 在当前光标所在位置,将file文件内容插入到当前光标处
:!command 在vim中查看一个命令的执行结果,无需退出vim
:r !command 在当前光标所在处,将command执行的命令结果值插入到当前光标所在处
:x 保存并退出
:wq 保存并退出
:q! 不保存退出
gg 回到首行
G 跳到尾行
h 往左侧移动光标位置
j 往上侧移动光标位置
k 往下侧移动光标位置
l 往右侧移动光标位置
w 一次跳转一个单词、
a 在光标所在位置后插入
i 在光标所在位置前插入
o 在光标所在行后插入
x 删除光标所在位置处字符
r 替换当前光标所在处字符
d$ 删除光标所在处字符至行尾
d^ 删除光标所在处字符至行首
dd 删除当前光标所在的行
ndd 删除当前光标所在行及其后n行
J 删除当前行后的换行符
y 复制当前所选的字符
yy 复制当前所在的行
nyy 复制当前所在的行及其后n行
yG 复制当前所在的行至最后一行
ygg 复制当前光标所在位置至首行
p 粘贴
:%s/oldcontent/newcontent/g 替换旧的内容为新的内容,g代表全文替换,%代表全文搜索
:3,5s/oldcontent/newcontent/ 将3-5行的第一个查找的旧的内容替换为新的内容,仅替换第一个匹配的内容
另外,vim支持正则表达式
在linux中使用vi 打开文件时,能显示行号
使用vi编辑~/.vimrc文件,在该文件中加入一行"set nu",添加内容不含引号, 命令如下:
vi ~/.vimrc