以下是个人在使用Vim时使用比较多的命令,简单总结了一下,分享一下。当然,不是很全面,大家觉得有什么其他比较好的常用的命令,可以接上
1. 文本删除
1.1 删除光标所在行:dd
1.2 删除以当前行开始的n行:ndd
1.3 删除以当前字符开始的一个word:dw
1.4 删至行尾:d$
1.5 删除至行首:d0(数字0)
1.6 删除光标后的字符:x(小写)
1.7 删除光标前的字符:X(大写)或者退格键
1.8 删除输入方式下所输入的文本:ctrl+u
2. 文本插入
2.1 在光标前:i
2.2 在当前行首:I
2.3 在光标后:a
2.4 在当前行尾:A
2.5 在当前行之下新加一行:o
2.6 在当前行之上新加一行:O
2.7 替换当前字符:r
2.8 替换当前字符及其后的字符,直至按Esc键:R
3. 屏幕翻滚
3.1 向文件首翻半屏:ctrl+u
3.2 向文件尾翻半屏:ctrl+d
3.3 向文件首翻一屏:ctrl+b
3.4 向文件尾翻一屏:ctrl+f
4. 光标移动
4.1 光标左移一个字符:h或左方向键或退格键
4.2 光标右移一个字符:l或右方向键或空格键
4.3 光标下移一行:j或下方向键或回车键
4.4 光标上移一行:k或上方向键
4.5 光标移至第n行首:nG
4.6 光标上移n行:n-
4.7 光标下移n行:n+
4.8 光标移至第n行尾:n$
4.9 光标移至行尾:$
4.10 光标移至行首:0(数字)
4.11 光标移至屏幕顶行:H
4.12 光标移至屏幕中间行:M
4.13 光标移至屏幕最后行:L
5. 搜索及替换
5.1 从光标开始处向文件尾搜索pattern:/pattern
5.2 从光标开始处向文件首搜索pattern:?pattern
5.3 在同方向上重复上次搜索:n
5.4 在反方向上重复上次搜索:N
5.5 将当前行中所有p1用p2代替:s/p1/p2/g
5.6 将第n1至n2行中所有p1用p2代替:n1,n2 s/p1/p2/g
5.7 将文件中所有p1用p2代替:g/p1/s//p2/g
5.8 查找时忽略大小写: set ic
5.9 查找时不忽略大小写: set noic
6. 选项设置
6.1 列出所有选项设置情况:all
6.2 在搜索中忽略大小写:ignorance
6.3 显示制表位和行尾标志:list
6.4 显示行号:number
6.5 允许在搜索模式中,使用前面不带””的特殊字符:nomagic
7. 多行操作
7.1 将n1行到n2行之间的内容拷贝到第n3行下: n1,n2 co n3
7.2 将n1行到n2行之间的内容移至到第n3行下: n1,n2 m n3
7.3 将n1行到n2行之间的内容删除: n1,n2 d
8. 在函数中移动光标
8.1 转到当前光标所指的局部变量的定义:gd
8.2 转到当前光标所指的单词下一次出现的地方:*
8.3 转到当前光标所指的单词上一次出现的地方:#
9. 编辑
9.1 复制当前行:yy
9.2 粘贴:p
9.3 撤销上步操作:u
9.4 恢复(撤销过头了的处理):ctrl+r
9.5 重复上次命令:.(点号)
9.6 切换大小写字母:~
10. 统计
10.1 统计字符数: :%s/.&/gn
10.2 统计单词数: :%s/i+/&/gn
10.3 统计行数: :%s/^//n
10.4 统计某个字符串(如the)数: :%s/the/&/gn
11. 整体对齐与缩进
11.1 整体对齐:进入视图模式下(按“v”),移动方向键选中需要对齐的行,然后按“=”符号即可
11.2 整体缩进:进入视图模式下(按“v”),移动方向键选中需要缩进的行,然后按下shift+<(或>)即可
12. vim多窗口之奇妙境界
12.1 窗口拆分
准备创建一个新文件
$ vim 1.txt
创建一个新文件(会在屏幕的上方开一个新的窗口)
: new 2.txt
再创建一个新的文件(会在屏幕的上方左侧再开一个窗口)
: vsplit 3.txt
切换到文件1.txt的区域
按下CTRL+WW
再按,知道光标进入 1.txt的编辑区域即可
再创建一个新的文件(这个文件将把1.txt的编辑区域给分成两块)
: split 4.txt
如果想关闭某个窗口,按下CTRL+WW切换过去,然后
: close
最后一个只能退出哦
:q
总结:
new 创建新窗口
split 水平分割窗口
vsplit 垂直分割窗口
close 关闭窗口
CTRL+WW 跳转到其他窗口
12.2 把当前窗口编程唯一的窗口(关闭其他窗口)::on
12.3 退出当前窗口: :q
12.4 退出所有窗口: :qa
12.5 保存并退出所有窗口: a
12.6 把文本拷贝到系统剪贴板(可在不同窗口中使用)::*p
13. vi中的shell转义命令
选项 作用
:!command 执行shell的command命令,如:!ls
:!! 执行前一个shell命令
:r!command 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容
:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令,如:w!grep all
:cd directory 将当前工作目录更改为directory所表示的目录
:sh 将启动一个子shell,使用^d(ctrl+d)返回vi
:so file 在shell程序file中读入和执行命令
14. 文本布局调整
14.1 交换两个字符位置:xp
14.2 上下两行调换:ddp
14.3 上下两行合并:J(大写)
14.4 删除所有行:dG
14.5 从当前位置删除到行尾:d$
14.6 从当前位置复制到行尾:y$
14.7 回到跳转前的位置: :’’
15. 在若干行前插入同样的字符
1) 用Ctrl-v 选定若干行的第一列
2) I (大写的字母I)
3) 输入字符(比如#)
4) 按escape
vim 就会自动把下面选中的行前面加上同样的字符
16. 上传与下载
1)scp命令:
scp agent root@122.49.0.202:/tmp/ 上传文件
scp root@122.49.0.202:/tmp/agent /tmp/ 下载文件
scp -r *****************************操作文件夹
2) sftp命令
sftp root@122.49.0.20
sftp>get /tmp/agent . 下载文件
sftp>put ./agent /tmp/ 上传文件
17. 查找使用过的命令
ctrl+R
18. 动态查看文件内容
tail -f 文件名
tailf 文件名
19. 多个文件内容替换命令
sed -i “s/221.194.129.207/119.57.63.199/g” `grep 221.194.129.207 -rl ./ *.cf`
20. 查看操作系统类型
uname -a