跳至主要內容

Linux vi/vim

微信公众号:储凡2023/2/28大约 10 分钟

Linux vi/vim

  • 命令模式(Command mode):VIM 的默认模式,可以用于移动游标查看内容;
  • 编辑模式(Insert mode):按下 "i" 等按键之后进入,可以对文本进行编辑;
  • 指令列模式(Bottom-line mode):按下 ":" 按键之后进入,用于保存退出等操作。

在指令列模式下,离开或者保存文件常用命令:

  • :w 写入磁盘
  • :w! 当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关
  • :q 离开
  • :q! 强制离开不保存
  • :wq 写入磁盘后离开
  • :wq! 强制写入磁盘后离开

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。 若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER 回车键,换行
  • BACK SPACE 退格键,删除光标前一个字符
  • DEL 删除键,删除光标后一个字符
  • HOME/END 移动光标到行首/行尾
  • Page Up/Page Down 上/下翻页
  • Insert 切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC 退出输入模式,切换到命令模式

指令列模式

在输入模式模式下按下:(英文冒号)就能进入。

指令列模式可以输入单个或多个字符的命令,可用的命令非常多。

在指令列模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件

ESC键可随时退出指令列模式。

常用命令操作

退出

  • :wq! 强制保存退出
  • :wq 保存退出
  • :x 作用和:wq 一样
  • ZZ 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
  • :q 退出
  • :q! 强制退出

移动

  • h 在当前行向左移动一个字符
  • j 移动到下一行
  • k 移动到上一行
  • l 在当前行向右移动一个字符
  • Ctrl +f 向前滚动一页
  • Ctrl +b 向后滚动一页
  • :n 将光标定位到第n行
  • :$ 将光标定位到最后一行
  • 0 将光标定位到本行的行首
  • $ 将光标定位到本行的行尾
  • G 将光标定位到本文章的最后一行,与:$功能相同。

搜索

  • / 后面跟要查找的东西,在文件中向前搜索
  • ? 后面跟要查找的东西,在文件中向后搜索
  • n 向前重复搜索
  • N 向后重复搜索

插入

  • i 在当前位置的字符前面进入插入模式
  • I 在当前行的开头进行插入
  • a 在当前位置的字符后面进入插入模式
  • A 在当前行的结尾进行插入
  • o 在当前行下面打开一个新行进行插入
  • O 在当前行上面打开一个新行进行插入

删除或剪切

  • dd 删除当前行
  • dw 删除一个单词
  • x 删除一个字符
  • nx 删除n个字符
  • dG 删除当前光标到文件末尾的所有内容。
  • d0 删除当前光标到本行行首的所有内容
  • d$ 删除当前光标到本行行尾的所有内容
  • :1,100d 删除1~100
  • :100d 删除第100行
  • :1,100 mo $ 将1~100行的内容移动到最后一行。

参考资料

更新日志

2024/7/29 23:43
查看所有更新日志
  • 5a2b2-feat: 移除markdown-cli模块,采用prettier校验文档格式
  • c0f2d-refactor: 升级vuepress相关版本,优化项目结构 (#137)
  • c374b-feat: 更新一些文档的固定链接 (#87)
  • b0275-feat(markdownlint-cli): 添加markdown文档校验,支持lint脚本自动格式化文档
  • 5f1e1-feat: 导航栏、侧边栏内容修改,新增目录对应的文档
  • 02ab1-style: 文档目录调整,修改mdEnhance配置
  • b6c2f-docs: 新增curl、vim等相关文档
  • a23ce-refactor: 新增manuscript目录,优化文稿结构
  • 0ef50-docs: 新增一些文档,修复启动异常