Vim是一个类似Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了许多的功能,VIM是自由软件,今天我们就来讲讲VIM的使用方法。

本文是基于centos7上的vim编辑器演示的,默认centos7没有安装vim,可以使用yum -y install vim安装vim。

VIM的四种模式及转换

命令模式:控制屏幕的光标移动,进行文本的删除、复制等文字编辑工作,当使用vim打开某个文件的时候,默认模式就                     是命令模式

插入模式:只有在插入模式下,才可以输入文字

末行模式:保存文件或退出vim,同时也可以设置编辑环境和一些编译工作,如列出行号、寻找字符串等。

可视化模式:可以使用鼠标框选文字,比较人性化

特别要提到的是,在命令模式到插入模式,可以有多种方式:

i:insert,在光标所在处输入
a:append,在光标所在处后方输入
o:在光标所在行处的下方打开一个新行
I:在光标所在行的行首输入
A:在光标所在行的行尾输入
O:在光年所在行的上面打开一个新行

退出文件

在命令模式下:

ZZ:保存并退出

在末行模式下:

  q:退出
q!:强制退出,不保存此前的编辑操作
wq:保存并退出
x:保存并退出
w:保存,也可以保存到某个文件 w /PATH/TO/SOMEFILE

举例:我们复制一个文件cp /etc/rc.d/init.d/functions  /tmp/functions.txt,然后操作/tmp/functions.txt这个文件,在第第二行中插入"# hello linux",保存退出。

光标跳转

在命令模式下操作

字符间跳转

h:向左一个字符
l:向右一个字符
k:向上一个字符
j:向下一个字符

当然也可以是键盘的上下左右箭头

可以结合数字加COMMAND,例如按 " 2  h " 光标向左移动2个字符

单词间跳转

w:下一个单词的词首
e:当前或后一个单词的词尾
b:当前或者前一个单词的词首
可以结合数字加COMMAND,例如" 2 w ":当前单词后的第二个单词的词首

行首行尾跳转

^:跳转至行首的第一个非空白字符
:跳转至行首
$:跳转至行尾

行间跳转

#G:跳转至由#指定的行
1G,gg:第一行
G:最后一行

句间跳转和端间跳转(不常用)

):下一句
(:上一句
}:下一段
{:上一段

翻屏

Ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
Enter:按行向后翻

vim的编辑命令

字符编辑

x:删除当前字符
#x:删除光标处起始的#个字符
xp:交换光标处的字符及其后面字符的位置

替换命令(replace)

r:替换光标所在处的字符
r+替换字符

删除命令

d:删除命令,不能单独使用
d$:删除当前字符到所在行的行尾
d^:删除当前字符到所在行的行首(不删除光标所在字符)
dw:删除光标所在的单词位置至下一个单词的词首
de:删除光标所在单词的位置至下一个单词的词尾
db:删除光标所在单词的位置至单词的首部
dd:删除光标所在的行
可以结合数字使用: "3 dd":删除光标所处的行起行及下面的行,共3行
注意:删除的内容被保存在缓存区里面

粘贴命令

p:缓冲区中的内容如果是整行,则粘贴在当前所在行的下方,否则,则粘贴至当前光标所在处的后方
P:缓冲区中的内容如果是整行,则粘贴在当前所在行的上方,否则,则粘贴至当前光标所在处的前锋

复制命令

y:复制,不能单独使用
y$:复制光标位置到行尾
y^:复制光标位置至行首,不包含光标所在的字符
ye,yw:复制光标所在单词的位置至词尾
yb:复制光标所在单词的位置至词首
yy:复制一整行

改变命令

和d的作用是一样的,删除文件,不同之处在于,使用c之后,会直接进入插入模式

c$:删除光标所在位置至行尾并进入插入模式
c^:删除光标所在位置至行首并进入插入模式
ce,cw:删除光标所在单词的位置至单词尾部
cb:删除光标所在单词的位置至单词首部

其他编辑操作

在命令模式下使用v和V进入可视化模式

v:按字符选定
V:按行选定

选定之后,可以结合d(删除),c(删除并进入插入模式),y(复制)来操作

vim末行模式

地址定界

n:特定的第n行,列入:,即第5行
. :当前行
$:最后一行
n1,n2:指定行范围,左侧为起始行,右侧为结束行
n1,+n2:指定行范围,左侧为起始行,右侧为偏移量
%:全文
/pattern/:从光标所在处起始向文件尾部第一次被模式匹配到的行
/pat1/,/pat2/:从光标所在处起始,第一由pat1匹配到的行开始,至第一次由pat2匹配到的所有行

可以结合d,y,c使用,也可以使用w将范围内的文本保存至指定的文件,使用r  /PATH/FROM/SOMEFILE 将指定文件中的文本读取并插入至指定的位置。

查找

/PATTERN:从当前光标所在处向文件尾部查找能够被模式匹配的所有字符串
?PATTERN:从当前光标所在处向文件首部查找能够被模式匹配的所有字符串
n:查看下一个 N:查看上一个

查找并替换

s:末行模式的命令

格式:s/要查找的内容/替换的内容/修饰符
要查找的内容:可使用正则表达式
替换的内容:不能使用正则表达式,但是可以引用
如果"要查找的内容"部分在模式中使用了分组符号,在"替换的内容"中可以使用后向引用
直接引用查找模式匹配到的全部文本,要是用&符号 修饰符:
i:忽略大小写
g:全局替换,意味着一行中如果匹配到多次,则均替换

有的时候我们需要匹配"\",我们就可以把分隔符替换为其他的字符,比如s@@@或者s###。

vim的多文件功能

vim可以同时打开多个文件

vim  FILE1  FILE2..

在文件间切换:

:next  下一个文件
:prev 上一个文件
:first 第一个文件
:last 最后一个文件

退出所有文件:

:wqall  保存退出所有文件
:wall 保存所有文件
:qall 退出所有文件

多窗口查看

在使用vim打开多个文件时使用选项:

-o:水平分隔窗口
-O:垂直分隔窗口

使用ctrl+w切换窗口

定制vim的工作特性

在末行模式下的设定,仅对当前vim有效,永久修改必须修改配置文件:

全局:/etc/vimrc
用户个人:~/.vimrv 没有可以创建

在末行模式下的操作:

、行号
显示:set number, 简写为set nu
取消显示:set nomber, set nonu
、括号匹配高亮
匹配:set showmatch, set sm
取消:set nosm
、自动缩进
启用:set ai
禁用:set noai
、高亮搜索
启用:set hlsearch
禁用:set nohlsearch
、语法高亮
启用:syntax on
禁用:syntax off
、忽略字符大小写
启用:set ic
禁用:set noic

举例:在vim中,tab键为8个空格的位置且8个空格是一个整体,如果是左右键移动会看到只能移动一次就是8个空格,那么如何将其修改为4个空格呢?

可以在/etc/vimrc加入以下2行:

set ts=     #设置宽度为4个空格
set expandtab #将tab转换为了space

在末行模式下可以获取VIM的帮助

:help
:help subject

如果大家想练习vim的操作,输入vimtutor即可获取VIM教程

[root@localhost ~]# vimtutor

【linux相识相知】VIM编辑器的更多相关文章

  1. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  2. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  3. Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳

    Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 25 转载请注明出处! 目录 Windows & Lin ...

  4. Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  5. 【Linux 操作系统】vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  6. Linux之vi/vim编辑器

    1.概述 所有的Unix like系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在,但是目前我们使用比较多的是 vim 编辑器. vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的 ...

  7. 新手指南:Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  8. Linux下面对于VIM编辑器的代码折叠使用与screen

    VIM设置代码折叠 1. 折叠方式 可用选项 'foldmethod' 来设定折叠方式:set fdm=*****.有 6 种方法来选定折叠:          manual           手工 ...

  9. linux基础之vim编辑器

    vi : Visual Interface vim : VI Improved : VI的基础加上一些有用的插件 vim编辑器: 文本编辑器, 字处理器, 全屏编辑器, 模式化编辑器 vim的模式有三 ...

随机推荐

  1. 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理

    第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...

  2. Bitnami WordPress如何修改MySQL root的默认密码?

    Bitnami WordPress安装完毕后,MySQL root的默认密码为空,我们应该马上修改MySQL密码,在开始菜单里面,进入Bitnami ,启动控制台程序,随后输入: mysql -u r ...

  3. 用C语言构建一个可执行程序的流程

    1.流程图 从用C语言写源代码,然后经过编译器.连接器到最终可执行程序的流程图大致如下图所示. 2.编译流程 首先,我们先用C语言把源代码写好,然后交给C语言编译器.C语言编译器内部分为前端和后端. ...

  4. [Swift]八大排序算法(三):选择排序 和 简单选择排序

    排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...

  5. struts2配置文件中的method={1}详解

    struts.xml中的配置: <!-- 配置用户模块的action --> <action name="user_*" class="userActi ...

  6. 14、OpenCV Python 直线检测

    __author__ = "WSX" import cv2 as cv import numpy as np #-----------------霍夫变换------------- ...

  7. Haproxy配置之URL重写,支持websocket

    配置文件位置:/etc/haproxy/haproxy.cfg Reqrep 正则重写 配置详情: Frontend App *: acl uri_api path_beg /api/ acl uri ...

  8. vue脚手架的安装和使用

    脚手架安装:

  9. fork 炸弹

    一段古老的Linux shell程序 :() { :|:& };: 这是bash shell的写法,首先定义了一个函数:(),花括号里面是函数体,这里递归执行函数本身,通过管道在后台再递归运行 ...

  10. 【算法笔记】B1042 字符统计

    1042 字符统计 (20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空 ...