vi/vim编辑器操作梳理
1. vi/vim编辑器详细使用讲解
1.1 vi/vim编辑器的3种模式

1.2 vi/vim编辑器操作说明
| 参数/命令/模式 | 说明 |
| ###普通模式 | |
| :set nu | 显示行号 |
| :set nonu | 不显示行号 |
| /PATTERN | 从当前光标所在处向文件尾部查找(n与命令同向查找下一个,N则相反) |
| ?PATTERN | 从当前光标所在处向文件首部查找(n与命令同向查找下一个,N则相反) |
| ###光标移动操作 | |
| 0 或 ^ | 跳到光标所在行行首 |
| $ | 跳到光标所在行行尾 |
| gg | 跳转至文件开头 |
| G,或shift+g | 跳转至文件尾部 |
| ngg (n是所在行的数字) | 跳转到指定行 |
| ###搜索关键字 | |
| /keyword | 使用/搜索,默认向下搜索,按n继续搜索下一个,反向按N向上搜索 |
| ###替换字符串(/可使用其他符合如@,#) | 注意事项:如果有分组引用,则须转义小括号 \(\) |
| :%s/A/B/g | 把文本中所有的A替换为B(%代表全局替换),/斜线为分隔符,可以用@或#代替 |
| :1,3s/A/B/g | 把第1-3行的A替换为B,没有%,就不是全局替换,仅仅将1-3行符合条件的替换 |
| :1,$s/A/B/g | 将第1行到结尾符合条件的内容进行替换 |
| ###删除 | |
| dd | 删除光标所在行单行 |
| ndd | 从光标处开始,往后删除n行,n是数字 |
| x | 小写x,往后删除字符 |
| X | 大写X,往前删除字符 |
| d1G | 删除当前行至第一行(往前) |
| dG | 删除当前行至最后一行(往后) |
| d0 | 删除当前光标文本至行首(单行) |
| d$ | 删除当前光标文本至行尾(单行) |
| ###剪切 | |
| dd ---> p | 使用dd删除(也是剪切),再使用p复制,默认复制到光标所在行的下一行 |
| ###撤销(回滚前一个执行的操作) | |
| u | 撤销删除或更改的操作,进行回滚 |
| Ctrl+r | 撤销之前的撤销 |
| ###复制 | |
| yy | 复制光标所在行 |
| nyy | 从光标所在行开始,往后复制n行,n是数字 |
| 5gg ---> 5yy | 跳到第5行,再往后复制5行 |
| 5gg ---> shift+g | 跳到第5行,再复制往后所有行 |
| ###粘贴 | |
| p |
小写p,粘贴到光标所在行的下一行(缓冲区存储的是整行); 粘贴到光标所在行的末尾(缓冲区存储的是一段内容) |
| 3p |
小写p,粘贴多次内容 |
| P |
大写P,粘贴到光标所在行的上一行(缓冲区存储的是整行); 粘贴到光标所在行的行首(缓冲区存储的是一段内容) |
| ###编辑模式操作 | |
| i | insert,进入插入模式,在光标所在处输入,进入编辑状态 |
| I | 大写I,在当前光标所在行行首输入,进入编辑状态 |
| a | append,在光标下一个字符插入,进入编辑状态 |
| A | 在当前光标所在行行尾追加输入内容,进入编辑状态 |
| o | 小写o,在光标下一行开插入(在当前光标所在行的下方打开一个新行) |
| O | 大写O,在光标上一行开插入(在当前光标所在行的上方打开一个新行) |
| C | 将光标到行尾内容进行删除,并进入编辑状态 |
| cc | 将整行内容进行删除并进入编辑状态 |
| Esc --键盘上Esc键 | 退出编辑模式 |
| ###关闭文件 | |
| :wq | 保存退出 |
| :x | 保存退出 |
| :q | 退出 |
| :q! | 强制退出,不保存更改 |
| :w /path | 将文件保存至其他路径 |
| ZZ | 大写2个ZZ,保存退出 |
| ###改变命令(了解,无需掌握) | |
| c | 修改(编辑模式--->输入模式) |
| ###可视化模式(了解) | |
| v | 按字符选定内容(经常结合d,c,y编辑命令) |
| V | 按行选定内容 |
| ###翻屏操作 | |
| Ctrl+f | 向文件尾部翻一屏 |
| Ctrl+b | 向文件首部翻一屏 |
| Ctrl+d | 向文件尾部翻半屏 |
| Ctrl+u | 向文件首部翻半屏 |
vi/vim编辑器操作梳理的更多相关文章
- 【Linux学习】Vi / Vim编辑器—编辑器工作模式、vi编辑操作
Vi / Vim编辑器-编辑器工作模式.vi编辑操作 推荐一个很好的学习指南:http://www.oschina.net/translate/learn-vim-progressively 一.编辑 ...
- vi/vim编辑器的基本操作
vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准备(下载gvim ...
- 【转】Linux上vi(vim)编辑器使用教程
Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...
- windows下vi/vim编辑器的基本操作
windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...
- linux vi/vim 编辑器学习总结
linux vi/vim 编辑器学习总结 很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统.项目部 ...
- vi/vim编辑器基本操作
一.vi/vim的三种模式 vi编辑器有三种模式:命令模式(command mode).插入模式(Insert mode).底行模式(last line mode). 就是你直接用命令(vi 文件名 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 怎么样退出vi/vim编辑器
怎么样退出vi/vim编辑器 先按 ESC 然后输入 w q :wq 就退出来了
- Linux随笔 - vi/vim 编辑器显示行号
显示行号 1. 打开vi 编辑器 2. 输入 :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入 :set nonumber 3. 回车 行号在每次打开 vi/v ...
随机推荐
- Linux删除文件 清除缓存
相信很多测试 经常会经历开发叫你清除缓存这种事. 那我们要怎么清呢? 一.首先,确认你要清除的缓存在哪个目录下,然后切换到该目录下,比如 我现在知道我的的缓存目录是在newerp这个目录下,则如图 二 ...
- SliverAppBar 介绍及使用
SliverAppBar控件可以实现页面头部区域展开.折叠的效果,类似于Android中的CollapsingToolbarLayout.先看下SliverAppBar实现的效果,效果图如下: Sli ...
- MySQL——DOS命令
翻开之前的笔记发现有这么一篇,于是整理了一下发出来加深记忆并分享交流,欢迎纠错,谢谢!!! 1.启动MySQL服务: net start mysql; 2.停止MySQL服务: net stop my ...
- (分块)Holes CodeForces - 13E
题意 n(n≤105)个洞排成一条直线,第ii个洞有力量值ai,当一个球掉进洞ii时就会被立刻弹到i+ai,直到超出n.进行m(m≤105)次操作: ·修改第i个洞的力量值ai. ·在洞xx上放一个球 ...
- 玩转Django2.0---Django笔记建站基础八(admin后台系统)
第八章 admin后台系统 admin后台系统也成为网站后台管理系统,主要用于对网站前台的信息进行管理,如文字.图片.影音和其他日常使用文件的发布.更新.删除等操作,也包括功能信息的统计和管理,如用户 ...
- BZOJ 2095 Bridges
题目传送门 分析: 首先就是二分 然后... 混合图欧拉回路是sm... 看了题解Orz 首先要回到原来的点的话,那么每个点入度和出度要相等... 这..和网络流进入点之后就出去不是一样的吗.. 又由 ...
- 使用Azure CLI创建Linux虚拟机
Azure提供了三种方式创建虚拟机,分别是Azure CLI.Azure PowerShell和Azure门户.本文介绍使用Azure CLI来创建Linux虚拟机. 使用Azure CLI创建Lin ...
- python3 密码字典匹配wifi密码,有界面
界面: 需要先安装一下pywifi模块 代码: # coding:utf-8 from tkinter import * from tkinter import ttk import pywifi f ...
- JS基础——ATM机终端程序编写(2.0)
在1.0版本上,利用数组进行用户的创建,通过调用数组下标,进行密码.余额的使用.新增了切换账户.修改密码的功能 以下为数组版代码. 创建模拟账户 个账户: let user = ["xiao ...
- FTP服务后门利用
开门见山 1. 扫描同网段的靶场机,发现PCS,192.168.31.137 2. 扫描靶场机服务信息和服务版本 3. 快速扫描靶场机全部信息 4. 发现开放ftp服务,并扫描此ftp软件版本是否存在 ...