本文主要介绍vim的三种主要模式,快捷键操作,命令操作及解释

vi 简介:Visual Interface 可视化界面

命令行下的文本编辑器种类可分为两种,一种是行编辑器,比如sed ;一种是全屏编辑器 比如nano,vi ;vim 是vi Improved,vi的增强版

 

gedit ,gvim 都是简单的图形编辑器

 

打开文件时可以通过一些命令更方便的找到我们需要操作的位置,可以用以下命令

vim [option]...file...

  • +#         :打开文件后,直接让光标处于第#行的行首
  • +/PATTERN        :打开文件后,直接让光标处于第一次被PATTERN匹配到的行的行首
  • + FILE         :直接打开file文件,光标处于最后一行行首
  • -b FILE         :二进制方式打开文件
  • -d FILE1 FILE2...         :比较多个文件
  • -m FILE         :以只读的方式打开文件
  • -e FILE         :直接进入ex模式和ex file命令执行结果一样

如果该文件存在,打开文件并显示内容

如果该文件不存在,当编辑后第一次存盘时创建它

 

vim三种主要模式:

  1.         命令模式(默认) : 移动光标,剪切/粘贴文本
  2.         插入(编辑)模式 : 修改文本
  3.         扩展命令模式 :保存,退出等 

Esc键 : 退出当前模式

Esc键 连续按两次 :总是返回到命令模式

各种关系请看下图:


各种模式的转换

命令模式 --> 插入模式

    i :insert,在光标所在处输出

    a :append,在光标所在处后面输入

    I :在当前光标所在行的行首输入

    A :在当前光标所在行的行尾输入

    o :在当前光标所在行的下方打开一个新行

    O :在当前光标所在行的上方打开一个新行

插入模式 --> 命令模式

    ESC

命令模式 --> 扩展模式

    :

扩展模式 --> 命令模式

    ESC

锁定和解锁 :

    Ctrl+s 锁定   Ctrl+q 解锁

关闭文件操作命令

  

  扩展模式:

    :q 退出

    :q! 强制退出,丢弃做出的修改

    :wq 保存并退出

     x 保存退出

  命令模式:

    ZZ :保存退出

    ZQ :不保存退出


扩展模式:

按 ': '会进入Ex模式

会创建一个命令提示符: ,并处于底部的屏幕左侧

命令如下:

  • w 将文件写到磁盘上

  • wq 将文件写到磁盘上并退出

  • x 写入并退出

  • q 直接退出

  • q! 不存盘直接退出,所有更改都将丢失

  • r filename  读文件内容到当前文件中

  • w filename  将当前文件内容写入另一个文件中

  • !command  可以直接执行shell命令

  • r!command  把执行的命令直接写入到文件中

命令 功能
字符编辑
x 删除光标处的字符
#x 删除光标处起始的后#个字符
xp 交换光标所在处的字符及其后面字符的位置
~ 转换大小写
替换命令
r 将光标所在处的字符替换为输入的字符
R 切换为REPLACE模式
删除命令
d 可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 删除到下一个单词词首
de 删除到当前词尾或者下一个单词的词尾
db 删除到当前词首或者下一个单词的词首
#command 多次命令操作
dd 删除光标所在的行
#dd 多行删除
D 从光标位置一直删除到行尾,留空行,和d$相似
复制命令(y,yank)
y 复制,行为相似于d命令 
y$ 复制到行尾
y0 复制到非空行首
y^ 复制到行首
ye 复制到下一个单词词首
yw 复制到当前词尾或者下一个单词的词尾
yb 复制到当前词首或者下一个单词的词首
#command 多次命令操作
yy 复制光标所在的行
#yy 多行复制
Y 复制整行
命令 功能
字符编辑
x 删除光标处的字符
#x 删除光标处起始的后#个字符
xp 交换光标所在处的字符及其后面字符的位置
~ 转换大小写
替换命令
r 将光标所在处的字符替换为输入的字符
R 切换为REPLACE模式
删除命令
d 可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 删除到下一个单词词首
de 删除到当前词尾或者下一个单词的词尾
db 删除到当前词首或者前一个单词的词首
#command 多次命令操作
dd 删除光标所在的行
#dd 多行删除
D 从光标位置一直删除到行尾,留空行,和d$相似
复制命令(y,yank)
y 复制,行为相似于d命令 
y$ 复制到行尾
y0 复制到非空行首
y^ 复制到行首
yw 复制到下一个单词词首
ye 复制到当前词尾或者下一个单词的词尾
yb 复制到当前词首或者前一个单词的词首
#command 多次命令操作
yy 复制光标所在的行
#yy 多行复制
Y 复制整行
粘贴命令(p,paste)
p 缓冲区存的数据如果为整行,则粘贴至当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的数据如果为整行,则粘贴至当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
改变命令(c,change)
c 修改后切换成插入模式
c$ 删除到行尾并切换插入模式
c^ 删除到非空行首
c0 删除到行首
cw 删除到下一个单词词首
ce 删除到当前词尾或者下一个单词的词尾
cb 删除到当前词首或者前一个单词的词首
#command 多次命令操作
cc 删除当前行并输入新内容
#cc 多行操作
C 删除当前光标到行尾,并切换成插入模式

100icent [ESC] :粘贴 cent 100次

<start position><command><end position> 

  command:

    y复制,d删除,gU变大写,gu变小写

    例如 0y$ 命令:

            0 先到行头

            y 然后开始从这里开始拷贝

            $ 拷贝到本行地最后一个字符

  ye :从当前位置拷贝到本单词的最后一个字符


扩展模式

1,地址定界:

  • :start_pos,end_pos

  • # :具体行数

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

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

        :2,+3 表示2到5行

  • . :当前行

  • $ :最后一行

        .,$-1 :当前行到倒数第二行

  • % :全文,相当于1,$

2,/pat1/,/pat2/ 

    从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

    #,/pat/ /pat/,$ 

使用方式:后跟一个编辑命令

 d    删除

 y    复制

 w file 将范围内的行另存至指定文件中

 r file 在指定位置插入指定文件中的所有内容

查找命令:

    /PATTERN :从当前光标所在处向文件尾部查找

    ?PATTERN :从当前光标所在处向文件尾部查找

    n: 与命令同方向

    N:与命令反方向

查找并替换:

    

s: 在扩展模式下完成查找替换操作 

格式:s/要查找的内容/替换为的内容/修饰符 

要查找的内容:可使用模式 

替换为的内容:不能使用模式,但可以使用\1, \2, ... 等后向引用符号;还可以使用“&”引用前面查找时查找到的整 个内容 

修饰符: 

        i: 忽略大小写 

        g: 全局替换;默认情况下,每一行只替换第一次出现 

        gc:全局替换,每次替换前询问 

查找替换中的分隔符/可替换为其它字符,例如 s@/etc@/var@g   s#/boot#/#i

命令模式下的撤销更改

        u :撤销最近的更改

        #u :撤销之前多次更改

        U :撤销光标落在这行后所有此行的更改

        按Ctrl+r 重做最后的 "撤销" 更改

        . :重复前一个操作

        n. :重复前一个操作n次


vim的寄存器

有26个命名寄存器和1个无名寄存器,常存放不同的剪贴板内容,可以不同会话间共享。

用a,b,c,...z表示,用 "寄存器 表示,放在数字和命令之间,比如

    3"tyy :表示复制3行到t寄存器中

    "tp :表示将t寄存器内容粘贴

未指定,将使用无名寄存器

有10个数字寄存器,用0,1,...9表示,0表示存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,依次类推,数字寄存器不能在不同会话间共享。

vim也可以编辑二进制文件

可以使用 vim -b binaryfile 以二进制方式打开文件

在扩展命令模式下,利用 xxd 命令转换为可读的十六进制 :%!xxd

在扩展命令模式下,利用 xxd 命令转换回二进制文件 :%!xxd -r

保存退出

vim也具有可视化模式

允许选择的文本块

    v :面向字符

    V :面向行

    Ctrl-v :面向块

可视化键可以与用于移动键结合使用:

    w,),(,}...等

突出显示的文字可以被删除,复制,变更,过滤,搜索,替换等

vim的多文件模式

vim FILE1 FILE2 FILE3 ...

:next 下一个

:prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:wqall 保存并退出所有

vim可以使用多个窗口进行更便捷的操作

多文件分割

  vim -o|-O FILE1 FILE2 ...

  -o :水平分割

  -O :垂直分割

  在窗口间切换:Ctrl+w ,Arrow

单文件窗口分割:

  Ctrl+w,s :split,水平分割

  Ctrl+w,v :vertical,垂直分割

  Ctrl+w,q :取消相邻窗口

  Ctrl+w,o :取消全部窗口

  :wqall :全部保存并退出


vim定制自己的工作特性

  全局:/etc/vimrc

  个人:~/.vimrc

扩展模式:只对当前vim进程有效

行号:

   显示:set number,简写为set nu

   取消显示:set nonumber,简写为set nonu

括号成对匹配

   匹配:set showmatch ,简写为 set sm

   取消匹配:set nosm

自动缩进

   启用:set ai

   禁用:set noai

高亮搜索

   启用:set hlsearch

   禁用:set nohlsearch

语法高亮

   启用:syntax on 

   禁用:syntax off 

忽略字符的大小写 

   启用:set ic 

   不忽略:set noic

文件格式 

   启用:fileformat=unix 

   不忽略: fileformat=dos 

设置文本宽度 

   :set textwidth=65 (vim only) 

   :set wrapmargin=15 

:help option-list 

:set or :set all

功能 启用 取消
行号 set number 或 set nu set nonumber 或 set nonu
括号成对匹配 set showmatch 或 set sm set nosm
自动缩进 set ai set noai
高亮搜索 set hlsearch set nohlsearch
语法高亮 syntax on syntax off
忽略字符的大小写 set ic set noic
文件格式 fileformat=nuix fileformat=dos
设置文本宽度 :set textwidth=65 :set wrapmargin=15

linux 强大的文本编辑器 vim相关推荐

  1. Linux基础工具|文本编辑器Vim的使用

    0.前言 您好这里是limou3434的个人博客,感兴趣可以看看我的其他内容. 本次我给您带来的是Linux下Vim文本编辑器的使用,关于vim,您只需要知道一些常用的指令和操作即可,快速上手的秘诀是 ...

  2. linux删除vim编辑器创的目录,Linux目录和文件——文本编辑器Vim

    Linux目录和文件--文本编辑器Vim 摘要:本文主要学习在Linux系统中使用Vim文本编辑器编辑文本. 什么是Vim Vim是一个基于文本界面的编辑工具,使用简单且功能强大.更重要的是,Vim是 ...

  3. Linux文本编辑器---vim详解

    零.前言 本篇主要介绍Linux下文本编辑器vim的使用方法,以及sudo命令的实现. 1.什么是vim 在windows系统下,我们使用VS来编写代码,编译代码,调试代码,运行代码等,甚至还可以进行 ...

  4. Linux文本编辑器-vim

    Linux文本编辑器-vim Vim简介 Vim是从vi发展出来的一个文本编辑器.其代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢 ...

  5. 《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

    本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  6. Linux学习-12-Vim文本编辑器使用

    5 Vim文本编辑器 Vim 是一个基于文本界面的编辑工具,使用简单且功能强大.更重要的是,Vim 是所有 Linux 发行版本默认的文本编辑器,通过一些插件可以实现和IDE一样的功能,所以连vim官 ...

  7. linux麒麟编码方式,麒麟Linux系统vi文本编辑器介绍(24页)-原创力文档

    中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统vi文本编辑器介绍 技术创新,变革未来 本章目标 • vi 和vim 的三种主要模式 • vi 的基本使用 vi •vi是一种广泛存在于 ...

  8. 一把吃鸡的时间让你初步掌握住Linux中的天花板编辑器vim

    1. 什么是vim vim , 说白了就是一个文本编辑器 , 一个多模式,功能强大的文本编辑器 , 可以看作一个超级Plus版记事本 , 是我们在纯Linux环境下写代码的利器. 2. 多模式的vim ...

  9. 学习笔记2————文本编辑器Vim

    文本编辑器Vim Vim是一个功能强大的全屏幕文本编辑器, 是Linux/UNIX上最常用的文本编辑器, 它的作用是建立.编辑.显示文本文件. Vim 没有菜单,只有命令. 插入命令 命令 作用 a ...

最新文章

  1. 华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...
  2. 人为什么要睡觉?科学家给出进一步答案
  3. 用自己的数据集在R-FCN框架下进行检测
  4. 类目,延展,协议的基本概念
  5. Java IO学习--(五)字节和字符数组
  6. 作者:胡卫生(1964-),男,博士,上海交通大学教授、博士生导师,主要研究方向为下一代光接入网、光交换、光网络等。...
  7. 动态(静态)加载DLL注意
  8. 智能手机的硬件组成部分及结构图
  9. 【热门主题:银魂win7主题】
  10. 计算机保养与维护论文答辩ppt,北京交通大学毕业答辩ppt模板
  11. 简述MES系统的9大核心功能模块
  12. 计组头哥实验 第1关 8位可控加减法电路设计
  13. Mysql建数据库建表语法实践
  14. Verilog设计流水灯(一)
  15. QHeaderView 表头设置QWidget控件
  16. 【BLE】蓝牙Profile
  17. Java项目中引入MySQL依赖
  18. 常用算法简述 -- 插入排序
  19. Z80 CPU中的主要指令
  20. [Erlang]好用的NIF外部库

热门文章

  1. pr为解说视频添加字幕
  2. GNU Radio3.8创建OOT的详细过程(python)
  3. 157页9万字20MW地面分布式发电项目可行性报告
  4. docusign文档打不开_DocuSign - 上传和签署文档
  5. 建模小白一定要知道的8款软件
  6. 绿色简约校园招聘会PPT模板
  7. SHIB项目迎来反弹
  8. RSS2.0简单介绍.
  9. ignore的音标_英语ignore的意思解释|读音发音|相关词语_英语词典_词林在线词典...
  10. 实时即未来,大数据项目车联网之实时ETL开发的核心逻辑【六】