【大数据 / linux 系统 / KEN】Vim & Vi :编辑器之神(5)

Vim & Vi :编辑器之神

首次发布时间:2020/7/13
最后修改时间:2020/7/13

摘要
  • vi 的三种基本工作模式
    • 命令模式
    • 编辑模式
    • 末行模式

vi 简介
  • vi 是 “Visual interface” 的简称,它在 Linux 上的地位就仿佛 Edit 程序在 DOS 上一样
  • 它可以执行输出删除查找替换块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制
  • vi 不是一个排版程序,它不象 Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序
  • vi 没有菜单,只有命令,且命令繁多

vi 的三种基本工作模式
  • 命令模式
  • 编辑模式
  • 末行模式
命令模式:
  • 一启动 vi/vim,就进入了命令模式
  • 在此模式下,键盘输入会被 Vim 识别为命令,而不会作为字符被输入到文档中
  • 常用命令:
    • i:切换到编辑模式,从当前光标所在位置开始输入
    • a:切换到编辑模式,从当前光标所在位置后一位开始输入
    • o:切换到编辑模式,从光标所在行的下一行开始输入,且会自动新开一行
      • (这个命令自己试一下会更直观一点,命令很简单,描述起来有点绕)
      • (我觉得这个命令很实用)
    • 上面这三个命令都是我自己比较常用的切换到编辑模式的命令

    • 扩展:(我没用过,但是是能正常用,只是我觉得不好用,因为还要切换大小写)
      • I:切换到编辑模式,从行首开始输入

      • A:切换到编辑模式,从行末开始输入

    • dd删除光标所在行的整行内容
    • ndd:自光标所在行向下删除 n 行
      • (n 是具体行数,需要你自己输入)
      • (例如 10dd,表示删除自光标所在行向下 10 行)
    • 这两个也很实用,可以比较快的删除内容

    • u:回退所做的修改
    • ctrl + r:撤销回退
    • 这两个命令配合使用,功能类似于 Windows 下的 ctrl + zctrl + y

编辑模式:
  • 命令模式下按下 i 就进入了输入模式(或者使用上面 3 个命令中的一个也行)
  • 编辑模式下的编辑操作就不赘述了,和 Windows 下差不多,只是不能用鼠标而已
  • 按一下 ESC 键就可以回到命令模式
末行模式:
  • 在命令模式下按下 :(英文冒号)就进入了末行模式
  • 注意:有时候一直按 : 没反应,看下是不是用了中文冒号

  • 常用的命令(已经省略了冒号):
    • q:退出 vi/vim
    • q!:强制退出,且不保存修改
    • w:保存修改
    • wq:保存并退出
    • wq!:强制保存并退出(这个命令是针对只读文件的,平常不会用到)
  • 按两下 ESC 键就可以回到命令模式

在这里插入图片描述


vim 基础操作
1.1 编辑模式
按键说明
i在光标位置开始输入
l (大写 i)在行首开始输入
a光标后一位开始输入
A在行末开始输入
o在光标所在行的下一行新开一行,并在新开行的行首开始输入
O在光标所在行的上一行新开一行,并在新开行的行首开始输入
1.2 末行模式
  • 在命令模式下,输入 :(英文冒号),即可进入末行模式
  • 退出:
按键说明
:q退出 vim
:q!退出 vim,并且不保存修改
:w保存修改
:qw保存修改并退出
:x保存修改并退出
  • :x 在文件内容有修改时,才会写入文件,并更新文件修改时间

  • :qw 无论文件内容是否有修改都会写入文件,并更新文件修改时间,会在编译时产生不必要的开销

  • 所以一般首选使用 :x

  • 查找命令:

按键作用
/str(字符串查找),这个比较常用,跟 Windows 下的 ctrl + f 功能类似
n下一个
N上一个
:%s/String//gn/ 作用类似,也是查找字符串。不过这个命令还可以显示出需要查找的内容的个数,命令中的 String 替换成你们要查找的内容即可
  • 在命令模式下,按下 / ,输入需要查找的字符串内容

  • 然后按回车,即可开始查找

  • 开始查找后,按 n往后查找下一个,按 N往前查找上一个

  • :%s/String//gn:这个命令也是通过 nN 来查找上一个/下一个。

  • 替换命令:

  • 目标:把 abc 全部替换为 123

末行模式下,将当前文件中的所有 abc 替换成 123
:%s/abc/123/g
(如果不使用 g,则只会替换每一行的第一个 abc

末行模式下,将第 1 行至第 10 行的 abc 替换成 123
:1,10s/abc/123/g

  • vim 里执行 shell 下的命令:
    • 在末行模式下输入 !,然后后面跟 shell 命令
    • 例如::!git log
      • 这样就会直接跳到 git log 的显示
      • 此时按一下回车,就会回到 vim 里面
1.3 命令模式
  • 移动光标:
按键作用
h左移
j下移
k上移
l右移
M光标移动到当前屏幕的中间行
L光标移动到当前屏幕最后一行行首
gg光标移动文件开头
G光标移动到文件末尾
nG移动到指定行,n 是行号 G
w向后一次移动一个字
b向前一次移动一个字
{按段移动,上移
}按段移动,下移
Ctr-d向下翻半屏
Ctr-u向上翻半屏
Ctr-f向下翻一屏
Ctr-b向上翻一屏

其实光标移动这里我一个也记不住,也太多了
我一般就用 方向键 + HOME + END + PageUp + PageDown 键来移动光标
简单易用,我觉得这就足够满足我的使用了

  • 撤销命令:
按键作用
u撤销修改
ctrl + r反撤销(和 u 的作用相反)
  • 这两个命令前文也讲过了

  • 删除命令:

按键作用
x删除光标后一个字符,相当于 Del
X删除光标前一个字符,相当于 Backspace(退格键)
dd删除光标所在行,ndd 表示删除 n 行(这个命令前面也讲过)
D删除光标后本行所有内容,包含光标所在字符
d0删除光标前本行所有内容,不包含光标所在字符
dw删除光标开始位置的字,包含光标所在字符
de删除光标所在位置到本单词末尾
dE删除光标所在位置到本单词末尾包括标点符号
db删除光标所在位置到前面单词
dB删除光标所在位置到前面单词包括标点符号
d$删除光标所在位置到本行末尾

我就只用过 xXddndd,其它的目前没用过

  • 复制粘贴:
按键作用
yy复制当前光标所在行,nyy 表示复制 n
p在光标所在位置向下新开辟一行,并粘贴通过 yy 复制的内容,np 表示将复制的内容粘贴 n
  • 替换操作:
按键作用
r替换当前字符(用法:按一下 r,然后输入字符,只能替换光标所在位置的字符)
R替换当前行光标后的字符(输入的时候有点类似于点了 insert 键)
  • 文本行移动:
按键作用
>>文本行右移
<<文本行左移

感觉没什么用

  • 重复命令:
按键作用
.重复上一次操作的命令
  • 可视模式:
按键作用
v按字符移动,选中文本
V按行移动,选中文本
  • 选取文本后:
    • d 删除选取的文本内容
    • y 复制选取的文本内容
    • <<>> 对选取的文本内容左右移动
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值