Linux中的vim编辑器常用操作

2022-11-17 16:15:40 浏览数 (1)

目录

前言 vim的两种模式

第一章 输入模式

第二章 命令模式

  • 保存及退出
  • 光标的移动
  • 查找与替换
  • 删除
  • 复制粘贴
  • 撤销
  • 显示行号及注释

前言 vim的两种模式

vim是从vi发展成的文本编辑器,相比于功能比较齐全的vi而言,vim编辑器更加方便。使用vim编辑器打开文件后,会自动进入命令模式,用户可以通过点击键盘上的字母i切换至输入模式。键盘上的Esc则可以让用户从输入模式切换回命令模式


第一章 输入模式

输入模式下,和windows系统中默认的文本编辑器操作类似,通过Enter换行,Backspace退格,光标键移动光标等等。除了这些常用的按键外,还有以下按键可能会使得编辑的效率提升:

Home

移动光标至行首

End

移动光标至行尾

Page Up

向上翻一页

Page Down

向下翻一页


第二章 命令模式

命令模式下,输入完命令之后按下Enter后便会执行命令。由于无法使用鼠标操作,为了便捷的编辑文本,需要掌握的命令模式操作较多,以下列出常用的一些命令。

Part1:保存及退出

  • :q 退出编辑器
  • :q! 强制退出编辑器
  • :w 保存
  • :wq 保存后退出
  • :[number1],[number2] w [filename] 将文件中的第[number1]行至第[number2]行另存为[filename]
  • :w [filename] 另存为[filename]
  • :r [filename] 将[filename]中的数据粘贴到光标所在行和下一行中间

Part2:光标的移动

  • [number]↓ 光标向下移动[number]行,←↑→同。注:hjkl可以分别代替←↓↑→。
  • ctrl f 向下翻一页
  • ctrl d 向下翻半页
  • ctrl b 向上翻一页
  • ctrl u 向上翻半页
  • 光标会跳过空格行,移至下一行
  • – 光标会跳过空格行,移至上一行
  • 数字0 光标移动到该行的最前端
  • $ 光标移动到该行的最后面
  • :1 光标移动到整个文档的第一行
  • :[number] 光标移动到整个文档的第[number]行
  • :$ 光标移动到整个文档的最后一行

Part3:查找与替换

  • /[word] 向光标之下,查找[word]字符串所在的位置
  • n 在查找状态下,继续向下查找[word]字符串,即下一个
  • N 在查找状态下,反向查找[word]字符串,即上一个
  • :[number1],[number2]s/[word1]/[word2]/g 将第[number1]行至第[number2]行的[word1]字符串全部替换成字符串[word2]
  • :1,$s/[word1]/[word2]/g 上一命令的特殊形式,将所有的[word1]字符串全部替换成字符串[word2]

Part4:删除

  • [number]x 向后删除[number]个字符
  • dd 删除光标所在行
  • [number]dd 删除光标及以下的[number]行
  • d1G 删除文件开头到光标处的所有字符
  • dG 删除光标到文件结尾的所有字符
  • d$ 删除光标到行尾的所有字符

Part5:复制粘贴

  • yy 复制光标所在行
  • [number]yy 复制光标及以下的[number]行
  • y1G 复制文件开头到光标处的所有字符
  • yG 复制光标到文件结尾的所有字符
  • p 粘贴在光标所在行和下一行之间
  • J 将光标所在行和下一行结合

Part6:撤销

  • u 撤销
  • ctrl r 恢复撤销

Part7:显示行号和注释

  • :set nu 显示行号
  • :set nonu 取消行号显示
  • :[number1],[number2]s/^/[注释符]/g 在第[number1]行至第[number2]行的开头添加[注释符],要求[注释符]中不含字符”/”
  • :[number1],[number2]s/[注释符]//g 删除第[number1]行至第[number2]行的开头的[注释符],要求[注释符]中不含字符”/”
  • :[number1],[number2]s#^#[注释符]#g 在第[number1]行至第[number2]行的开头添加[注释符],要求[注释符]中不含字符”#”
  • :[number1],[number2]s#[注释符]##g 删除第[number1]行至第[number2]行的开头的[注释符],要求[注释符]中不含字符”#”

0 人点赞