Linux系统VIM编辑器管理(2)
VI/VIM模式概述
在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了,与微软的 Windows 系统不同的是,如果你用惯了 Microsoft Word 或 Corel Wordperfect 的话,那么除了 X window 里面的图形接口编辑程序,用起来尚可应付外,在 Linux 的文本模式下,会觉得文书编辑程序都没有窗口接口来的直观与方便.
VIM 有哪些特点呢 ?
1.所有的 Unix Like 系统都会内建 VIM 文本编辑器,其他的文书编辑器则不一定会存在.
2.很多个别软件的编辑接口都会主动呼叫 VIM (例如未来会谈到的 crontab, visudo, edquota 等指令)
3.VIM 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计.
4.因为VIM程序简单,并可自定义按键,从而编辑速度相当快速,在程序设计领域大有作为.
那么什么是 VIM 呢 ?
其实你可以将VIM视作VI的升级版,VIM可以用颜色或底线等方式来显示一些特殊的信息,简单的来说VI是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方.VIM则可以说是程序开发者的一项很好用的工具,就连VIM的官方网站自己也说VIM是一个『程序开发工具』而不是文字处理软件,因为VIM里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等.这对于我们在 Linux 上面进行一些配置文件的编辑时,是很好的一项功能.
那 VIM 的工作模式有哪些呢 ?
基本上VI/VIM共分为三种模式,分别是命令模式,输入模式,末行模式.
命令模式:
以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.编辑模式:
在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.末行模式:
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.
VI/VIM模式按键
◆命令模式◆
以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.
操作类型 | 操作键(命令) | 功能(作用) |
---|---|---|
光标方向移动 | ↑ ↓ ← → | 上、下、左、右 |
字母移动 | H j k l | 上、下、左、右 |
翻页 | Page Down或Ctrl+F(大) | 向下翻动一整页内容 |
Page Up或Ctrl+B(大) | 向上翻动一整页内容 | |
行内快速跳转 | Home键或“^”、数字“00” | 跳转至行首 |
End键或“$”键 | 跳转到行尾 | |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
#G | 跳转到文件中的第#行 | |
删除 | x或Del | 删除光标处的单个字符 |
dd | 删除当前光标所在行 | |
#dd | 删除从光标处开始的#行内容 | |
d^ (d shift+6) | 删除当前光标之前到行首的所有字符(不包含光标) | |
d$ | 删除当前光标处到行尾的所有字符(包含光标) | |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 | |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后(下一行) |
P(大) | 粘贴到光标位置处之前(上一行) | |
替换 | r | 替换光标所在字符 |
R | 从光标出开始替换,按ESC键结束 | |
/word | /word | 从上而下在文件中查找字符串“word” |
?word | ?word | 从下而上在文件中查找字符串“word” |
n | n | 定位下一个匹配的被查找字符串 |
N | N | 定位上一个匹配的被查找字符串 |
u | u | 按一次取消最近的一次操作,多次重复按u键,恢复已进行的多步操作 |
U | U | 用于取消对当前行所做的所有编辑 |
Shift+zz或者ZZ | Shift+zz(小)或者ZZ | 保存当前的文件内容并退出vi编辑器 |
◆编辑模式◆
在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.
操作类型 | 操作键(命令) | 功能(作用) |
---|---|---|
光标后插入 | a | 在光标所在字符后插入 |
光标行尾插入 | A | 在光标所在行尾插入 |
光标前插入 | i | 在光标所在字符前插入 |
光标后插入 | I | 在光标所在行行首插入 |
光标下插入 | o | 在光标下插入新行 |
光标上插入 | O | 在光标上插入新行 |
◆末行模式◆
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.
功能 | 命令 | 备注 |
---|---|---|
保存文件 | :w | 保存所做操作 |
:w /root/newfile | 另存为其它文件 | |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改,并退出vi | |
:wq | 保存文件退出 | |
删除多行文件 | :n,nd | 删除从n-n的行 |
:e ~/install.log | 打开新的文件进行编辑 | |
:r /etc/filesystems | 在当前文件中读入其他文件内容 | |
:!命令 | 直接执行命令打印到屏幕上 | |
:r!命令 | 导入命令结果到光标所在处 | |
行号显示 | set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 | |
颜色开关 | :syntax off | 关闭颜色显示 |
:syntax on | 开启颜色显示 | |
正则替换 | :s /old/new/ | 将当前行中查找到的第一个字符“old” 串替换为“new” |
:s /old/new/g | 将当前行中查找到的所有字符串“old” 替换为“new” | |
:#,#s /old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” | |
:% s /old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” | |
:s /old/new/cg | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
VI/VIM拓展功能
◆VIM快捷命令◆
实例1:使用VIM配置快捷键,当输入Ctrl+p快捷键时,执行在行首添加#号.
#^P 不能手动输入,需要执行ctrl+V+P 来定义或者ctrl+V,然后ctrl+P.:map ^P I#<esc>此时在指定行按下Ctrl+p 既可以实现在开头添加注释.
实例2:使用VIM配置快捷键,当输入Ctrl+b快捷键时,执行调到行首,并删除一个字符.
#^P 不能手动输入,需要执行ctrl+V+b 来定义或者ctrl+V,然后ctrl+b.:map ^B ^x此时在指定行按下Ctrl+b 既可以实现在开头删除一个字符.
实例3:使用VIM配置快捷键,当输入ab快捷键时,将myweb替换成mkdirs.com.
:ab myweb mkdirs.com
◆VIM块选择命令◆
块选择命令,可以实现批量的选择一块数据进行操作.
| 参 数 | 说 明 |
|:---- -----:|:--------------------------:|
| v | 字符选择,光标经过的地方反白|
| V | 行选择,光标经过的地方反白 |
| Ctrl+v | 块选择,一次选择一个格 |
| shift+v | 行选择,一次选择一行数据 |
| y | 将反白的地方复制起来 |
| d | 将反白的地方删除 |
◆VIM多窗口编辑◆
sp命令,可以编辑多窗口,我们可以实现多窗口之间的编辑和切换功能.
参 数 | 说 明 |
---|---|
:sp filename | 在VIM中打开一个新窗口 |
Ctrl+w+j | 切换到上一个窗口 |
Ctrl+w+k | 切换到下一个窗口 |
◆VIM环境变量配置◆
VIM常用环境变量的说明,和常用参数的配置.
参 数 | 说 明 |
---|---|
:set nu | 设置与取消编号 |
:set nonu | |
:set hlsearch | 设置与取消高亮字体 |
:set nohlsearch | |
:set backup | 是否自动备份 |
:set nobackup | |
:set cursorline | 给指定行添加下划线 |
:set all | 显示所有环境变量 |
:set | 显示与系统默认值不同的参数 |
:syntax on | 开启语法高亮 |
:set bg=dark | 字体高亮显示 |
:set bg=light | 字体低亮度显示 |
实例1:通过写入配置文件 ./vimrc实现配置文件的永久生效,在这里永久添加一个下划线.
[root@localhost ~]# vim .vimrc
[root@localhost ~]# cat .vimrc
set cursorline
转载于:https://www.cnblogs.com/LyShark/p/10221779.html
Linux系统VIM编辑器管理(2)相关推荐
- Linux系统vim编辑器使用方法:编辑、保存和退出
安装vim编辑器: 在终端输入命令: sudo apt-get update sudo apt-get install vim 创建一个文件: cd ~ vim word.txt 通过上面的命令就打开 ...
- Linux 系统 vim 编辑器使用简明教程
vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是"visual inter ...
- Linux系统之时间管理
Linux系统之时间管理 一.date命令介绍 1.date帮助 2.查询系统时间 ①查询电脑硬件时间 ②查询UTC时间 ③查询系统时间 ④特定时间格式输出系统时间 ⑤查询电脑所有时间信息 三.修改系 ...
- Linux系统的进程管理
Linux系统的进程管理 一.系统进程介绍 1.进程概念 2.进程特点 3.进程类型 二.查看系统进程 1.PS命令 2.查看系统进程 3.ps aux结果说明 4.top命令 ①top命令使用方法 ...
- Linux系统的日志管理
Linux系统的日志管理 一.systemd-journald服务 1.systemd-journald介绍 2.系统日志默认保存路径 3.systemd-journald的配置文件修改 ①配置文件目 ...
- Linux系统软件包的管理 3月30日课程
Linux系统软件包的管理 一. rpm工具 rpm Redhat Package Manager, 设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由- ...
- linux中vim编辑器_为什么Vim爱好者喜欢Herbstluftwm Linux窗口管理器
linux中vim编辑器 每个人都喜欢Vim(除了Dvorak和Emacs用户). Vim非常流行,以至于整个Web浏览器都致力于通过Vim键盘绑定,流行的Zsh终端仿真器中的Vim模式甚至文本编辑器 ...
- Linux系统的账号管理
写在前面 作为一个运维工程师来讲,系统下的账号管理是工作中很重要的一个环节,所以了解系统的账号管理还是非常有必要的. 首先,我们要知道对于Linux系统而言,它并不知道你是谁,它仅识别用户的ID号,而 ...
- LINUX系统vim指令提示command not found问题解决
LINUX系统vim指令提示command not found问题解决 我们在安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim test.txt时会提示: v ...
最新文章
- Solaris和Linux的比较、区别、异同云云。。。
- 如何使用jQuery替换div的innerHTML?
- 优达学城数据分析师纳米学位——P3项目知识点整理及代码分析 xml文件解析
- Redis 字符串(String)
- ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素
- 程序员必定会爱上的10款软件
- c语言 字符串 url,如何对URL字符串进行百分号编码
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- 表格打印没有左边线_office办公软件Excel表格的打印技巧,建议收藏
- linux下ftp配置文件详解
- 介绍4个大神常用而你不常用的python函数
- Nginx 反向代理解决浏览器跨域问题
- 过程生产excel_通用Excel做销售订单动态展示板
- kafka的发行版选择
- ubuntu18.04安装lua5.3.6和luarocks3.8
- 【Fusion】Mosek.Fusion基础
- java 图片 加边框_给图片加图片边框 图片边框要求为PNG格式
- 怀旧服ouf头像插件_魔兽世界7.0前夕ShadowedUF简洁头像插件
- UG二次开发自定义刀轨
- 卡尔曼滤波简介(转载)
热门文章
- 二叉树的最近公共祖先—leetcode236
- unc0ver 发布新版本支持 iOS 13.3 越狱
- iOS 应用的生命周期
- 包含Iphlpapi.h 编译错误 error C2065: 'HRASCONN'
- Docker环境下报错:unknown group ‘mlocate‘ in statoverride file E: Sub-process /usr/bin/dpkg
- 从ubuntu启动,而且找不到win10启动项!
- [BUUCTF-pwn]——[BJDCTF 2nd]test
- python bytes 操作_Python 3:不支持/:“float”和“bytes”的操作数类型
- java枚举使用详解
- JasperReport学习笔记2-创建简单的报表例子