vim常用操作总结

原文出处:

https://www.zybuluo.com/yangfch3/note/279738



Vim 模式

两种基础模式:- 命令模式(Command mode) - 编辑模式(Insert mode)
一种 - 可视化模式(Visual mode)


基本文件级操作

  • 新建文件
    1. vim newFileName ---> :w
    2. vim ---> :w newFileName
    3. vim ---> :new fileName ---> :w
  • 打开文件
    1. 打开一个文件
      • vim fileName
      • vim ---> :e fileName
    2. 打开多个文件 vim aa bb cc
      • 多个文件间切换到下一个 :n
      • 多个文件间回到上一个 :N
  • 分窗操作
    1. vim ---> :split fileName
      • 切换窗口区域:ctrl + w
  • 分栏操作:一个窗口可以包含多个 tab
    1. :tabnew 创建一个新的 tab
    2. :tabnew fileName 创建一个新的 tab 并打开某个文件
  • 万能切换文件法
    • :ls ---> :e#Num
  • 修改文件名和文件类型
    • :f newName

基本移动操作

以下均在命令模式下操作。

光标移位

  • h 左移
  • j 下移
  • k 上移
  • l 右移
  • Num + Movekey 一次移动任意个,如 20l:右移二十个单位

记忆技巧:K(3) 是上移(“山上”),其余同方向键

词间移位

  • w 下一个 w(ord) 开头
  • W 跳过标点的下一个 word 的开头
  • b 前一个 word 开头
  • B 跳过标点的前一个
  • e 单词的结尾(end)处

记忆技巧:word backward end

行间移动

  • 0 当前行开头
  • ^ 当前行第一个非空字符
  • $ 跳到行尾

记忆技巧:第0个字符 正则

段落移动

段落之间以空白行分隔

  • { 上一段空白分隔行处
  • } 下一段空白分隔行处
  • % 配对括号处

记忆技巧:P 键旁边那个;% 程序员必备,百分百配对!

跳跃移动

  • :Num 移动至第 Num
  • Num + G 移动至第 Num
  • gg 回到文档顶部
  • H 回到屏幕顶部(不是文档顶部)Header
  • G 去到文档底部
  • L 去到屏幕底部(不是文档底部)Last
  • M 去到屏幕中央
  • ctrl+d 向下翻半页
  • ctrl+u 向上翻半页

记忆技巧:/ # * :

基本编辑操作

进入编辑模式

  • i 在光标当前位置向前插入(Insert mode
  • I 在本行第一个字符插入
  • a 在光标当前位置向后插入(Insert after)
  • A 在本行末尾插入
  • o 向下插入一行
  • O 向上插入一行

删除

  • x 向后删除字符
  • X 向前删除字符
  • dd 删除当前行
  • Num + dd 向下删除多行
  • d + Num + G 删除第 Num
  • dw 删除光标当前所在的词(delete word)
  • d* 删除本行光标前的所有非空字符
  • d0 删除本行光标前的所有字符
  • d$ 删除本行光标后的所有字符
  • Num + dw 向后删除多个单词(or d+Num+w

  • c + ↑ 向上删除多个数据

  • c + ↓ 向下删除多个数据

复制粘贴

  • yy 复制当前行 (yank)
  • Num + yy 往下复制多行
  • y + Num G 复制第 Num
  • yw 复制当前词 (yank word)
  • y* 复制本行光标前的所有非空字符
  • y0 复制本行光标前的所有字符
  • y$ 复制本行光标后的所有字符
  • p 粘贴 paste
  • P 粘贴在当前位置之前

撤销

  • u
  • ctrl + r

查找、选择、替换

  • /xxxx 向下搜索 xxxxn 选择下一个,N 选择上一个
  • ?xxxx 向上搜索 xxxxn 选择下一个,N 选择上一个
  • # 向右&下搜索光标当前所在的 word(注意是搜索 word)
  • * 向左&上搜索光标当前所在的 word
    ~~~
  • v 字符选择,选中光标经过的地方
  • V 行选择,上下移动选中多行
  • ctrl + v 类似 sublime 一样的多行游标选择
  • selected + d 选中后删除
    ~~~
  • :Num1,Num2s/string1/string2/g
    • Num1 查找替换起始行
    • Num2 查找替换终止行
    • s search
    • string1 查找目标字符串
    • string2 替换为该字符串
    • g
  • :1,$s/string1/string2/gc
    从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !且在替换前显示提示字符给用户确认 (confirm) 是否需要替换!

保存与退出

  • :w 保存变更
  • :w fileName 利用当前文本新建文档
  • :q 退出
  • ! 强制操作
  • :q! 强制退出,不保存
  • :wq! 保存后强制退出
  • :r file 引入其他文档数据到当前文档或编辑界面

其他

  • :set nu 显示行数
  • :set nonu 取消显示行数
  • :! command
    暂时离开 vi 到指令列模式下执行 command 的显示结果;例如 『:! cat ./test』即可在vi 当中察看当前文件夹中的test文件中的内容


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值