Linux——vim指令深入使用

13 篇文章 0 订阅

一、Vi及Vim区别

Vi全称Visual Editor,为命令行界面下的文本编辑工具,同时为Unix系统默认的编辑器。Vim全称 Vi IMproved,是Vi的增强版,最明显的区别就是Vim显示字体是彩色的,而Vi使用系统默认字体颜色显示文本内容。

二、Vim三种工作模式转换关系

在这里插入图片描述

三、vi/vim键盘图

在这里插入图片描述

四、Vim三种工作模式常用命令

  1. 一般模式
    可执行操作:移动光标、删除复制及粘贴、查找及替换
    ① 移动光标
序号操作键功能
1n + h/←光标左移n个字符
2n + j/↓光标下移n个字符
3n + k/↑光标上移n个字符
4n + l/→光标右移n个字符
5ctrl+f / PgDn屏幕向文件尾移动一页
6ctrl+b/PgUp屏幕向文件头移动一页
7n+空格n为数字,如果当前位置向右移动n个字符,遇到换行继续。
80(数字)Home
9$/End移动到该行行末
10H移动到当前屏幕最顶行,Highest
11M移动到当前屏幕中间行,Middle
12L移动到当前屏幕最底行,Lowest
13gg光标移动到文本的首行
14G光标移动到文本最末行
15nG光标移动到文本的第n行,n为数字
16n+回车n为数字,光标下移n行

② 删除、复制和粘贴

序号操作键功能
1x,Xx向行末删一个字符,X向行首删一个字符
2nxn为数字,向行末删n个字符
3dd删除光标所在行
4ndd删除从光标所在行开始的n行
5d1G删除光标所在行到第一行的数据,拆分为d + 1G,1G为光标移到第一行
6dGd+G,G移动光标到文末,所以为删除当前行到行末的数据
7yy复制光标所在行
8nyy用法同ndd,不过这里是复制
9y1G,yG用法同d1G,dG
10p,Pp将数据复制到光标下一行,P将数据从光标上一行开始粘贴
11.J将光标所在行数据与下一行组合成一行,当前行数据在前,数据中间用一个空格隔开
12u撤销操作
13ctrl+r重做上一个操作,注意是这里是重做,和重复不一样
14.重复前一个操作

③查找和替换

序号操作命令功能
1/word向文末查找名为word的字符串,找到第一个word后,按n查找下一个,按N反方向查找下一个。所有符合单词背景色改变,当前符合单词首字母变色
2?word向文首方向查找字符串,找到第一个word后,按n查找下一个,按N反方向查找下一个。所有符合单词背景色改变,当前符合单词首字母变色
3:n1,n2s/word1/word2/g在n1到n2行之间查找word1字符串并替换为word2
4:1,$s/word1/word2/g用法同上一条,不过这里是从文首到文末
5:1,$s/word1/word2/gc基本用法同上一条,但需要用户确定后才进行替换
  1. 编辑模式
    可执行功能:对文档进行编辑
    ①一般模式进入编辑模式
序号操作键功能
1i从当前光标处进入编辑模式
2I从当前行行首处进入编辑模式
3a追加模式,在光标后开始插入
4A在光标所在行行末进入编辑模式
5o在光标所在行行插入一行并在该插入行开始编辑
6O在光标所在行行插入一行并在该插入行开始编辑
7r替换光标所在字符,只替换一次
8R替换光标所在字符,直到按下Esc键,类似于windows下光标在字符下方进行的字符替换模式。

②退出编辑模式
编辑模式下ESC键可退出编辑模式返回一般模式。

  1. 命令行模式
    可执行功能:保存文件,退出vim,读入外部文件,设置行号等
序号操作命令功能
1:w保存文件但不退出
2:w!强制保存但不退出
3:q退出文件但不保存
4:q!强制退出文件但不保存
5wq保存后正常退出
6e!还原文档为最初打开状态
7ZZ等价于:wq
8:w [filename]将文档另存为filename文档
9:r [filename]将光标所在行的下面部分读入filename文件
10:set nu在每行行首设置行号
11:set nonu取消行号
12:n1,n2 w [filename]将n1到n2行内容另存入filename文件。

五、Vim高级功能

  1. 多窗口编辑
    ①vim -On [file1] [file2] ···
    ②vim -on [file1] [file2] ···
    -O代表垂直分割,-o代表水平分割(默认),n代表分屏数,默认n值为后面文件数
    ③窗口切换方式:垂直窗口切换ctrl+w+↓(j)/↑(k),水平窗口切换ctrl+w+←(h)/→(l)若只有两个窗口则加上方向键无效,直接使用ctrl+w即可切换
    ④指定文件窗口跳转
    :n[filename] :有filename项跳至filename文件,否则按窗口顺序跳转下一个窗口
    :e# 回到上一个窗口
    ⑤窗口大小调整
    纵向调整::resize num 调整纵向显示行数
    横向调整::vertical resize num 调整水平显示行数
    ⑥窗口对应文件查看
    :ls 或者 :files 可查看当前vim多窗口命令打开的所有窗口对应的文件名。
    :file用于查看当前窗口为第几个窗口及当前光标所在行。
    ⑦vi与shell的切换
    :shell 可实现不关闭vim的情况下回shell
    shell 状态下 :exit 可实现返回vim窗口。
    ⑧ 新增窗口
    :sp 将同一个文件多显示一份在新窗口中
    :sp filename 在新窗口启动另一个文件
    ⑨关闭分屏
    :only 或者 ctrl + w +o 只保留当前分屏
    :q 退出当前分屏

  2. 多文件编辑
    vim [file1] [file2] [file3] ···
    这种方式就是不分屏的多文件编辑,使用:n进入右侧文件窗口(如file2 :n 后到file3),使用:N进入左侧文件窗口后进入(如file2 :n 后到file1)

  3. 块选择

序号操作键功能
1v字符选择,会将光标经过的地方反白选择
2V行选择,会将光标经过的行反白选择
3ctrl + v区块选择,用长方形选择数据
4y将反白的地方复制
5d将反白的地方删除
6p将复制的内容粘贴

六、文件救援

文件由于异常情况退出,比如在编辑时终端被关闭了会导致.swp文件生成,此时不能正常编辑文件。
解决方法的博文:
Linux——vi指令异常退出导致swp文件冲突

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值