vim
功能
- 命令行模式下的文本编辑器
- 根据扩展名判别编程语言,实现代码缩进、代码高亮
使用
vim XXX
如果有该文件则打开
没有则创建并打开一个新的文件,命名为XXX
模式
- 一般命令模式/默认模式:无法编写,输入命令,每一个命令对应一个字母,支持复制粘贴删除文本
- 编辑模式:在默认模式下按
i
,进入编辑模式,按esc
退出
- 命令行模式:默认模式下按
:/?
三个中任意一个进入命令行模式,命令行在最下面(个人建议用:
)支持查找、替换、保存、退出、配置编辑器等
输入:wq
,保存并退出
操作
i:
进入编辑模式
esc
:进入一般命令模式
小键盘可以操作前后左右
注:在命令模式下:vim会卡在最后一个字符前面,编辑模式会卡在最后一个字符,不像win,移动到最后会直接换行
同样的,无论是什么模式,往左移动到开头就会停下
光标的移动操作:n<Space>
n是数字,光标会自动右移n个字符
一般命令模式下:0/home
将光标移动到本行开头
$/End
将光标移动到本行结尾
G
:光标移动到最后一行
具体到哪一行的操作:
1).n/nG
:表示想去具体到哪一行(n是到某一行的下面,nG是直达)
2).gg
:到达第一行
3).n<Enter>
向下跳n行
查找与修改字符串的操作:
1)./word
:在命令行模式下,光标之下寻找第一个值为word的字符串
2).?word
:在光标之上第一个值为word的字符串
3).n
:重复前一个查找操作
4).N
:反向查找,也就是说前一个命令向前找,此命令下向后找
5).:n1,n2s/word1/word2/g
:n1,n2为数字,在第n1与n2之间找word1,并替换为word2
:1,$s/word1/word2/g
: 将全文的word1换成word2
:1,$s/word1/word2/gc
:在每一次替换的时候都会让用户进行确认
:noh
关闭所查找的关键词的高亮
选中与删除
v
:选中文本,按两下esc
取消
d
:删除选中文本(其实有剪切的特性)
dd
:删除整行
复制与粘贴:
y
:复制(文本)
p
:在光标所处位置的下一行或下一个位置(通常当光标在两边时)粘贴
yy
:复制当前行
撤销:u
:撤销
ctrl+r
:取消撤销
注:在windows里,ctrl+z撤销,ctrl+shift+z取消撤销
>
将选中的文本整体向右移动
<
将选中的文本整体向左移动
保存与退出:
:w
保存
:w!
强制保存
一般命令模式下:按下ESC
,按q
退出
:q!
强制退出(不保存)
:wq
保存并退出
:wq!
强制保存退出
行号的显示与隐藏:
:set nonu
隐藏行号
:set nu
显示行号
paste
模式:
为什么:当要粘贴过来的代码很长时,命令可能会失效,占用很大带宽,导致出现多重缩进
:set paste
取消代码缩进,设置成粘贴模式
:set nopaste
开启代码缩进
其他与gg
有关的
gg+d+G
删除全部内容
gg=G
将全文格式化
vim的卡死处理
ctrl+q
:当vim卡死时,可取消当前正在执行的命令
异常处理:当前进程出现冲突时,会出现异常
解决方法:
1).找到正在多个打开的文件程序,并关掉,保证同一个进程只有同一个文件能打开
2).问题:当一个进程不小心被其他进程杀掉,当再打开main.cpp时,此时如果出现一个.swp
缓存文件时会报错
解决:在没有任何一个进程打开该文件时,将.swp
文件删掉即可