vim操作

vim的四种模式

  • 一般模式 normal
  • 编辑模式 insert
  • 命令模式 command
  • 可视模式 visual

1、Normal 模式

  • vim进入时的默认模式,对于一个编辑器而言,大部分的操作是查看,默认是Normal模式很合理

  • 光标移动

    • h 左移

    • l 右移

    • k 向上

    • j 向下

    • w 移动光标到下一个单词开头

    • e 移动光标到下一个单词结尾

    • b 移动光标到上一个单词开头

    • ^ 移动光标到本行的最开头字符处

    • $ 移动光标到本行末尾

    • H 移动光标到屏幕首行

    • M 移动光标到屏幕中间行

    • L 移动光标到屏幕尾行

    • gg 移动到文档首行

    • G 移动到文档尾行

    • :n 移动到第n行

    • ctrl + f 向下翻页 page down

    • ctrl + b 向上翻页 page up

    • ctrl + d 向下翻半页

    • ctrl + u 向上翻半页

    • ctrl + e 向上翻一行

    • ctrl + y 向下翻一行

    • [[ 转到上一个位于第一列的 {

    • ]] 转到下一个位于第一列的 }

    • { 转到上一个空行

    • } 转到下一个空行

    • f[str] 行首调到str字符位置,; 下一个字符

    • '' 两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置

    • '. 一单一点 此命令相当好使, 它移动光标到上一次的修改行

    • `. 一倒引一点 此命令相当强大, 它移动光标到上一次的修改点

  • 复制、粘贴、删除、撤销、重复操作
    ** y 表示拷贝, d 表示删除, p 表示粘贴,u U表示撤销**

    • yy 表示拷贝光标所在行

    • +y 复制到系统粘贴板,可以跨文件粘贴

    • yw 表示拷贝从当前光标到光标所在单词结尾的内容

    • y0 表示拷贝从当前光标到光标所在行首的内容

    • y$ 表示拷贝从当前光标到光标所在行尾的内容

    • p 粘贴到光标下一行

    • P 粘贴到光标上一行

    • dd 表示删除光标所在行

    • D 表示删除从当前光标到光标所在行尾的内容

    • X 删除光标之前一个字符

    • x 删除光标之后的一个字符

    • xp 交换光标与其之后的字符位置

    • ddp 交换光标所在行与下一行位置

    • J 合并光标行和下一行

    • u 撤销到上一步操作

    • U 行撤销

    • . 重复上一步操作

  • 特殊编辑

    • ga 显示光标所指字符的encoding 编码,比如ASCII码
    • guw 光标所在单词光标后的字符小写
    • gUw 光标所在单词光标后的字符大写

2、Command 模式

  • 查找

    • /str 表示向下查找
    • ?str 表示向上查找
    • n 查找到之后,向下一个匹配处
    • N 查找到之后,向上一个匹配处
  • 替换

    • :[addr]s/源字符串/目的字符串/[option]
    • :%s/源字符串/目的字符串/g 全局替换
    • [addr] 表示检索范围,省略时表示当前行
      • “1,20” :表示从第1行到20行;
      • “%” :表示整个文件,同“1,$”;
      • “. ,$” :从当前行到文件尾;
    • s : 表示替换操作
    • [option] : 表示操作类型
      • g 表示全局替换;
      • c 表示进行确认
      • p 表示替代结果逐行显示(Ctrl + L恢复屏幕);省略option时仅对每行第一个匹配串进行替换;如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t

3、Visual 模式

  • Visual 模式用于选择多行文本或文本块,开头结尾自己去定,象用鼠标选一样
    • v 单行选择
    • V 多行选择
    • VG 选中当前行到尾行
    • Vgg 选中当前行到首行
    • va{ 选中{}中间内容,包括{}
    • va( 选中()中间内容
    • vi< 选中<>中间内容
    • vi[ 选中[]中间内容
    • vit 选中中间的内容
    • vi" 选中""中间内容
    • vi' 选中’'中间的内容
    • vis 选中一个句子
    • vib 选中一个block
    • viw 选中一个单词
    • vip 选中一个段落

可以配合复制、删除操作

4、Insert 模式

  • i、I (insert)
    • i 光标前插入
    • I 光标当前行首插入
  • a、A(append)
    • a 光标后插入
    • A 光标当前行尾插入
  • o、O(open new line)
    • o 光标当前行下一行插入
    • O 光标当前行上一行插入
  • r、R(replace)
    • r 替换光标处的一个字符
    • R 替换光标所在行字符
  • c(change)
    • ci( 修改()内部信息
    • ci" 修改 “” 内部信息
    • 等成对出现符号内容
  • s、S
    • s 删除光标所在的字符并进入插入模式
    • S 删除光标所在行并进入插入模式

5、vim macro批量处理文件内容

  • q* 开始录制宏
  • q 停止录制宏
  • @* 执行宏
  • @@ 重复执行上次的@*命令一次

以上命令均是在VIM的一般模式(Normal)下使用的,其中*代表一个数字和单词字符,正则表达式规则是:[0-9a-zA-Z]

:help recording 查看宏帮助

6、Visual模式下使用Normal模式命令

  • visual模式下进入命令模式
  • :normal I" 选中行首插入"
  • :normal A" 选中行为插入"
  • ctrl + p 命令模式重复上一次命令

7、数字与命令

  • 在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行

    • 号定位. 如:
    • 5yy[y5y] 表示拷贝光标以下 5 行
    • 5dd[d5d] 表示删除光标以下 5 行
    • :12,24y 表示拷贝第12行到第24行之间的内容
    • :12,y 表示拷贝第12行到光标所在行之间的内容
    • :,24y 表示拷贝光标所在行到第24行之间的内容. 删除类似
    • 5fx 表示查找光标后第 5 个 x 字符
    • 5w(e) 移动光标到下五个单词的头部(尾部).

8、自动完成与路径设定

  • 在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符.
    • ctrl+p(ctrl + n) 在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的所有文件中进行匹配
    • ctrl + x + l 在编辑模式中, 整行补齐, 但是仅在本窗口中出现的文档中进行匹配
    • ctrl + x + f 在编辑模式中, 这个命令表示补齐文件名. 如输入: /usr/local/tom 后再输入此命令则它会自动匹配出:/usr/local/tomcat/
    • abbr 即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个字符串. 比如编写java文件的常常输入 System.out.println, 这很是麻烦, 所以应该用缩写来减少敲字. 可以这么做
      • :abbr flask from flask import Flask
      • 以后在输入flask后再输入其他非字母符号, 它就会自动扩展为from flask import Flask
      • 可以定义一些模板
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值