五、vim三种模式(重点)
vim中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式):
命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等),(打开文件后的默认模式);
编辑模式:在该模式下可以对文件的内容进行编辑;
末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等);
Vim打开文件的方式(4种):
#vim 文件路径 作用:打开指定的文件
#vim +数字 +文件路径 作用:打开指定的文件,并且将光标移动到指定行
#vim +/关键词 文件路径 作用:打开指定的文件,并且高亮显示关键词
#vim 文件路径1 文件路径2 文件路径3 … 作用:同时打开多个文件
1.命令模式
注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)
1. 光标移动
-
光标移动到行首: 按键:shift+6 或 ^(不能是小键盘的6)
-
光标移动到行位: 按键:shift+4 或 $
-
光标移动到首行: 按键:gg
-
光标移动到末行: 按键:G
-
翻屏:
向上:ctrl+b (before) 或者 PgUp 向下:ctrl+f (after) 或者 PgDn
2. 复制操作
- 复制光标所在行: 按键:yy,粘贴:p
- 以光标所在行为准,向下复制指定的行数: 按键:数字 yy
- 可视化复制: ctrl+v +方向键 选中需要复制的区块,按下yy进行复制,p粘贴
3. 剪切/删除
- 剪切/删除光标所在行: 按键:dd
- 剪切/删除光标所在行为准,向下删除/剪切指定的行: 按键:数字 dd
- 剪切/删除光标所在的当前行,但是删除之后下一行不上移: 按键:D(删除之后当前行变为空白)
4. 撤销/恢复
- 撤销: 输入:u 或 u (小写)
- 恢复: ctrl+r (取消之前的撤销操作)
5. 扩展1:光标的快速移动
-
快速将光标移动到指定的行: 按键:数字 G
-
以当前光标为准向上或向下移动n行: 按键:数字 ↑,数字 ↓
-
以当前光标为准,向左/右移动n字符: 按键:数字 ←,数字 →
-
末行模式下的快速移动方式:移动到指定的行
按键: : 数字
2.末行模式
进入方式:由命令模式进入,按下”:”即可进入 退出方式: a. 按下esc b. 连按2次esc c. 删除末行全部输入字符
* 保存操作(write):“:w” 保存文件 “:w 路径” 另存为
* 退出(quit): “:q” 退出文件
* 保存并退出: “:wq” 保存并且退出
* 强制(!): “:q!” 表示强制退出,刚才修改操作不做保存
* 调用外部命令(了解): “:!外部命令”
* 搜索/查找: “/关键词” N、n:切换上、下个结果 next
如果需要取消高亮,则需要输入:“:nohl”【no highlight】
* 替换:
> :s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容
> :s/搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容
> :%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容
> :%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容
%表示整个文件
g表示全局(global)
* 显示行号:“:set nu”【number】 取消显示:“:set nonu”
* 扩展2:使用vim同时打开多个文件,在末行模式下进行切换文件
> 查看当前已打开的文件名称:“:files”
> %a,a=active,表示当前正在打开的文件;
\#,表示上一个打开的文件
> 切换文件的方式:
a. “:open 已经打开的文件名”
b. “:bn(back next)”切换到下一个文件 “:bp(back prev)”切换到下一个文件
3.编辑模式
* 进入方式:i(insert)、a(after)、o、I、A、O
* 退出方式:esc
使用功能
1. 代码着色
- 如何控制着色显示与否 显示:“:syntax on” 关闭显示:“:syntax off” syntax语法
2. vim中计算器的使用 当编辑文件的时候突然需要使用计算器去计算一些公式,则此时需要用计算器,但是需要退出,vim自身集成了一个简易的计算器 a. 进入编辑模式 b. 按下按键“ctrl+R”,然后输入“=”,此时光标会变到最后一行
c. 输入需要计算的内容,按下回车
扩展
3. vim的配置(重点) vim配置有三种情况: a. 在文件打开的时候在末行模式下输入的配置(临时的) b. 个人配置文件(~/.vimrc,如果没有可自行创建) c. 全局配置文件(vim自带,/etc/vimrc)
① 新建好个人配置文件之后进入编辑 ② 在配置文件中进行配置
-
比如显示行号:set nu
问题:如果某个配置项,在个人配置文件与全局配置文件产生冲突的时候应该以谁为准? 测试步骤:在两个配置文件中针对同一个配置项设置不同的值 ① 现在全局的配置中设置不显示行号,在个人的配置文件中设置显示行号,观察结果 最后显示行号:说明以个人为准 ② 先在全局中配置显示行号,在个人中设置不显示行号,观察结果 最后不显示行号:说明以个人为准
结论:如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件中不存在这一项,则以全局配置文件为准 **2.异常退出** 什么是异常退出? 在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭中单或者断电的情况,则会显示下面的效果,这个情况称之为异常退出
解决办法:将交换文件(在编程过程中产生的临时文件)删掉即可 语法:#rm -f .文件名.swp
4. 别名机制
- 作用:相当于创建一些属于自己的自定义命令
-
例如:在windows下有cls命令,在Linux下可能因为没有这个命令而不习惯清屏。现在可以通过别名机制来解决这个问题,可以自己创造出cls命令
别名机制依靠一个别名映射文件:~/.bashrc 注意:如果想新创造的命令生效,必须要重新登录当前用户
5. 退出方式 回顾:之前vim中退出编辑的文件可以使用“:q”或者“:wq”。 除了上面的这个语法之外,vim还支持另外一个保存退出方法“:x”。 说明: ① “:x”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出; ② 如果文件没有被修改,但是使用wq进行修改的话,则文件的修改时间会被更新;但是如果此时使用x退出的话,则文件修改时间不会更新; 注意:不要使用成X,不要使用成X,不要使用成X。X表示对文件进行加密操作
4.Linux自由服务
运行模式
运行模式也可以称之为运行级别。 在linux中存在一个进程:init(initialize,初始化),进程id是1。 查看进程:#ps -ef | grep init 该进程存在一个对应的配置文件:inittab(系统运行级别配置文件,位置/etc/inittab)
Centos6.5中存在7种运行级别/模式
0 :表示关机级别(不要将默认的运行级别设置成0)
1 :单用户模式
2 :多用户模式,不带NFS(Network File Sysetem)
3 :多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)
4 :没有被使用的模式(被保留模式)
5 :X11,完整的图形化界面模式
6 :表示重启级别(不要将默认的运行级别设置成6)
与该级别相关的几个命令:
\#init 0 表示关机
\#init 3 表示切换到服务器模式
\#init 5 切换到图形界面
\#init 6 重启电脑
注意:init指令需要超级管理员的权限,普通用户无法执行
这些命令其实都是调用的init进程,将数字(运行级别)传递给进程,进程去读配置文件执行对应的操作。
配置:systemctl set-default multi-user.target 设置为3 graphical.target 设置为5