加载中...

vim使用


打开文件

vim [options] file
+# 打开文件以后光标在#行的行首
+/string 直接定位到第一个被匹配到的string的行的行首
-m  只读模式打开
-e  直接进入扩展命令行模式
-b 以二进制方式打开文件

vim四种模式

  • 命令模式:打开后默认
  • 插入模式:编辑文件
  • 扩展命令模式(末行模式):保存、退出等等
  • 可视化模式:

模式之间切换

命令模式–> 插入模式

  • i 在当前光标的所在位置插入
  • I 在当前行的行首位置开始插入
  • a 在光标的后面开始插入
  • A 在当前行的行尾位置开始插入
  • o 在当前光标所在行的下方打开一个新行
  • O 在当前光标所在行的上方打开一个新行

插入模式 –>命令模式

  • esc

命令模式–>扩展命令模式

扩展命令模式–>命令模式

  • esc enter
  • esc esc

关闭文件

  • 扩展命令行模式
    • :q 退出
    • :q! 不保存强制退出
    • :wq 保存退出
    • :wq! 强制保存退出
    • :x 保存退出
  • 命令模式
    • ZZ 保存退出
    • ZQ 不保存退出

扩展命令行模式

  • “:”进入扩展命令行模式
  • 命令
    • w 写入磁盘
    • wq 保存退出
    • x 保存退出
    • q 退出
    • r filename 读入一个文件,在光标的下一行插入
    • w filename 将当前的文件另存为另外一个文件
    • ! command 执行命令,然后回车回到文件中
    • r!command 直接将命令的执行结果写入到文件中,光标所在行的下一行

光标的移动

  • 字符间移动
    • h 左移动
    • l 右移动
    • j 往下移动
    • k 往上移动
    • # command 多个字符之间跳转
  • 单词间移动(除了下划线都认为是单词的分隔符)
    • w 下一个单词的词首
    • e 当前单词或者下一个单词的词尾
    • b 当前单词或者上一个单词的词首
    • # command 多个单词之间进行跳转
  • 当前页跳转
    • H 当前页的第一行
    • L 当前页的最后一行
    • M 当前页面的中间位置
    • zt 将光标所在的行移动到屏幕的顶端
    • zb 将光标所在的行移动到屏幕的底部
    • zz 将光标所在的行移动到屏幕的中间位置
  • 行首行尾跳转
    • 0(数字)跳转到行首
    • $ 跳转到行尾
    • ^ 跳转到行首的第一个非空白字符
  • 行间跳转
    • gg 回到第一行
    • 1G 回到第一行
    • G跳转到最后一行
    • 扩展命令模式下:# 跳转到对应的#行
    • #G 跳转到指定的#行
  • 段落间跳转
    • } 下一段
    • { 上一段
  • 翻屏
    • ctrl+f 向下翻一屏
    • ctrl+b 向上翻一屏
    • ctrl+d 向下翻半屏
    • ctrl+u 向上翻半屏

命令行的操作

  • 字符编辑
    • x 删除光标所在的位置
    • #x 删除#个字符
    • xp 交换位置
    • p 粘贴到光标所在的位置
    • ~大小写转换
    • J 删除当前行后的换行符
  • 替换
    • r 替换光标所在位置
    • R 切换到替换模式
  • 删除
    • d 删除,需要结合光标跳转字符
    • d0 删除到行首
    • d$ 删除到行尾
    • d^ 删除到非空行首
    • dw 删除一个单词
    • de 删除当前单词到词尾的位置或者下一个单词
    • db
    • dd 删除光标所在的行
    • #dd 删除#行
    • dG 删除到文件的行尾
    • dgg 删除到文件的行首
    • D 相当于d$
  • 复制
    • y 复制,需要结合光标跳转字符
    • y$
    • y0
    • y^
    • yw
    • ye
    • yb
    • yG
    • ygg
    • yy 复制整行
    • #yy 复制#行
  • 粘贴
    • p 如果是整行,则粘贴到当前所在行的下面,否则,则粘贴到光标所在位置的后面
    • P 如果是整行,则粘贴到当前行所在的上面,否则,则粘贴到光标所在位置的前面
  • 改变命令
    • c 修改之后直接切换到插入模式
    • c$
    • c0
    • c^
    • cb
    • ce
    • cw
    • cc 删除当前行并且输入新内容
    • #cc 删除#行,并切换到插入模式
    • C 相当于c$
  • #[i|I|a|A|o|O]string esc 粘贴#次string
  • 撤销
    • u 撤销最近的更改
    • #u 撤销之前的#次更改
    • U 撤销光标所在行的关于此行操作
    • ctrl+r 重做最后的操作,撤销撤销
    • . 重复前一个操作
    • #. 重复之前的动作多少次
  • 查找
    • /pattern 从当前光标所在位置向下查找
    • ?pattern 从光标所在位置向上查找
    • n 同搜索命令
    • N 同搜索命令相反

扩展命令模式补充

地址定界:

: start, end

  • # 具体到多少行
  • m,n 从m开始到n结束
  • m,+n,从m开始,到m+n结束 2, +3 第2行到第5行
  • . 代表当前行
  • $ 最后一行
  • $-# 倒数第#+1行
  • % 全部
  • #,/pat/,从第#开始,到第一次被pat匹配到的行
  • /pat1/,/pat2/从第一个别pat1匹配到的行到 第一个被pat2匹配的行
  • /pat/,# 从第一个被pat匹配到的行,到#行

使用方法:后面跟

  • d 删除
  • y 复制
  • w file :将范围内的文件另存为一个文件
  • r file 在指定的位置插入文件中的内容

查找替换

:地址定位符s/要查找的内容/要替换的内容/装饰器

  • 要查找的内容:可以使用正则表达式
  • 要替换的内容: 不可以使用正则表达式,但是可以使用\1,\2等,也可以使用&来代替前面的内容
  • 装饰器
    • i 忽略大小写
    • g 全部替换
    • gc 是提前之前要确认
      • y 确认
      • n 跳过
      • a 全部
    • /可以替换成别的符号
      • @

可视化模式

  • v 面向字符
  • V 面向行
  • ctrl+v 面向的是块
  • 可以配合键盘移动键使用
  • 突出显示的文件可以删除,复制,变更,过滤,替换等等

多文件操作

vim file1 file2 file3

  • :next 下一个
  • :prev 上一个
  • :first 第一个
  • :last 最后一个
  • :wqall
  • :wall
  • :qall
  • 保存之后再切换

使用多个窗口

  • 多个文件切割
    • vim -o|-O file1 file2 file3
    • -o 水平切割
    • -O 垂直切割
    • ctrl+w 切换不同窗口
  • 单的文件切割
    • ctrl+w,s 水平分割
    • ctrl+w,v 垂直分割
    • ctrl+w,方向键
    • ctrl+w,q 取消相邻的屏幕
    • ctrl+w,o取消所有的屏幕

定制化vim

  • 配置文件:
    • 全局:/etc/vimrc
    • 个人:~/.vimrc
  • 扩展命令模式:
    • 添加行号 set nu 取消 set nonu
    • 搜索时忽略大小写 set ic 取消set noic
    • 自动缩进(与上一行对其) set ai 取消 set noai
    • 搜索高亮 set hls 取消 set nohls
    • 语法高亮 syntax on 关闭 syntax off
    • 设置光标所在的行的标识符 set cul 取消 set nocul
    • 获取帮助:set all
    • 文件格式
      • 转换成windows: set fileformat=dos
      • 转换成linux: set fileformat=unix

vim帮助信息

  • :help
  • : help topic
  • vimtutor

文章作者: 无夜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 无夜 !
评论
  目录