VI

vi是一种计算机文本编辑器,由美国计算机科学家比尔·乔伊(Bill Joy)完成编写,并于1976年以BSD协议授权发布。

VIM

Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的自由软件。

用法:

vim [options] [file ..]

选项:

  • +#:打开文件时直接跳到第#行
  • +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
  • -b:二进制方式打开文件
    • :%!xxd:扩展命令模式下,利用xxd命令转换为可读的十六进制
    • :%!xxd –r:扩展命令模式下,利用xxd命令转换回二进制
  • -d file1 file2…:打开多个文件比较,==vimdiff
  • -m:以只读方式打开文件
  • -e:打开文件时直接进入ex模式,或者使用ex file

vim的模式:命令模式,插入模式,扩展命令模式

在任意模式下用esc可以返回命令模式

一、命令模式(command mode)

命令模式下有些快捷指令不会显示,需要执行完全部命令才可以看到更改

命令模式-->插入模式:

  • i:在光标所在处变成插入模式
  • I:在行首变成插入模式
  • a:在光标下一个字符起变成插入模式
  • A:在行尾变成插入模式
  • o:在下一行另起一新行进入插入模式
  • O:在上一行另起一新行进入插入模式

在命令模式下的快捷操作

  • ZZ:保存退出
  • ZQ:不保存退出
  • .(点):重复上一个操作

光标跳转:

             ^
k Hint: h键在左边并向左移动
< h l > l键在右边并向右移动。 j j键看起来像一个向下的箭头。
v
  • w:下一个单词的词首
  • e:当前或下一单词的词尾
  • b:当前或前一个单词的词首
  • H:跳到当前页的页首
  • M:跳到当前页的页中
  • L:跳到当前页的页底
  • ^:跳到行首的第一个非空白字符
  • 0:跳到行首,==HOME键
  • $:跳到行尾,==END键
  • G:跳到文件最后一行
  • gg:跳到文件第一行
  • ():句间跳转
  • {}:段落跳转
  • Ctrl+f:向下翻一屏
  • Ctrl+b:向上翻一屏
  • Ctrl+d:向下翻半屏
  • Ctrl+u:向上翻半屏
  • n|N:搜索关键字间跳转下一个|上一个

字符操作:

  • x:剪切光标处的一个字符
  • ~:转换大小写
  • J:删除当前行后的换行符
  • r:替换光标处的单个字符
  • R:进入REPLACE模式,替换光标所在字符,按esc回到命令模式
  • d:删除
    • dd 删除整行
    • d$ 删除从光标所在处到行尾
    • d^ 删除从光标所在处到非空行首
    • d0 删除从光标所在处到行首
    • dw 删除一个单词到下一个单词的首部
    • de 删除一个单词到这个单词的尾部
    • #dd 删除#行
    • D 从当前光标位置一直删除到行尾,留空行,等同于d$
  • y:复制
    • y$,y0,y^,yw,ye,#yy 类似于d命令的操作
    • Y 复制整行
  • p|P:整行,粘贴在行的下方|上方;非整行,粘贴在光标的后面|前面
  • c:删除后变成插入模式,修改命令
    • c$,c0,c^,cw,ce
    • cc 删除当前行并变成插入模式,== S
    • C 删除当前光标到行尾,并切换成插入模式
  • # i STRING [esc]:将STRING粘贴#次
  • 0gU$|0gu$:将整行替换成大小|小写

撤销和撤销撤销:

u:撤销刚才更改

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

Ctrl - r:撤销最后的“撤消”更改

二:扩展模式(extended command mode)

:(冒号):命令模式-->扩展模式

w [FiLE]:保存和另存为

q:退出

x:保存并退出

!:强制执行,直接加命令可以执行系统上的命令,!r可以将命令的结果读入文件

r:读入文件

地址定界::start_pos,end_pos

  • #:具体指定#行
  • #,#:从#行到#行
  • #,+#:从#行往下#行
  • 0:表示第一行
  • .:表示当前行
  • $:表示最后一行
  • %:表示全文
  • /PATTERN1/,/PATTERN2/:表示从第一次被模式匹配到的行到第二次被模式匹配到的行
  • 后跟一个编辑命令,d,y,w,r等来操作指定范围的内容

查找替换

s:操作范围s/要查找的内容/替换为的内容/修饰符(g 全局;c 提示是否替换;i 忽略大小写)

/:分隔符也可用逗号,@等

三:查找模式

/

四:可视化模式

v:对字符操作

V:对行操作

Ctrl+v:对块操作

选择所操作的内容再使用d,y,p等命令操作文本

五:多文件模式

vim FILE1 FILE2 ...

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

六:多窗口模式

多文件分割

  vim -o|-O FILE1 FILE2 ...:水平|垂直分割俩个文件及多个文件窗口

单文件分割

  在命令模式下 Ctrl+w,s|v :水平|垂直分割窗口

Ctrl+h|j|k|l:窗口间切换光标

Ctrl+w,q|o:取消相邻窗口|全部窗口

:wqall:退出全部文件和窗口

vim的寄存器

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

寄存器名称a,b,…,z,格式:“寄存器 放在数字和命令之间;

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

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

vim的配置

全局配置文件:/etc/vimrc

用户配置文件:~/.vimrc

set:在扩展模式下执行或者写到配置文件中

  • nu 显示行号
  • ic 忽略字符大小写
  • ai 自动缩进
  • si 智能缩进
  • ts=#  tab键的长度
  • hlsearch 高亮搜索
  • list 显示Tab和换行符 ^I 和$
  • ff=dos|unix 启用Unix格式|Windows格式
  • textwidth=# 设置文本宽度
  • cursorline 设置光标所在行的标识线
  • paste 复制保留原格式

set all 或者 help option-list 获取set的帮助

syntax on|off 语法高亮

vimtutor命令

vim自带的官方学习及练习文档

vim常用技巧

1)批量编辑:

1.ctrl + v 批量块选中每行的第一个字符
2.按I(大写i)进入编辑模式
3.编辑第一行
4.编辑完成后按俩次esc

欢迎大家一起学习交流~

vi和vim编辑器的更多相关文章

  1. Linux系统vi或者vim编辑器中如何显示行号

    设置行号很简单 我们要到vi或者vim编辑器的命令模式下,输入set number :set number 按下回车就显示行号了 那么怎么关闭行号呢? 很简单,我们只要再到vi或者vim编辑器的命令模 ...

  2. Linux 入门记录:五、vi、vim 编辑器

    一.vi.vim编辑器 vi 是一个命令行界面下的文本编辑工具,最早在 1976 年由 Bill Joy 开发.当时名字叫做 ex.vi 支持绝大多数操作系统(最早在类 Unix 操作系统的 BSD上 ...

  3. Linux学习之十三-vi和vim编辑器及其快捷键

    vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...

  4. vi与vim编辑器与解决vim编辑异常

    目录 一:vi与vim编辑器 二:解决vim编辑异常 一:vi与vim编辑器 vim是vi的升级版编辑器,就是vim比vi丰富一些. 1.安装vim 命令 yum install vim -y 2.打 ...

  5. linux学习笔记--vi与vim编辑器

    vi编辑器全名为Visual Interface,即为可视化接口,类似于Windows中的记事本 vim相当于是vi的一个升级版本,包含vi的一切操作命令,vim相对于vi做了哪些提升: 1.vim支 ...

  6. 五、Vi和Vim编辑器

    1. Vim编辑器: 在Linux下一般使用vi编辑器来编辑文件.vi既可以查看文件也可以编辑文件.三种模式: 命令行.插入.底行模式 切换到命令行模式:按Esc键: 切换到插入模式:按 i .o.a ...

  7. Linux实操篇 vi和vim编辑器

    vi和vim的基本介绍 所有的Linux系统都会内建vi文本编辑器. vim具有程序编辑的能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计.代码补完.编译及错误跳转等 ...

  8. linux的vi和vim编辑器操作

    vi:linux内部的文本编辑器:vim:vi的增强版,具有程序编辑的能力. vi和vim的三种常见模式: (1)正常模式(一般模式):vim一打开就是这种模式,此模式下可以使用各种快捷键,比如复制粘 ...

  9. Linux 笔记 - 第七章 Vi 和 Vim 编辑器

    博客地址:http://www.moonxy.com 一.前言 Vi 与 Vim 都是多模式编辑器,是 Linux 中必不可少的工具.不同的是 Vim 是 Vi 的升级版本,它不仅兼容 Vi 的所有命 ...

  10. Vi 和 Vim 编辑器详细使用方法

    学习linux的一项必会技能,熟练使用vi/vim编辑器那便最重要的了.不过一堆操作看的也是太头疼了,以下整理了些常用到的命令. 工作模式 vi编辑界面有三种不同的工作模式,分别为命令模式.输入模式. ...

随机推荐

  1. Linux新手的最佳包管理器

    一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux开发 中,包管理器非常重要,知道如何使用多种包 ...

  2. 微信小程序学习笔记(阶段一)

    一阶段学习过程: (一)看官方文档的简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/ (二)看小码哥视频:https://chuanke.baidu.co ...

  3. 集合详解(python)

    集合概念 集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合. 集合中的元素三个特征: 确定性(元素必须可hash) 互异性(去重)--将一个列表变为集合,就自动去重了 无序性(集合中的元 ...

  4. TCHAR字符串查找&反向查找字符串

    C++支持两种字符串,即常规的ANSI编码("字符串")和Unicode编码(L"字符串"),相应的就有两套字符串处理函数,比如:strlen和wcslen,分 ...

  5. 利用NPOI将EXCEL转换成HTML的C#实现

    领导说想做一个网页打印功能,而且模板可以自定义,我考虑了三个方案,一是打印插件,二是在线 html 编辑器,三是 excel 模板,领导建议用的是打印插件的形式,我研究了一下,一个是需要下载安装,二个 ...

  6. java大数(BigInteger)

    JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的 ...

  7. V-bind详细使用

    v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url">& ...

  8. [HNOI2002]营业额统计_Treap

    [HNOI2002]营业额统计 题目大意:给你一串n数序列,对于每一个刚输入的数a,找到一个前面的数k,使得|a-k|最小. 注释:$n<=32767,ai<=10^6$. 想法:刚学Tr ...

  9. 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)

    第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...

  10. python元类理解2

    恩,对元类理解又有新的收获,其实类似于装饰器,只不过装饰器是修饰函数,元类用来定制一个类. 代码如下,这是一个使用了函数做元类传递给类: input: def upper_attr(class_nam ...