【Linux学习07】vim的三种模式


Vim存在三种模式:命令模式,编辑模式,末行模式

1 vim打开文件的方式

  • # vim 文件路径:打开指定的文件(先按shift+:再按q退出)
  • # vim +数字 文件的路径 :打开指定的文件,并且将光标移动到指定行
  • # vim +/关键字 文件路径:打开指定的文件,并且高亮显示关键字
  • # vim 文件路径1 文件路径2 文件路径3 :同时打开多个文件

先复制一个etc/passwd文件到家目录下:
【Linux学习07】vim的三种模式
【Linux学习07】vim的三种模式
【Linux学习07】vim的三种模式

2 命令模式

注意:该模式是打开文件后进入的模式

2.1 光标的移动

  • 光标移动到行首:按键shift+6
  • 光标移动到行尾:按键shift+4$
  • 光标移动到首行:按键gg
  • 光标移动到末行:按键G
  • 翻屏:向上翻(ctrl+b)或者pgup 向下翻(ctrl+f)或pgdn

2.2 复制操作

  1. 复制光标所在行:yy
    粘贴:在想要粘贴的地方:p
  2. 以光标所在行为准(包含当前行),向下复制指定的行数:数字+yy
  3. 可视化复制:按键ctrl+v,然后按方向键选中需要复制的区块,按键yy进行复制,按键p粘贴。

2.3 剪切操作

  1. 剪切/删除光标所在行:按键dd (删除之后下一行上移)
  2. 以光标所在行为准(包含当前行),向下剪切指定的行数:数字+dd
  3. 剪切/删除光标所在行:按键D(光标不上移,当前行会变成空白行)

2.4 撤销/恢复

  1. 撤销:按键u
  2. 恢复:按键ctrl+r

2.5 光标的快速移动

  1. 快速将光标移动到指定的行:按键数字+G
  2. 以当前光标为准,向上或者向下移动指定的行:按键数字+上下方向键
  3. 以当前光标为准,向左或者向右移动指定的行:按键数字+左右方向键
  4. 末行模式下:输入英文,其后输入行数字,然后回车

3 模式之间的切换

【Linux学习07】vim的三种模式

4 末行模式

4.1 保存退出操作

  1. 保存:输入: w
  2. 另存:输入: w 路径
  3. 退出 :输入: q
  4. 保存并退出:输入: wq
  5. 强制退出:输入: q!(不保存)

4.2 搜索和替换

  1. 搜索:输入/关键词,在搜索结果中切换上一个或下一个结果N/n
  2. 取消高亮:输入:: nohl(no highlight)
  3. 替换:: s/搜索的关键词/新的内容 (替换光标所在行的第一处符合条件的内容)
  4. 替换:: s/搜索的关键词/新的内容/g (替换光标所在行的全部符合条件的内容global)
  5. 替换:: %s/搜索的关键词/新的内容 (替换整个文档的的第一处符合条件的内容)
  6. 替换:: %s/搜索的关键词/新的内容/g (替换整个文档的的全部符合条件的内容)
  7. 显示行号:: set nu
  8. 取消显示行号:: set nonu
  9. 使用vim打开并切换多个文件
    查看当前打开的文件:: files
    【Linux学习07】vim的三种模式
    切换文件的方式:指定切换文件的名称:: open 已经打开的文件名称
    通过命令切换上一个文件:bp (切换到上一个文件) back prev
    通过命令切换下一个文件: bn(切换到下一个文件) back next

5 编辑模式

必须在命令模式下进入编辑模式
【Linux学习07】vim的三种模式
【Linux学习07】vim的三种模式

6 实用功能

6.1 代码着色

进入文件vim hello.java并编写代码:
【Linux学习07】vim的三种模式
着色显示:syntax on
着色关闭:syntax off
【Linux学习07】vim的三种模式
【Linux学习07】vim的三种模式

7 扩展内容

7.1 vim的配置

vim配置有三种情况:

  1. 在文件打开的时候在末行模式下输入的配置(临时的)
  2. 个人配置文件(~/.vimrc,如果没有可以自行新建)
  3. 全局配置文件(vim自带,/etc/vimrc)
  • 配置个人配置文件:
    新建好个人配置文件后
    【Linux学习07】vim的三种模式
    进入编辑模式:按键i
    在编辑模式中输入:set nu(假如说配置显示行号功能)
    按键esc,退出编辑模式
    进入末行模式,输入wq保存并退出
    配置好以后,vim打开的所有文件以后都会显示行号
    【Linux学习07】vim的三种模式
  • 如果某个配置项,在个人配置文件和全局配置文件产生冲突的时候应该以谁为准?
    测试步骤:在两个配置文件中针对同一个配置项设置不同的值
    在全局的配置文件中设置不显示行号,在个人的配置文件中显示行号
    【Linux学习07】vim的三种模式
    【Linux学习07】vim的三种模式
    【Linux学习07】vim的三种模式
    如果个人中没有配置,就会以全局配置文件为准。

7.2 异常退出

异常退出:在编辑文件之后并没有正常的保存退出,就会导致异常退出
【Linux学习07】vim的三种模式
解决方法:
点击回车,删除交换文件选择D
直接使用命令删除,rm -rf .passwd.swp

7.3 别名机制

作用:相当于创建一些属于自己的自定义命令
别名机制需要依赖一个别名配置文件:~/.bashrc
【Linux学习07】vim的三种模式
【Linux学习07】vim的三种模式
如果想创建的命令生效,需要重新登录当前用户
【Linux学习07】vim的三种模式

7.4 退出方式

vim退出编辑的文件可以使用:: q: wq
除了这个语法之外,还有另一个语法:: x
 在文件没有修改的情况下表示直接退出
 在文件修改的情况下表示保存并退出
如果文件没有修改,使用: wq,会更新文件修改时间
如果文件没有修改,使用: x,不会更新文件修改时间