vim的常用指令
来源:互联网 发布:网络交友的利弊 编辑:程序博客网 时间:2024/05/17 18:25
1、打开文件的命令
目录下打开文件:
方式一:切换到指定目录下,vim filename
$root@god-virtual-machine:/zplatform/zna/source/stream# $ vim stream_manage.c
方式二:绝对路径打开
vim /zplatform/zna/source/stream# $ vim stream_manage.c
打开多个文件
vim file1,file2,file3....
在vim窗口里面打开文件
在vim的同一窗口打开新文件
:open filename
在vim中新开一个窗口打开新文件
:split filename
切换到下一个文件
:bn
切换到上一个文件
:bp
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来,此命令可以用来确定自己正在编辑的文件
:args
打开远程文件,比如ftp或者share folder
:e ftp://192.168.10.76/abc.txt
:e \\qadrive\test\1.txt
2、移动命令
h 左移一个字符
l 右移一个字符
k 上移一个字符
j下移一个字符
配合数字使用,可以实现快速的移动
实例::
100j是向下移动100行
100k向上移动100行
50h 向左移动50个字符
50l 向右移动50个字符
w向前移动一个单词,光标停留在下一个单词的首部
e向前移动一个单词,光标停留在上一个单词的尾部
0移动到本行的第一个字符上
$移动到行尾 5$移动到下面5行的行尾
gg移动到文件的头
G移动到文件尾
:240跳转到指定的240行
3、编辑命令
撤销与恢复
u 撤销
U撤销对整行的操作
Ctrl + r 恢复撤销
删除命令
x删除当前字符,配合数字使用删除开始向后的5个字符5x
dl 删除当前字符
X删除前一个字符
dh删除前一个字符
dd删除当前行
dj删除此行和上一行
dk删除此行和下一行
10d 删除当前行开始的10行
D 删除当前字符至行尾
d$删除当前字符之后的所有字符
kdgg删除当前行之前的所有行(不包括本行)
jdg 删除当前行之后的所有行(不包括本行)
:1,10d删除1-10行
:2,$d删除第2行及以后的所有行
复制和粘贴命令
yy复制当前行
nyy复制当前行开始的n行,比如2yy拷贝当前行及下一行
p 在当前光标后粘贴,如果之前是使用了yy命令来复制一行,那么就在当前行的下一行粘贴
ddp交换当前行和下一行
xp交换当前字符和后一个字符、
查找和替换命令
:/<pattern> 向下搜索,pattern表达式可以是简单的字符串,也可以是复杂的正则表达式,
:?<pattern>向上搜索
:/\c<pattern>不区分大小写搜索
:?\c<pattern>不区分大小写搜索
:/\C<pattern>区分大小写搜索
:?\C<pattern>区分大小写搜索
:vimgrep <pattern> <files>在文件中搜索,可以是多个文件
:s/str1/str2 将str1替换成str2
一些常用替换命令 %所有行 g单行内所有匹配项 i忽略大小写 c确认是否替换
:s/old/new 将光标所在行第一个old替换成new
:s/old/new/g 将光标所在行所有old替换成new
:%s/old/new/gc 全文执行替换,询问是否替换
:1,10s/old/new/gic 将1到10行的内容替换,忽略大小写,且每个询问是否替换
g i c 可以自由组合
匹配字符串之后,我们通过按n和N可以向上或者向下搜索下一个匹配的字符串
文件替换不可恢复,要小心对待,另,vim的正则表达式匹配将在另外一个帖子中进行说明,正则当真是个好东西
4、退出命令
:wq保存并退出
ZZ保存并退出
:q!强制退出并忽略所有修改
:e!放弃所有修改,并打开原来文件
5、执行shell命令
: !command
:!ls列出当前目录下文件
:!make 可以不退出vim执行当前目录下的Makefile文件
6、代码折叠和打开
设置命令:set fdm=XXX
vim 提供6中折叠方式
manual 手动定义折叠
indent 更多的缩进表示更高级别的折叠
syntax 根据语法高亮来定义折叠
expr 用表达式来定义折叠
diff 对没有更改的文本进行折叠
marker 对文中的标志折叠
代码折叠命令和打开命令
zc对部分代码进行折叠,由于我设置的是syntax折叠方式,所以是按照语法的内容进行折叠。
zC对范围内所有的折叠点进行嵌套折叠
zo打开折叠
zO对范围所有的嵌套折叠点全部打开
另外我在vim80中使用<space>就可以完全打开一个折叠
我使用marker方式进行折叠,这样可以按照自己随心所欲的方式进行代码的折叠。如下,
当使用marker方式时,需要用标记标识代码的折叠,系统默认是{{{和}}},一般不要改动,否则可能造成未知bug。
折叠命令
zf 创建折叠,常见使用方式
zf70G,创建从当前行起到70行的代码折叠;这个70行可以比当前行大,也可以比当前行小。
10zf,10zf+可以创建从当前行起到后10行的代码折叠。
10zf-创建从当前行起到之前10行的代码折叠
在括号出zf%,创建从当前行起到对应的匹配的括号上去(),{},[]等。
zd 删除光标下的折叠
zD 嵌套删除折叠
zE 出去窗口中的所有折叠
- Vim的常用指令
- vim的常用指令
- vim的常用指令
- vim编辑器的常用指令
- 够用的Vim常用指令
- vim的常用指令总结
- Vim中常用的提速指令
- vim常用指令使用指南
- VIM常用指令
- VIM常用指令
- VIM常用指令
- Vim常用指令
- VIM常用指令
- vim 常用指令示意图
- vim常用指令
- VIM常用指令
- vim常用指令
- vi vim常用指令
- Spring Boot中使用Swagger2构建强大的RESTful API文档
- ClassPathXmlApplicationContext源码解析三:BFPP
- Linux 常用基本命令 cat grep
- SpringMVC基本配置
- 青蛙跳和斐波那契数列(转)
- vim的常用指令
- 单链表翻转
- ubutun下的一些使用小技巧
- Java通过JNI调用本地C/C++程序--常用示例
- Console MP3播放器 for C++
- python的学习:导入模块路径、重新加载路径、 is ==、深拷贝和浅拷贝
- 编译器和链接器
- mac os 配置 dock 栏图标显示/隐藏
- lintcode -- 带最小值操作的栈