【Linux】编辑器vim详解
一、vim的基本概念
vim是文件编辑器,是vi的升级版本,兼容vi的所有指令,同时做了优化和延伸。vim有多种模式,其中最常用的模式有命令模式、插入模式、底行模式以及替换模式和视图模式。(视图模式本文暂不提及)
二、vim的安装
在使用vim编辑器进行文件的编辑之前,需要确保自己的系统已经安装了vim编辑器。可直接输入命令vim,如果显示如下的界面,则证明你的系统已经安装了vim,可以用vim进行操作。
如果还未安装,可通过输入命令yum install -y vim来安装vim即可。
三、vim的常用模式
1.命令模式
命令模式是通过vim指令进入操作的默认模式,可以切换成其他模式,另外的模式进行切换也需要命令模式作为中间模式。
vim的指令操作一般是在命令模式下使用的,常见的指令如下。(用“+”连接的部分说明要同时按键)
1.复制、粘贴、剪切和删除功能相关的指令
yy/nyy 复制光标所在行的内容,n是数字,表示从光标处开始复制n行内容
p/np 粘贴剪切板中的内容,n是数字,表示从光标处开始粘贴n份相同的内容
dd/ndd 剪切光标所在行的内容,n是数字,表示从光标处开始剪切n行内容;如果后续没有粘贴的操作,则该操作等同于删除
n x 行内删除,从当前光标位置起向右删除n个字符的内容(包括当前光标所指的字符)
n X 行内删除,从当前光标位置起向左删除n个字符的内容(不包括当前光标所指的字符)
2.撤销操作相关的指令
u 撤销上次的操作
ctrl + r 撤销撤销操作的操作(即撤销通过u指令撤销的操作,可以理解为复原操作,如果在输入该指令前未进行撤销操作,则该指令会报错)
3.挪动光标相关的指令
shift + g (即G) 将光标定位到文档内容的最后一行开头
gg 将光标定位到文档内容的开头
n shift + g(即 n G) 将光标定位到文档内容的第n行开头
shift + 4(即$) 将光标定位到当前所在行的行尾
shift + 6(即^) 将光标定位到当前所在行的行首
n w 以单词为单位,光标向后挪动一个单位(范围是整个文件,即可以跨行挪动光标)
n b 以单词为单位,光标向前挪动一个单位(范围是整个文件,即可以跨行挪动光标)
4.字符切换相关的指令
shift + ~ 快速进行大小写的切换(当前光标处)
n r + 替换后的字符 替换当然光标所指向的内容
5.光标进行上下左右移位的按键
h 向左
j 向下
k 向上
l 向右
(可以根据这四个字母按键在键盘上的相对位置和联想记忆来进行方向的记忆:h和l分别在最左边和最右边,所以是向左和向右挪动光标;j联系英文单词jump,即“跳”,可以联想成光标向下“跳”,即向下挪动;k联系英文单词king,即“王”,王地位最高,可以联想成光标向上挪动。
2.插入模式
插入模式,是可以直接将键盘输入的内容插入到文件的模式。
插入模式可在命令模式下通过按键i/a/o等切换而来,该模式下用户可进行内容的插入,期间屏幕的左下角会有INSERT字样的提示。退出该模式通过按键Esc完成,退出后为命令模式。插入模式不可直接跳过命令模式转换为其他模式。
即
i 光标不会移动
a 光标向后移动一个字符的位置,按Esc退出该模式后光标会向前挪一个字符的位置。
o 会伴随有新起一行的操作,按Esc退出该模式后换行的操作仍不会撤销。
3.底行模式
底行模式,顾名思义,是在屏幕的最底行进行命令输入的模式。
底行模式可以在命令模式下通过shift + :切换得到。如果当前是除命令模式外的其他模式,可先按键Esc,再按键shift + : 进入底行模式。
退出vim编辑器是从底行模式进行退出,输入wq可以保存编辑的内容并推出vim编辑器。
底行模式下,常见的指令操作:
1.set nu / set nonu 调出或去掉行号的指令
2./字符串 搜索字符串
3.!command 执行命令command(command是在命令行可以输入的命令)
该操作与在命令行进行操作的效果是一样的,显示结果时会切 到命令行显示,按键回车后会返回vim编辑器(底行模式)
4.w 写入,即保存编辑的内容;
q 退出vim
5.%s/A字符串/B字符串/g 将文件内容中所有的A字符串用B字符串替换,%s是字符串的 格式符,g表示全部
6.vs 文件名 分屏操作另一个文件,文件本不存在时会直接创建一个新文 件;编辑文件时,光标在哪个文件,当前编辑的就是哪个文 件;
ctrl + ww 在分屏编辑文件时,让光标在不同文件间进行切换。(命令模 式下进行该操作)
4.替换模式
替换模式,即进行文本内容替换的模式。
替换模式可以在命令模式下通过shift + r切换得到。如果当前是除命令模式外的其他模式,可先按键Esc,再按键shift + r 进入替换模式。替换模式下,屏幕的左下角会有REPLACE的字样提示。
即
在替换模式下,键盘输入的内容会直接替代光标处的内容,如果光标处为空,则键盘输入的内容与插入模式下输入内容效果相同。
四、总结
vim编辑器不同于windows下的vs2019等编译器,vim仅仅只有编辑的功能,至于Linux下如何进行代码的编译和调试,则是由gcc/g++和gdb来完成。之后的博客会有详细介绍。(gcc和g++是C和C++的编译器)
使用vim时要熟悉各个模式下的切换方法和常见操作,要多操作才能更加熟练。
本文是自己对使用vim的一些总结,希望能帮到大家,也希望大家能愿意指出我的不足或错误,让我有机会及时纠正。
【Linux】编辑器vim详解相关推荐
- Linux文本编辑器---vim详解
零.前言 本篇主要介绍Linux下文本编辑器vim的使用方法,以及sudo命令的实现. 1.什么是vim 在windows系统下,我们使用VS来编写代码,编译代码,调试代码,运行代码等,甚至还可以进行 ...
- 【Linux练习生】Linux编辑器-vim使用(详解)
vim使用 1. vim的基本概念 2. vim的基本操作 2.vim正常模式命令集 4. vim末行模式命令集 5.vim多行操作 常用命令选项: – the End – vi/vim区别: vi/ ...
- Linux文本编译工具VIM详解
Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 1>.vi: 全称Visual editor,即文本编 ...
- Linux环境变量详解
Linux环境变量详解 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程. 环境变量分类 按照权限分类 系统级:系统级的环境变量是每个登录到系统的用户都要读取的系统变量 用户级:用户级的环境 ...
- init.d,rc.d详解 Linux运行时详解
Linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用. 对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物.没有config.sys ,没有 a ...
- Linux常用命令详解(两万字超长文)
Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...
- Linux操作系统(详解及配置操作)
Linux操作系统 重点:linux的安装 linux的常用指令 linux的网络配置 shell编程 难点:linux的磁盘分区 linux的shell编程 linux日志 1 linux基础篇 1 ...
- Linux文件关联详解 linux 修改默认文件关联打开程序
linux 修改默认文件关联打开程序 从总体上讲 /etc/gnome/defaults.list 保存了全局的打开方式 /.local/share/applications/mimeapps.lis ...
- Linux显示文件目录分屏显示,Linux分屏显示文件内容-linux more命令详解-嗨客网
Linux分屏显示文件内容(more)教程 在使用 more 命令时,最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 Linu ...
- Linux常用基本命令详解(一)
Linux常用基本命令详解(一) Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令 Linux常用基本命令详解(三) 1.帮助命令 1.1.man命令 man[命令或配置文件] ...
最新文章
- datagridview 点击列标题排序
- VTK:图表之DepthFirstSearchIterator
- Android中使用HttpClient实现HTTP通信效果
- MariaDB 脚本
- orcale可视化建立用户_建立动态可视化的新方法
- html5列表菜单特效,HTML5 SVG汉堡包菜单按钮分段动画特效
- 华为发布开发者召集令,等你来战!
- mysql 关闭in自动排序_为什么MySQL的in查询会自动排序
- 使用mysql命令还原student表_自用mysql自带命令实现数据库备份还原的方法
- 比Excel制图更强大,Python可视化工具Altair入门教程
- python 函数调用列表_python – 根据列表中的字符串调用函数
- python: 列表的方法
- dotcms open source java cms_开放源Java(JSP)CMS系统的推荐源代码
- 用计算机对人造卫星,人造卫星轨迹计算主要涉及计算机应用中的______
- SAP FI 2.定义科目组
- Linux驱动学习--HCI框架及源码分析
- VB 获取文件名后缀
- Javashop多用户商城系统源码 云表-无代码开发平台 框架源码
- 评测三款最流行的txt阅读器(windows适用)
- JS事件的绑定和解绑
热门文章
- OSGEarth局部高清地图
- 学生党蓝牙耳机,千元内性价比蓝牙耳机推荐
- ARM将购买和部署新的和升级的仪器
- 单服务器部署mongodb数据库三节点集群详细教程
- MQTT连接失败:Caused by: java.security.cert.CertificateException: No subject alternative names present
- C语言利用指针实现三个数大小排疼,c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出...
- maven打包时去除不需要的jar包策略
- 【温故知新】pytest框架执行用例并打印日志和报告
- 浏览器IE10之爱之初体验
- React基本知识点整理