VIM的使用

打开文件

[root@stardust ~]# vim passwd +n           # 打开在第n行
[root@stardust ~]# vim passwd +            # 打开在最后一行
[root@stardust ~]# vim passwd +/ssh        # 打开在第一个被PATTERN匹配到的行

编辑模式

进入插入模式

  • i 光标前编辑
  • a 光标后编辑
  • o 光标下方新行编辑
  • O 光标上方新行编辑
  • I 光标所在行的行首输入
  • A 光标所在行的行尾输入

光标跳转

  • h 光标左移
  • j 光标下移
  • k 光标上移
  • l 光标右移

  • w 光标跳转至下一个单词词首

  • e 光标跳转至下一个单词词尾
  • b 光标跳转至前一个单词词首

  • $ 光标移动至行尾

  • ^ 光标移动至行首第一个非空字符
  • 0 光标移动至行首

  • gg 光标跳转至文件首

  • G 光标跳转至文件尾

字符编辑

  • x 删除光标所在处的字符
  • r 替换光标所在处的字符
  • p P 粘贴剪切的内容
  • d 删除字符 配合光标跳转字符使用 实现范围删除
  • D 删除至行尾 相当于d$
  • dd 删除整行
  • y 复制字符 配合光标跳转字符使用 实现范围复制
  • yy 复制整行
  • c 删除字符并可以直接编辑 配合光标跳转字符使用
  • C 删除字符并可以直接编辑 相当于c$
  • cc 删除整行 并可以直接编辑
  • u 撤销刚才的操作
  • Ctrl + r 恢复刚才的撤销操作
  • . 重复上一次的编辑操作

翻屏操作

  • Ctrl + f 向文件尾部翻一屏
  • Ctrl + b 向文件首部翻一屏

可视化模式

配合编辑模式中的操作方式使用

  • v 按照字符选定
  • V 按照行选定
  • Ctrl + v 按照块选定

末行模式

内建的命令行接口

地址定界

  • M 第M行
  • M, N 从M行开始到N行结束
  • M, +N 从M行 往后N行,即M行到M+N行
  • . 当前行
  • $ 最后一行
  • % 全文 相当于 1,$
  • /pat1/,/pat2/ 从第一个匹配的pat1到第一次匹配的pat2中间的行

编辑命令

配合地址定界使用

  • d 删除
  • y 复制
  • w /PATH/TO/SOMEWHERE 将范围内的行另存至指定文件中
  • r /PATH/FROM/SOMEFILE 在指定位置 插入指定文件中的内容

  • s/要查找的内容/替换为的内容/修饰符

    • 第一项 要查找的内容支持使用正则
    • 第二项 替换为的内容不能使用正则,但可以使用1 2后向引用,还可以使用&引用前面查找到的内容
    • 修饰符 i不区分大小写 g全局替换

进阶操作

多文件模式

  • next 后一个文件
  • prev 前一个文件
  • first 第一个文件
  • last 最后一个文件
  • qall 退出所有文件
  • wall 保存所有文件 不退出
  • wqall 保存退出所有文件
  • qall! 不保存退出所有文件

窗口分隔模式

[root@stardust ~]# vim -o file1 file2 file3        # -o 打开多个文件 水平展示
[root@stardust ~]# vim -O file1 file2 file3        # -O 打开多个文件 垂直展示
# 使用`Ctrl + w` + 方向键 控制窗口切换

单文件窗口分割

  • Ctrl + w,s split 水平分割
  • Ctrl + w,v vertical 垂直分割
  • Ctrl + w,方向键 窗口切换

定制vim的工作特性

配置文件 /etc/vimrc,~/.vimrc

  • set nu,set nonu 显示行号 默认关闭
  • set ai,set noai 自动缩进 默认关闭
  • set sm,set nosm 括号匹配 默认开启
  • set hlsearch,set nohlsearch 搜索高亮 默认开启
  • syntax on,syntax off 语法高亮 默认开启
  • set ic,set noic 忽略字符大小写 默认关闭
  • set ts=4 设置tab为4个空格
  • set expandtab,set noexpandtab 设置tab是否转换为空格

Linux系统内置vimtutor命令,帮助大家学习vim的操作





原文地址:https://www.cnblogs.com/hemingyuan/p/7914471.html