目录
(2)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
(3)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
(4)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
一、Vim定义
Vim是Linux系统中一个使用非常普遍,而且概念强大的文本编辑器。(vi的升级版本)
二、Vim安装与卸载
1. 本地安装(dpkg -i)
前提:系统中要存在下载好的安装包,并且可能还需要安装包的依赖包。
2. 在线安装
语法:
sudo apt-get update //更新软件源
sudo apt-get install vim //安装Vim
3. 卸载程序
语法:sudo apt-get remove vim //这个命令是卸载程序,vim也可以替换成其他的程序名
三、Vim的使用
1. 启动
启动vim后,此时vim处于命令模式:
(1) 系统命令行输入vim,就可以启动vim
指令:yueqian@yueqian-vm:~$ vim
在vim中导入待编辑的文件:
:r 待操作文件
(2)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
说明:默认打开文件后,光标处于文件开头(第一行第一列)
指令:yueqian@yueqian-vm:~$ vim ~/Mywork/Demo01.c
(3)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
说明:默认打开文件后,光标处于文件末尾(最后一行第一列)
指令:yueqian@yueqian-vm:~$ vim ~/Mywork/Demo01.c +
(4)系统命令行输入vim 待编译文件名,启动vim同时打开待编译文件
说明:默认打开文件后,光标处于指定行(指定行n第一列)
指令:yueqian@yueqian-vm:~$ vim ~/Mywork/Demo01.c +4
2. 退出
- 在命令模式下:ZZ(大写)
- :q 文件不做任何修改直接退出
- :wq 保存退出
- :q! 强制退出,不保存
注意::英文输入法下使用shift + :
3. Vim的三种工作模式
- 命令模式:用户输入vim时当做指令处理的
- 编辑(插入)模式:用户输入vim时字符要写入文件中
- 末行模式:文件保存和退出vim
- 三种模式之间的转换关系:
命令模式下输入的快捷键解释:
- i:在目前光标前插入所要输入的文字
- a:在目前光标后开始输入文字
- o:在当前光标所在行下新增一空行,并从行首开始输入文字
- I:插于行首
- A:插于行尾
- O:在当前光标所在行上新增一空行,并从行首开始输入文字
4. Vim的常用命令
(1)光标移动
- 行间移动
gg:移动光标到第一行
G:移动光标到最后一行
:n:移动到第n行,写法::6 移动光标到第6行
- 列间移动
$:移动光标到当前行的行尾
0:(数字0)移动光标到当前行的行首
(2)删除指令
- 列(字符)删除
x:删除当前光标所在处一个字符
nx:删除当前光标所在处以及后面共n个字符,写法:6x 删除从当前光标开始6个字符
X:删除当前光标的左边第一个字符
D:删除当前光标至行尾
- 行删除
dd:删除当前光标所在行
ndd:删除当前光标所在后面n行
dG:删除当前光标所在行至文件末行
:n1,n2d:删除n1到n2行,写法:1,12d表示删除自行1至12行
(3)拷贝
- 列(字符)拷贝
多按几次Esc,然后按v,进入可视方式,移动方向键选中文本, 然后按下y,就拷贝完成
- 行拷贝
yy:复制当前行
nyy:复制当前行以下n行
:n1,n2 copy n:复制n1到n2行数据后粘贴到dn行,写法:3,14 copy 2 从第3行拷贝至第14行,将拷贝的内容粘贴到第2行
(4)粘贴
- P:如果拷贝的是整行粘贴在当前行下;如果拷贝的是列(字符) 粘贴在当前光标之后
- p:如果拷贝的是整行粘贴在当前行上;如果拷贝的是列(字符) 粘贴在当前光标之前
(5)撤销
- u:撤销上一步操作,相当于ctrl+z
- U:撤销当前行中的所有操作
- ctrl -r:重做撤销的操作
(6)字符查找
- :/string:从光标所在处向后寻找“string”字符串,按n可往下继续找,按N可往上查找
- :?string:从光标所在处向前寻找“string”字符串,可按N向下继续找,按n向上查找
- :set ic:查找时忽略大小写,举例,查找f,匹配 f+F
- :set noic:查找时对大小写敏感,举例,查找f,匹配f
请注意:set ic 和 set noic 必须要在文本查找之前进行
(7)字符替换
- :%s /old/new:将全文每一行第一个匹配项old替换成new
- :%s /old/new/g:将全文中所有的old替换为new
- :n1,n2s /old/new/g:在n1到n2行间替换old为new
(8)其他常用指令
- :set nu:设置行号
- :set nonu:设置取消行号
- ctrl+g:显示文件名,当前的行号,文件的总行数和文件位置 的的百分比