粘贴模式
复制东西进vi时,为了避免vi自动缩进,
set paste之后再复制
复制完set nopaste
命令历史
以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。
打开单个文件
启动vim
在命令行窗口中输入以下命令即可
1 |
|
文件命令
打开单个文件
1 |
|
同时打开多个文件
1 |
|
在vim窗口中打开一个新文件
1 |
|
在新窗口中打开文件
1 |
|
切换到下一个文件
1 |
|
切换到上一个文件
1 |
|
查看当前打开的文件列表
1 |
|
打开远程文件
1 |
|
vim的模式
正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空
插入模式(按i键进入) 左下角显示–INSERT–
可视模式(正常模式下ctrl+v进入) 左下角显示–VISUAL–
导航命令
% 括号匹配
插入命令
1 |
|
查找命令
1 |
|
替换命令
1 |
|
移动命令
1 |
|
以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!
1 |
|
撤销和重做
1 | u 撤销(Undo) |
删除命令
1 | x 删除当前字符 |
拷贝和粘贴
1 | yy 拷贝当前行 |
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制
1 | ddp交换当前行和其下一行 |
剪切命令
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切
1 | ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴 |
退出命令
1 | :wq 保存并退出 |
窗口命令
1 | :split或new 打开一个新窗口,光标停在顶层的窗口上 |
关闭窗口
1 | :close 最后一个窗口不能使用此命令,可以防止意外退出vim。 |
关闭所有窗口,只保留当前窗口
1 | :only |
录制宏
按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。
执行shell命令
1 | :!command |
注释命令
perl程序中#开始的行为注释,所以要注释某些行,只需在行首加入#
1 | 3,5 s/^/#/g 注释第3-5行 |
帮助命令
1 | :help or F1 显示整个帮助 |
帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回
其他非编辑命令
1 | . 重复前一次命令 |
Vim教程
在Unix系统上
1 | $ vimtutor |
在Windows系统上
1 | :help tutor |
加密文件
1 | :X |
然后系统会提示输入密码, 输入密码后存盘退出, 保存后就加密了
下次编辑时使用1
2
set key=1
2
3
4
清除密码
# 字符串统计个数
:%s/sth//gn1
2
3
4
vim中字符串出现次数的查找:
在所有行中查找 字符串 出现的次数
:%s/字符串/&/gn1
2
在m和n行之间查找 字符串 出现的次数
:m,ns/字符串/&/gn
PS: grep -o “sth” file`