vim

1.打开文件

  • vim [option] … file... 打开文件

    +# 打开文件后,让光标处于第#行的行首
    
    +/字符串 打开文件后,光标处于第一个被匹配到字符串的行首
    
    -b file 二进制方式打开文件
    
    -d file1 file2 对比多个文件
    
    -m file 只读打开文件
    
    -e 直接进入ex,扩展命令 模式

2.vim的模式

2.1 模式分类

按键行为是依赖于vim的模式

  • 命令模式:默认模式,移动光标,剪切/粘贴文本
  • 插入或者编辑模式:修改文本
  • 扩展命令模式(末行模式):保存、退出等
  • 可视化模式

esc 键 退出当前模式

2.2 模式转换

  • 命令模式 —> 插入模式

    • i 在光标所在处插入
    • I 在当前光标所在行的行首插入
    • a 在光标所在处后面插入
    • A 在光标所在行的行尾插入
    • o 在当前光标所在行的下方打开一个新行
    • O 在当前光标所在行的上方打开一个新行
  • 插入模式 —> 命令模式
    • esc
  • 命令模式—> 末行模式
  • 扩展命令模式—>命令模式
    • esc enter
    • esc esc

2.3关闭文件

  • 扩展命令模式

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

2.4扩展命令模式

  • 按“:”进入ex模式
  • 创建一个命令提示符:处于底部的屏幕左侧
  • 命令:
    • w 写(存)磁盘文件
    • wq 保存并退出
    • x 写入并退出
    • q 退出
    • q! 不存盘退出
    • r filename 读文件内容到当前文件中
    • w filename 将当前文件内容写入另外一个文件,另存为
    • !command 执行命令,回车返回到文本编辑模式
    • r!command 直接读入命令的输出

2.5 光标移动

命令模式光标跳转

  • 字符键跳转

    • h 左
    • l 右
    • j 下
    • k 上
    • # command 跳转#个字数的字符
  • 单词间跳转
    • w 下一个单词的次首
    • e 当前或者下一个单词的词尾
    • b 当前或者前一个单词的词首
    • #command 跳转#个单词
  • 当前页跳转
    • H 页首
    • M 中间
    • L 页底
    • zt 将光标所在行移动到屏幕顶端
    • zz 将光标所在行移动到屏幕中间
    • zb 将光标所在行移动到屏幕底端
  • 行首行尾跳转
    • ^ 跳转至行首的第一个非空白字符
    • 0 跳转至行首
    • $ 跳转至行尾
  • 行间移动
    • #G 扩展命令模式下:#跳转至第#行
    • G 最后一行
    • 1G 第一行
    • gg 第一行
    • :# 扩展命令模式下,跳转至#行
  • 段落间移动(空行)
    • } 下一段
    • { 上一段
  • 翻屏操作
    • ctrl+f 向文件尾部翻一屏
    • ctrl+b 向文件首部翻一屏
    • ctrl+d 向文件尾部翻半屏
    • ctrl+u 向文件首部翻半屏

3.命令模式操作

  • 字符编辑

    • x 删除光标处的字符
    • #x:删除#个字符
    • xp 交换光标所在处的字符与后面的字符
    • ~ 转换大小写
    • J 删除当前行后的换行符
  • 替换
    • r 替换光标所在处的字符
    • R 切换成替换模式
  • 删除
    • d 删除,可以结合光标跳转字符
    • d$ 删除到行尾
    • d^ 删除到非空行首
    • d0 删除到行首
    • dw: 删除一个单词
    • de: 向后删除一个单词
    • db 想前删除一个单词
    • \COMMAND
    • dd 删除光标所在的行
    • #dd 多行删除
    • dgg 删除到文件首部
    • dG 删除到文件尾部
    • D 相当于d$
  • 复制
    • y 复制,可以结合光标跳转字符
    • y$ 复制到行尾
    • y0 复制到行首
    • y^ 复制到非空行
    • ye 向后复制一个单词
    • yw 复制一个单词
    • yb 向前复制一个单词
    • #command
    • yy 复制行
    • #yy 复制多行
    • Y 复制整行
  • 粘贴
    • p 如果是整行,则粘贴当前行所在行的下方,否则,则粘贴在当前光标所在行的后面
    • P如果是整行,则粘贴当前行所在行的上方,否则,则粘贴在当前光标所在行的前面
  • 改变命令
    • c 修改后切换成插入模式
    • c$ 删除到行尾 切换成插入模式
    • c^ 删除到非空行切换成插入模式
    • c0 删除到行首切换成插入模式
    • cb 向前删除一个单词并且进入插入模式
    • ce 向后删除一个单词并且进入插入模式
    • cw 向后删除一个单词并且进入插入模式
    • #command
    • cc 删除当前行并输入新的内容
    • #cc 删除#行,并切换到插入模式
    • C 相当于c$ ,删除当前光标至行尾,并切换成插入模式
  • 10ialex [esc] 粘贴10次alex
  • 查找
    • /pattern 从当前光标所在处向文件底部查找
    • ?pattern 从当前光标所在处向文件首部查找
    • n 与命令同方向
    • N 与命令反方向
  • 撤销更改
    • u 撤销最近的更改
    • #u 撤销之前多次更改
    • U 撤销光标落在这行后所有此行的更改
    • ctrl+r 重做最后的操作 撤销撤销
    • . 重复前一个操作
    • n. 重复前一个操作n次

4.扩展命令模式

4.1地址定界

:start,end

  • 具体第#行

  • ,# 从左侧#表示起始行,到右侧#表示结尾行-

  • ,+# 从左侧#表示的起始行,加上右侧#表示的行数 :2,+3 表示2到5行

  • . 当前行
  • $ 最后一行
  • $-# 倒数第#+1行
  • .,$-1相当于当前行到倒数第二行
  • % 全文
  • /pat1/,/pat2/ 从第一个被pat1匹配到的行开始,一直到第一次被pat2匹配到的行开始
  • , /pat/ 从第#行开始,一直到第一次被pat2匹配到的行开始

  • /pat/,$ 从第一个被pat1匹配到的行开始,到行尾

地址定界-使用方式

后跟一个编辑命令

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

4.2 查找并替换

  • 在扩展模式下完成查找替换操作
  • 格式 :地址定界 s/要查找的内容/替换为的内容/装饰器
    • 要查找的内容:可使用正则表达式,
    • 要替换的内容:不能使用正则表达式,,但可以使用\1,\2等,还可以使用“&”引用前面查找到整个内容
    • 修饰符
      • 默认情况下,每一行只替换第一个出现的
      • i 忽略大小写
      • g 全局替换
      • gc 全局替换,每次替换前询问
    • 查找替换中的分隔符/可以替换成其他字符v
      • @
      • #

5.可视化模式

允许选择的文本块

  • v 面向字符
  • V 面向行
  • ctrl -v 面向块
  • 可以化键可以与移动键结合使用
    • w )} 箭头等
  • 突出显示的文字可以被删除,复制,变更,过滤,收拾,替换等

6.多文件操作

vim file1 file2 file3

  • :next 下一个
  • :prev 前一个
  • :first 第一个
  • :last 最后一个
  • :wall 保存所有
  • :qall 退出所有
  • :wqall

7.使用多个窗口

  • 多文件分割

    • vim -o|-O file1 file2
    • -o 水平分割
    • -O 垂直分割
    • 切换 ctrl+w
  • 单文件分割
    • ctrl-w,s 水平分割
    • ctrl-w,v 垂直分割
    • ctrl-w,q 取消相邻窗口
    • ctrl-w,o 取消全部窗口
    • :wqall

8.定制vim的工作特性

  • 配置文件:永久生效

    • 全局:/etc/vimrc
    • 个人:~/.vimrc
  • 扩展模式:当前vim进程有效
    • 行号 set nu 设置行号set nonu取消行号设置
    • 忽略字符大小写(搜索) set ic set noic
    • 自动缩进(和上一行对齐) set ai 设置缩进 set noai取消缩进
    • 高亮搜索 set hlsearch set nohlsearch
    • 语法高亮 syntax on syntax off
    • 文件格式
      • 启用windows格式: set fileformat=dos
      • 启用unix格式:set fileformat=unix
      • 简写 set ff=dos|unix
    • 设置贯标所在行的标识线 set cul set nocul
    • 获取帮助 :set all
    • vim 内置帮助
      • :help
      • :help topic
      • vimtutor

linux文本编辑器vim详解的更多相关文章

  1. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

  2. Linux文本编辑器vim

    目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...

  3. Linux 文本编辑器 vim

    第五讲 文本编辑器 vim

  4. linux文本编辑器vim大全

    linux基础之vim编辑器 1.vim编辑器 基本介绍 vim编辑器的前身叫做vi.vi的英文名:Visual  Interface.中文解释文本编辑器,你不应该用他去打开二进制可执行文件 文本编辑 ...

  5. 10.18.1 linux文本编辑器vim

    vi和vim的区别 编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用 ...

  6. Linux | 文本编辑器vim

    vim 编辑器介绍 vim 编辑器是一款非常棒的文本处理工具,它会默认安装在当前所有的 Linux 操作系统上面. vim 编辑器中设置了三种模式,可以极大的提高我们的工作效率: 命令模式:控制光标移 ...

  7. linux 文本编辑器 vim 基本操作

    三种模式之间转换: 一般模式 可用于光标移动.复制粘贴.查找替换 "vim.txt"表示文件名 8L 表示8行 , 80C 表示80个字符 移动光标常用操作: h .j. k. l ...

  8. linux文本编辑器-VIM基本使用方法

    vim [OPTION]... FILE... +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首vim + file 直接打开file,光标在最后一行 三种主要模式 ...

  9. Linux文本编辑器Vim使用

    1. 插入 o 在光标下插入新行 a 在光标后插入 i         在光标前插入 O 在光标上一行插入新行 A 在光标行尾插入 I 在光标行首插入 2.光标定位 gg 到第一行行首 G 到最后一行 ...

随机推荐

  1. idea教程--如何申请免费的ideaIDE

    开始申请前请先到 https://www.jetbrains.com/zh/student/ 阅读免费学生授权的介绍和常见问题,再依照下方流程进行申请. (1)到 https://www.jetbra ...

  2. Activity跳转显式方法及隐式方法

    1 public class AActivity extends AppCompatActivity { 2 private Button btnJump; 3 @Override 4 protect ...

  3. 《Selenium+Pytest Web自动化实战》随到随学在线课程,零基础也能学!

    课程介绍 课程主题:<Selenium+Pytest Web自动化实战> 适合人群: 1.功能测试转型自动化测试 2.web自动化零基础的小白 3.对python 和 selenium 有 ...

  4. anaconda及jupyter notebook的使用之numpy模块的用法(2)

    今日内容概要 numpy模块结束 ndarray创建 numpy内置方法 索引与切片(花式索引.布尔索引) 常用函数 统计方法 随机数 numpy的内置方法 import numpy as np 1. ...

  5. [2022-2-26] OICLASS-USACO提高组模拟赛 C·Convoluted Intervals S

    这道题非常简单啊,我看很多人都做出来了,张林昨天也讲的很明白了,那我来简单写一下: 暴力思路(10pts) 我们发现,我们只需要模拟画出一个图然后进行暴力枚举就行了. 差分+桶+加乘原理思路(100p ...

  6. php 23种设计模式 - 备忘录模式

    备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象.备忘录模式属于行为型模式. 介绍 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该 ...

  7. 编译OneAPI(支持Nvidia显卡)

    开始使用DPC++ 官方安装教程 预备条件 请确保当前开发环境满足如下条件: git cmake版本需要满足3.14及以上. python版本3.6以上的python. nijia版本1.8及以上(使 ...

  8. OpenSSL CVE-2022-0778漏洞问题复现与非法证书构造

    本文介绍CVE-2022 0778漏洞及其复现方法,并精心构造了具有一个非法椭圆曲线参数的证书可以触发该漏洞. 本博客已迁移至CatBro's Blog,那是我自己搭建的个人博客,欢迎关注.本文链接 ...

  9. 使用Github Action自动填写疫情通

    使用Github Action自动填写疫情通 西电晨午晚检一天三次,通过企业号功能进行填写.实际上,西电企业号大部分功能是以网页模式工作的,通过构造connection发送合适的request,设置计 ...

  10. js中的函数嵌套和闭包

    小编已经有一段时间没有更新文章了,最近一直在考虑接下来要更新什么内容.接下来,小编会围绕以下三个方面更新文章.实际项目中遇到的问题和解决方案.Vue源码解析.代码重构.关于数据可视化.小编也会按照这个 ...