1 Vi、Vim文本编辑器

1.Vi、Vim

Vi是Visual interface的简称。

Vim是Vi的增强版,即Vi Improved。在后面的实例中将介绍Vim的使用。

为什么学vi?

1)所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;

2)很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令);

3)vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法癿正确性,方便程序设计;

4)因为程序简单,编辑速度相当快速。

系统自带教程:vimtutor

vim [options] [filelist]

常用选项:

+[num]

+/{pat}

1、工作模式、命令模式、输入模式和末行模式



Vim拥有5种编辑模式:命令模式、输入模式、末行模式、可视化模式、查询模式。

1).命令模式(其它模式→ESC)

2).输入模式(命令模式→a、i、o、A、I、O)

3).末行模式(命令模式→:)

4).可视化模式(命令模式→v)

5).查询模式(命令模式→?、/)

2、模式之间切换



命令模式:







输入模式:

新增 (append)

a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。

A: 从光标所在列最後面的地方开始新增资料。

插入 (insert)

i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。

I :从光标所在列的第一个非空白字元前面开始插入资料。

开始 (open)

o :在光标所在列下新增一列并进入输入模式。

O: 在光标所在列上方新增一列并进入输入模式

末行模式:





3、打开文件

vim /path/to/somefile

vim +# :打开文件,并定位于第#行

vim +:打开文件,定位至最后一行

vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

默认处于编辑模式

4、关闭文件

1、末行模式关闭文件

:q 退出

:wq 保存并退出

:q! 不保存并退出

:w 保存

:w! 强行保存

:wq --> :x

2、编辑模式下退出

ZZ: 保存并退出

4、移动光标(编辑模式)

1、逐字符移动:

h: 左

l: 右

j: 下

k: 上

#h: 移动#个字符;

2、以单词为单位移动

w: 移至下一个单词的词首

e: 跳至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首

#w:

3、行内跳转:

0: 绝对行首

^: 行首的第一个非空白字符

$: 绝对行尾

home

end

4、行间跳转

#G:跳转至第#行;

G:最后一行

1G:跳转到第1行首===gg

末行模式下,直接给出行号即可

:5 直接定位到第5行首

5、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

6、删除单个字符

x: 删除光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符

7、删除命令: d

d命令跟跳转命令组合使用;

#dw, #de, #db

dd: 删除当前光标所在行

#dd: 删除包括当前光标所在行在内的#行;

末行模式下:

StartADD,EndADDd

.: 表示当前行

$: 最后一行

+#: 向下的#行

8、粘贴命令 p

p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;

P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

9、复制命令 y

用法同d命令

yy 复制1行

5yy 复制5行

10、修改:先删除内容,再转换为输入模式

c: 用法同d命令

11、替换:r

R: 替换模式

12、撤消编辑操作 u

u:撤消前一次的编辑操作

连续u命令可撤消此前的n次编辑操作

#u: 直接撤消最近#次编辑操作

撤消最近一次撤消操作:Ctrl+r

13、可视化模式

v: 按字符选取

该模式下通过光标移动选择文本,选取后按 y 可以把文本提取到缓冲区(即复制),c 可以剪切。之后可以使用p在光标后粘贴,P粘贴在光标前

V:按矩形选取

V是行选取模式,以行为单位进行选取。Ctrl+v是块选取模式,可以选取一块矩形区域中的文本。

14、查找

/PATTERN

?PATTERN

n

N

15、查找并替换

	在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
1,$
%:表示全文
:s/root/admin/ 替换光标所在行第一个root为admin
:s/root/admin/g 替换光标所在行所有root为admin
:1,5 s/root/admin/g 替换第1-5行所有root为admin
:1,$ s/admin/root/g 替换所有行的admin为root ==== 1,$ 等价于%

16、使用vim编辑多个文件

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件

退出

:qa 全部退出

17、分屏显示一个文件

Ctrl+w, s: 水平拆分窗口

Ctrl+w, v: 垂直拆分窗口

在窗口间切换光标:

Ctrl+w, ARROW(表示上下左右箭头)

:qa 关闭所有窗口

18、分窗口编辑多个文件

vim -o : 水平分割显示

vim -O : 垂直分割显示

19、将当前文件中部分内容另存为另外一个文件

末行模式下使用w命令

:w

:ADDR1,ADDR2w /path/to/somewhere

20、将另外一个文件的内容填充在当前文件中

:r /path/to/somefile

21、跟shell交互

:! COMMAND

22、高级话题

1、显示或取消显示行号

:set number

:set nu

:set nonu

2、显示忽略或区分字符大小写

:set ignorecase

:set ic

:set noic

3、设定自动缩进

:set autoindent

:set ai

:set noai

4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

23、配置文件

/etc/vimrc
~/.vimrc
set hlsearch "高亮度反白
set backspace=2 "可随时用退格键删除
set autoindent "自动缩排
set tabstop=4 "缩进
set softtabstop=4 softtabstop是“逢4空格进1制表符”,前提是你tabstop=4
set shiftwidth=4 自动缩进空格长度
set mouse=a "使用鼠标
set selection=exclusive
set selectmode=mouse,key
set ruler "可显示最后一行的状态
set showmode "左下角那一行的状态
set nu "可以在每一行的最前面显示行号啦!
set bg=dark "显示不同的底色色调
syntax on "进行语法检验,颜色显示

Vim文本编辑器详细用法的更多相关文章

  1. vim文本编辑器的用法

    vi是一个命令行界面的文本编辑器: vim是vi的改进版: vim不仅有文本编辑:还有文本处理.代码编辑等功能:   1.VIM简介 vim 命令可启动vim编辑器: 一般 vim 文件路径 来使用: ...

  2. 11 vim文本编辑器

    和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...

  3. (6.2)vim文本编辑器

    vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大. vim文本编辑器只有命令,没有菜单.

  4. Linux系统 vi/vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  5. Vim 文本编辑器的基本使用

    Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...

  6. Linux命令行下的vim文本编辑器

    Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...

  7. linux100day(day3)--常用文本处理命令和vim文本编辑器

    今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...

  8. linux/linux学习笔记-vim文本编辑器(mooc)

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

  9. Linux学习笔记(九)Vim文本编辑器的使用

    Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...

随机推荐

  1. DingTalk钉钉消息推送(.net core 3 WebApi尝鲜记)

    我发了个朋友圈,Swagger真他妈的牛B,解放了开发API的码农,麻麻再也不用担心我们写API文档耽误回家吃饭了. /// <summary> /// 发送钉钉消息 /// </s ...

  2. 如何备份开拓者TBQuant的策略文件

    备份 "C:\TBQuant_V1.1.0.9_X64\users\你的用户名\Strategy\data\strategy.bin" 这个文件即可.

  3. 用Autofac替换.net core 内置容器

    官方建议使用内置容器,但有些功能并不支持,如下: 属性注入 基于名称的注入 子容器 自定义生存期管理 Func<T> 支持 所以可以使用其他第三方IOC容器,如Autofac,下面为学习使 ...

  4. jdk源码调试进去形参没有值

    https://blog.csdn.net/u010407050/article/details/76690478 1.在你的D:盘新建jdk文件夹,然后在文件夹里面分别创建两个文件夹jdk_src( ...

  5. 应用Redis分布式锁解决重复通知的问题

    研究背景: 这几天被支付宝充值后通知所产生的重复处理问题搞得焦头烂额, 一周连续发生两次重复充钱的杯具, 发事故邮件发到想吐..为了挽回程序员的尊严, 我用了Redis的锁机制. 事故场景: 支付宝下 ...

  6. __attribute__((format(printf, a, b)))

    最近,在看libevent源码,第一次看到__attribute__((format(printf, a, b)))这种写法.因此,在这里记录下用法. 功能:__attribute__ format属 ...

  7. Linux内核之vmlinuz反汇编

    本文介绍在Fedora上对Linux内核的vmlinuz进行反汇编.如果内核是debug版本,可以用来查看某个函数的源代码. 1. 安装kernel-devel软件包 dnf -y install k ...

  8. vue组件、自定义指令、路由

    1.vue组件 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的 ...

  9. Git的使用--如何安装和使用 github,让小白不在那么白 (一)(超详解)

    简介 刚开始写了关于如何将本地代码上传到github上,但是有些小伙伴们不清楚如何安装Git,这一篇就给小伙伴们普及一下Git的安装和使用.适合刚开始用git的小白,大神或者大佬请绕道. 实际项目开发 ...

  10. Why React Is Favored by Front-End Specialists

    In this section, we will discuss some of the features that make React a superior choice for front-en ...