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#基础概念】虚方法virtual

    目录: 一.虚方法的概念 二.虚方法的特点 三.虚方法的作用 四.虚方法的声明 五.虚方法的执行 六.虚拟类的规则 一.虚方法的概念 在C#中,虚方法就是可以被子类重写的方法,如果子类重写了虚方法,则 ...

  2. Java课程设计---安装解压版mysyql

    1.解压 将mysql-5.7.13-winx64.rar解压到C盘根目录.(将原有data文件夹清空,注意是清空,不是删除data文件夹) 2. 配置环境变量MYSQL_HOME (参照java打开 ...

  3. Qt:如何生成可执行文件

    参考 (18条消息) QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)_kslly的专栏-CSDN博客 环境配置 Windows 10系统 MSVC 2017编译器 工具 Qt 5自带的 ...

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

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

  5. linux-日常工作积累

    Linux常用命令之envsubst https://blog.csdn.net/banche163/article/details/101369495 Linux中的EAGAIN含义 https:/ ...

  6. JVM上篇:类加载子系统

    JVM类加载 目录 JVM类加载 1.内存结构概述 2.类加载子系统概述 3.类的加载过程 2.1加载 2.2Linking 2.2.1验证(Verify) 2.2.2准备(Prepare) 2.2. ...

  7. TCP/IP方法安装打印机

    在计算机安装打印机驱动和添加打印机(TCP/IP方法) 一:打印机的型号和驱动. 1.1:如何知道自己的打印机是什么品牌和型号?: 通过观察打印机表面的logo或者其他文字图案来辨别 如下图: 1.2 ...

  8. Spring系列20:注解详解和Spring注解增强(基础内功)

    有部分小伙伴反馈说前面基于注解的Spring中大量使用注解,由于对Java的注解不熟悉,有点难受.建议总结一篇的Java注解的基础知识,那么,它来了! 本文内容 什么是注解? 如何定义注解 如何使用注 ...

  9. 在 Debian 和 Ubuntu 上安装 Cutefish 可爱鱼

    版权声明:原创文章,未经博主允许不得转载 CutefishOS 是一个可爱好看的新 Linux 发行版,当前最新版本为 0.8beta .这是一个基于 Debian 的发行版,从其镜像源配置就可以明显 ...

  10. 七天接手react项目-起步

    七天接手react项目-起步 背景 假如七天后必须接手一个 react 项目(spug - 一个开源运维平台),而笔者只会 vue,之前没有接触过 react,此刻能做的就是立刻展开一个"7 ...