Vim编辑器使用
Ubuntu: sudo apt-get install vim
红帽: yum install vim
安装过程中如果提示 文件被锁,则删除该锁继续安装。
sudo rm /var/lib/dpkg/lock
sudo apt-get install vim
==================================================
替代方案: gedit xxx.c
我们来系统的学习的VI的使用。
基本上vi可以分为三种模式,分别是
命令模式(command mode) ===>输入vi的命令和快捷键
插入模式(Insert mode) ===>进入编辑模式,可以编辑文件
底行模式(last line mode) ===>调整文件内容
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算
入命令行模式command mode)。
所以大多数情况下我们主要应用 命令行模式与插入模式
1、vi启动与模式:
1)vim test.c 是直接用vi 打开一个文件,
如果文件不存在,则会自动创建。
2)vi -R test.c 以只读方式打开文件,
文件底层会有只读提醒。
各模式切换:
2/8****************************************
vi/vim a.c ==》默认进入的是命令行模式,不能编辑文件
1、按下 a/i/o 任意字符即可进入插入模式,注意文件左
下角会出现 "--插入(粘贴)-- "
2、开始编写代码
3、准备退出时候,按下 ESC 键,切换到命令行模式
在按下 shift + : 组合键,进入低行模式,标致是
文件左下角出现不停闪烁的":"
在":"之后写 wq 回车 保存退出
***********************************************
2、vi移动
0) 默认支持方向键 ***********
3/8 1)向前移动: l 、 空格、->
2)向后移动: h、 <-
3)移动到下一行: +、ENTER、j、ctrl+n、方向下键
4)移动到上一行: - 、 k、 ctrl+p 、 方向上键
向上
|
|
- | k
|
|
向前<---h----光标当前位置 ---l--->向后
|
+ | j
|
|
向下
5)移动到行首:0 、 ^ 、在命令行模式下执行
6)移动到行尾:$
***********************
8)屏幕滚动下: ctrl+f 移动一屏,保留两行 ***********
ctrl+d 移动半屏
9)屏幕滚动上: ctrl+b 移动一屏 ***************
ctrl+u 移动半屏
10)定位:zt 定位到屏幕顶端都是在命令行模式下执行
zb 定位到屏幕底端
gg 定位到文件开头 ************
G 定位到文件末尾 ************
4/85/8
测试:
mkdir gaojic mkdir 01 cd 01
sudo cp /usr/include/stdio.h ./
ls ==> stdio.h
vi stdio.h
练习以上快捷方式
以上所有操作在命令行模式执行,当进入插入模式后必须退出来才能执行以下命令
3、vi编辑
1) 插入 i/I i 在光标当前插入
I 在光标行开头插入
2) 附加 a/A a 在光标后增加
A 在光标行最后增加
3) 新行 o/O o 在光标行下新起一行
O 在光标行上面新起一行
4) 删除 x/X x 删除光标所在处字符
X 删除光标前面的字符,
可以 nx /nX 表示删除多少个字符
5) 删除行 dd/D dd 删除光标所在行 ******************
D 从光标所在位置开始到行末位
dgg 删除光标所在行到文件开头的所有数据**************
dG 删除光标所在行到文件末尾的所有数据**************
u 用来插销刚才的操作 ***************
6)剪贴与粘贴: 剪贴有缓冲区9个,类似压栈方式存储。每次复制一次都是放到第
一个缓冲区
dd 剪贴一行
p 粘贴一行 ***************
“2p 粘贴2号缓冲区数据
“3p 粘贴3号缓冲区数据
7)复制与粘贴:
yy 赋值一行
p 粘贴一行 ********************
练习:
自己打开一个普通文件写入一些数据,
使用以上快捷键测试效果。
以下都是底行模式操作:
8)复制与移动: 底行模式下执行
:开始行,结束行 co 目标行
例如 :1,2 co 5 把第一行到第二行复制到第五行
:开始行,结束行 m 目标行
例如: :1,2 m 5 把第一行到第二行移动到第五行
7)移动到指定行: :行号行号G
===>底行模式执行 ***********
4、vi查找与替换
1) 查找在命令模式使用 "/" 在其后直接写需要查询的
关键字 然后 回车 ==》n/N 来查询
n 表示从光标处开始往下找
N 表示从光标处开始往上找
/\<xx\> 表示严格匹配查找 xx 字符
/\<printf\> ==>严格匹配,只查找该单词
/printf ==>模糊匹配,只要包含该单词都高亮显示
在当前文档中严格匹配查找单词printf
//在低行模式下执行
2) 替换 :g/s1/s//s2/g *********
将文件中所有的s1字符串都替换成s2,
s1和s2可以使字母也可以是字符串
eg: :g/printf/s//PRINTF/g
将当前文档中所有的小写printf全部替换成大写的printf
5、其他常用操作
vi 撤销 u 撤销刚才的操作
vi 重复 . 重复刚才的动作
vi 挂起 ctrl+z
vi 恢复 fg
vi 跳转 gd将光标移动到你要跳转的变量或者函数上,
在执行gd即可跳转到定义处
[I 将光标移动到你的查找的变量或者函数上,
执行[I即可查找到相关头文件和当前文件中的调用信息
vi 关键字补齐 ctrl+n 在编写代码过程中先写一部分
单词再按下ctrl+n 则能看到补全信息
vi 自动缩进 "=" 在命令行模式执行 = 完成缩进,
可以鼠标全选后 = 来整体缩进
按下 v 字符 移动方向键选中区域在按 = 完成排版
ggvG 可以全选当前文档,在按 = 完成排版
===============================================================
小技巧:
按V 进入可视模式,v 可以选定任意个字符,V 是行选定。
进入可视模式后可以用方向键来选择区域,然后按下y 可以复制,d 可以剪贴
再用p就 可以粘贴
在可视模式下选择任意区域后,按下 = 可以自动代码缩进。
*****************
在光标移动到括号上的时候 ,按下 % 可以找到对应的
另一个括号可以vi xx xx xxx 多文件编辑,在底行输入
e xx 可以文件切换 ,或者在底行输入 : n :N 来回切换
:sp(:vsp) 文件名 vim 将分割出一个横(纵)向窗口,
并在该窗口中打开新文件.
各个窗口之间切换用ctrl+w 看光标在切换
:set diff
此命令用于比较两个文件是否一样
:set nodiff 可以讲不同之后的颜色去掉。
:vsp filename
命令打开另一个文件, 然后在每个文件
窗口中输入此命令,就能看到效果了.
:shell 可以在不关闭vi的情况下切换到
shell命令行
:exit 从shell回到vi
文件退出: 在底行模式执行
shift + zz 可以自动保存文件并退出
当前编辑环境
: wq 保存退出
: q 不保存退出
: x 保存退出
: wq!强制保存退出
: q! 强制不保存退出
: wq /home/linux/xxx.c 指定位置保存文件
ctrl+shift+ + 放大
ctrl+ - 缩小