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. jq给手机号加密

    效果: HTML代码:     <!-- 1手机绑定 -->     <div class="memberuser_box">         <di ...

  2. 4.Profile(多环境配置)

    在实际的项目开发中,一个项目通常会存在多个环境,例如,开发环境.测试环境和生产环境等.不同环境的配置也不尽相同,例如开发环境使用的是开发数据库,测试环境使用的是测试数据库,而生产环境使用的是线上的正式 ...

  3. Qt:Shadow Build

    每个编辑器有Build和Run两个设置界面. 在Build界面上,有一个"Shadow build"复选框.如果勾选此项,编译后将在项目的同级目录下建立一个编译后的文件目录,目录名 ...

  4. omnet++:用到的方法和语句

    1.方法 方法 说明 msg->getName() 获取发送的消息名 uniform(a,b) 生成[a,b]间的随机实数 intuniform(a,b) 生成[a,b]间的随机整数 expon ...

  5. FoveaBox:细节差别,另一种DenseBox+FPN的Anchor-free方案 | IEEE TIP 2020

    作为与FCOS和FSAF同期的Anchor-free论文,FoveaBox在整体结构上也是基于DenseBox加FPN的策略,主要差别在于FoveaBox只使用目标中心区域进行预测且回归预测的是归一化 ...

  6. WPF优秀组件推荐之FreeSpire

    概述 Spire是一套可以轻松处理Word.Excel和PDF的商业组件,需要收费,但是他有一套对应的免费组件FreeSpire可以使用,免费组件在功能上有一些限制(比如:excel的sheet数量不 ...

  7. C# Event (1) —— 我想搞个事件

    本文地址:https://www.cnblogs.com/oberon-zjt0806/p/15975299.html 本文最初来自于博客园 本文遵循CC BY-NC-SA 4.0协议,转载请注明出处 ...

  8. CodeReview规范

    目标和原则 提高代码质量,及早发现潜在缺陷,降低修改/弥补缺陷的成本 促进团队内部知识共享,提高团队整体水平 评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统 是一个传递知识的手 ...

  9. 再议 MySQL 回表

    一:回表概述 关于回表的概念网上已经有很多了,这里不过多赘述.下面我们直接放一张图可能更直观说明什么是回表. 图中 非聚集索引也叫二级索引,二级索引本质上也是 一 个 B+ 树结构,与聚集索引(也叫主 ...

  10. 女朋友问我深浅copy到底是什么?

    深浅拷贝 列表存放值的时候,是先申请一块内存空间,存放索引和内存地址的对应关系,其实通俗的来说列表内不存真正的值,是一种间接存放的对应关系: 列表内存不可变类型的数据 就比如说,如果现在将L列表索引0 ...