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. 5分钟spark streaming实践之 与kafka联姻

    你:kafka是什么? 我:嗯,这个嘛..看官网. Apache Kafka® is a distributed streaming platform Kafka is generally used ...

  2. Greetings

    1,Common English Greetings Hey! Hey man! Hey girl! Hi. How's it going? How are you doing? What's up? ...

  3. 笔记:I/O流-ZIP文档

    ZIP文档以压缩格式存储了一个或多个文件,每个ZIP文档都有一个头,包含诸如每个文件名字和所使用的压缩方法等信息,在 Java 中可以使用 ZipInputStream 来读入ZIP 文档,getNe ...

  4. Mybatis转义字符

    Mybatis的sql语句中需要用到'>'或者'<'时,不能直接使用. < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 ...

  5. Shiro权限框架(二)

    一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录": 授权 - ...

  6. 把文件每隔三行合并成一行(awk之RS、ORS与FS、OFS)

    比如文本如下:123abc合并后的结果是:1 2 3a b c #.txt a b c awk之RS.ORS与FS.OFS 转自http://www.cnblogs.com/fhefh/archive ...

  7. Alpha冲刺Day8

    Alpha冲刺Day8 一:站立式会议 今日安排: 经过为期5天的冲刺,基本完成企业人员模块的开发.因第三方机构与企业存在委托的关系.第三方人员对于风险的自查.风险列表的展示以及自查风险的统计展示(包 ...

  8. C语言——第三次作业

    题目1.A乘以B 1.实验代码 #include <stdio.h> int main() { int A,B,C; scanf("%d %d",&A,& ...

  9. 【iOS】swift-Binary operator '|' cannot be applied to two UIViewAutoresizing operands

    let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 568)) addSubview(view) view.autoresi ...

  10. nyoj Dinner

    Dinner 时间限制:100 ms  |  内存限制:65535 KB 难度:1   描述 Little A is one member of ACM team. He had just won t ...