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. 【C# 异常处理】 开端

    异常概述 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是 ...

  2. 开机弹出一下Visual Studio Just-In-Time对话框的问题

    开机弹出一下Visual Studio Just-In-Time对话框 开机弹出一下Visual studio just-in-time对话框,出现一下问题,且点击确定后又弹出第二个对话框, 解决方法 ...

  3. JZ-029-最小的 K 个数

    标题 最小的 K 个数 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题目链接: 最小的 K 个数 代码 import ja ...

  4. Dubbo服务框架和spring-cloud架构的优缺点

    Dubbo一.dubbo简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成. Dubbo是一款高性能.轻 ...

  5. [csi]浅聊ceph-csi组件

    描述   ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合.调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除.挂载/解除 ...

  6. Typora使用教程 之 PicGo集成做图床

    目录 一.Typora是什么 二.研究它的原因 三.需要解决的问题 四.解决图床问题 1.下载PicGo 2.安装下载的PicGo,并根据下图所示配置(必须安装nodejs,否则插件一直是" ...

  7. php 数组相关的函数?

    array()----创建数组array_combine()----通过合并两个数组来创建一个新数组range()----创建并返回一个包含指定范围的元素的数组compact()----建立一个数组a ...

  8. 使用 Fiddler 进行 iOS 抓包

    使用 Fiddler(下载) 进行 iOS 抓包,具体步骤如下: 安装并配置 Fidder 安装并打开 Fiddler, 点击 Tools -> Fiddler Options 选中 Decrp ...

  9. LGP2726题解

    当初 mark 这道题还是因为看到是黑,感觉比较水,然后它现在掉紫了. 不过这题题解居然满了,写一篇给自己看吧. 首先我们有一个思路,就是割掉一条边,然后分别求两颗树的重心. 等等,这好像是CSP原题 ...

  10. spring boot使用注解进行模糊查询

    spring boot中mybatis使用注解进行模糊查询@Select("select * from dept where dname like CONCAT('%',#{dname},' ...