Linux-- 文件编辑器 vi/vim(1)
初识 vi/vim 文本编辑器
1.vi 和 vim 相同,都是文本编辑器,在 vi 模式下可以查看文本,编辑文本,是 Linux 最常用的命令,vi 模式下分为三部分,第一部分一般模式,在一般模式中可以进行搜索字符等按键操作,按下 i,o,a任意一个字符就可以进入编辑模式,按 ESC 回到一般模式,编辑模式下可以对文本内容进行编辑,按下 : ,/ ,?可以进入命令行模式,可以选择按 wq 保存退出等命令操作,详细内容如下。
vi 按键表
1.一般模式
光标的移动
|
按 键 |
意 义 |
|
h 或 ← |
光标向左移动一个字符,可跟数字组合,如10 ←或h 代表向左移动10个字符 |
|
j 或 ↓ |
光标向下移动一个字符,可跟数字组合 |
|
k 或 ↑ |
光标向上移动一个字符,可跟数字组合 |
|
i 或 → |
光标向右移动一个字符,可跟数字组合 |
|
[page up] 或 [ctrl]+b |
上一页 |
|
[page down] 或 [ctrl]+f |
下一页 |
|
[ctrl]+d |
向下移动半页 |
|
[ctrl]+u |
向上移动半页 |
|
+ |
光标移动到非空格的下一行 |
|
- |
光标移动到非空格的上一行 |
|
n+[space] |
输入数字后按下空格代表向右移动 n 个字符 |
|
0 或 [Home] |
光标移动到行首 |
|
$ 或 [End] |
光标移动到行尾 |
|
H |
光标移动到屏幕显示的第一行的第一个字符处 |
|
M |
光标移动到屏幕显示的中间行的第一个字符处 |
|
L |
光标移动到屏幕显示的最后一行的第一个字符处 |
|
G |
移动到文本的最后一行 |
|
n+G |
移到文本的第n行 |
|
gg |
移动到文本的第一行 |
|
n+[Enter] |
光标向下移动n 行 |
搜索操作
|
按 键 |
意 义 |
|
/字符串 |
向下搜索字符串 |
|
?字符串 |
向上搜索字符串 |
|
n |
向下查找符合搜索的字符 |
|
N |
反向查找符合搜索的字符 |
|
:n1,n2s/string1/string2/g |
在n1和n2之间搜索string1字符串,并将 string1替换为 string 2 |
|
:1,$s/string1/string2/g |
在第一行和最后一行搜索 string1字符串,并将 string1替换为 string 2 |
|
:1,$s/string1/string2/gc |
在第一行和最后一行搜索 string1字符串,并将 string1替换为 string 2,替换前需要客户确认( replace with string2 (y/n/a/q/l/^E/^Y)?) |
删除/复制/粘贴等操作
|
按 键 |
意 义 |
|
x 或 X |
x代表向后删除一个字符[del],X代表向前删除一个字符[backspace] |
|
nx |
向后连续删除n个字符 |
|
dd |
删除光标所在的一行 |
|
ndd |
删除光标向下的n行(包括光标所在的一行) |
|
d1G |
删除光标所在的一行到第一行的内容 |
|
dG |
删除光标所在的一行到最后一行的内容 |
|
d$ |
删除光标所在的字符到这一行的最后一个字符的内容 |
|
d0 |
删除这一行的第一个字符到光标所在字符的内容 |
|
yy |
复制光标所在的一行 |
|
nyy |
复制光标所在的一行到第n行的内容 |
|
y1G |
复制光标所在的一行到第一行的内容 |
|
yG |
复制光标所在的一行到最后一行的内容 |
|
y0 |
复制光标所在的字符到行首的字符 |
|
y$ |
复制光标所在的字符到行尾的字符 |
|
p |
将光标在的那一行内容复制粘贴到下一行 |
|
P |
将光标在的那一行内容复制粘贴到上一行 |
|
u |
复原操作,相当于撤回 |
|
. |
重复上一个操作 |
|
c |
重复删除多个数据,例如向下删除3行[10cj] |
|
[ctrl]+r |
重做上一个动作 |
|
J |
将光标所在的一行与下一行结合 |
2.编辑模式
|
按 键 |
意 义 |
|
i |
进入编辑模式 |
|
a |
进入编辑模式 |
|
o |
进入编辑模式 |
|
r |
进入编辑模式 |
|
[ESB] |
退出编辑模式,进入一般模式 |
3.命令行模式
|
按 键 |
意 义 |
|
:w |
将编辑的数据写入磁盘 |
|
:w! |
强行写入 |
|
:q |
离开 |
|
:q! |
不保存强制离开 |
|
:wq |
保存并退出 |
|
ZZ |
如果有改动则保存退出,如果没有改动就直接退出 |
|
:w[filename] |
将编辑的内容另存为 filename 文件 |
|
:r[filename] |
将filename的内容加载进光标后 |
|
:n1,n2 w[filwname] |
将n1到n2的内容保存为 filename |
|
:!command |
暂时回到命令模式,执行 command 命令 |
|
:set nu |
设置行号 |
|
:set nonu |
取消行号 |
Linux-- 文件编辑器 vi/vim(2)内容见:
https://www.cnblogs.com/holmes-cat/p/10408735.html
Linux-- 文件编辑器 vi/vim(1)的更多相关文章
- Linux文本编辑器-vi/vim
vi是Linux命令行界面下的文字编辑器,vim是vi的增强版(Vi IMproved),完全兼容 可以理解成普通的txt文本与word文档之间的差距. 注:还有一款全屏编辑器是nano,可以了解下 ...
- Linux命令之vi/vim(一)
vi仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但不具备windows下word的排版功能.Vim是Vi improved的缩写,是vi的改进版. vi和vim的区别: 多级撤销.在vi中按u ...
- Linux文件编辑工具——VIM
Linux文件编辑工具--VIM 1.VIM基本概述 1.1 什么是vim vi 和 vim 是 Linux 下的一个文本编辑工具.(可以理解为 windows 的记事本,或 Notepad++ 1. ...
- 文本编辑器 vi/vim 的使用
文本编辑器 vi/vim 一.启动与退出 1. vim 2. vim 文件名(可以是存在的文件,也可以是不在的文件) 3.退出 :q 或者:x 在非“插入”模式二.vi/vim的工作模式 1.正常 ...
- Linux-- 文件编辑器 vi/vim(2)
多文件编辑 vi 可以用来打开多个文件,如下: 进入编辑界面以后,输入 :n 可以切换到下一个文本,:N 可以切换到上一个文本,:files 列出目前这个 vi 打开的所有文件,举例如下: 切换到下一 ...
- Linux环境下vi/vim编辑器常用命令
使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第六集之补充:文本编辑器vi/vim】
一:vi/vim的基本使用流程,掌握这三个步骤就算是入门vi或者vim.接下来的学习都是对vim命令和使用技巧的掌握,这要求各位自己去记忆.因为很少使用到某些命令,自然我们经常忘记这些命令,所以一旦忘 ...
- 【Linux学习】Vi / Vim编辑器—编辑器工作模式、vi编辑操作
Vi / Vim编辑器-编辑器工作模式.vi编辑操作 推荐一个很好的学习指南:http://www.oschina.net/translate/learn-vim-progressively 一.编辑 ...
- 文件编辑器 vi
1.关于文本编辑器: 文本编辑器有很多,比如图形模式的gedit.kwrite.OpenOffice ... ... ,文本模式下的编辑器有vi.vim(vi的增强版本)和nano ... ... v ...
随机推荐
- 关于this的全面解析(call,apply,new)
我们在写代码的时候,时常会被this弄的傻傻分不清楚,看源码的时候也经常被call啊apply啊弄的头皮发麻.this到底是什么?本文主要根据书上和实际应用做了一些归纳.一般情况下this有4种绑定规 ...
- 转:在使用angularjs过程,ng-repeat中track by的作用
转载:链接 <div ng-repeat="links in slides"> <div ng-repeat="link in links track ...
- Swiper轮播图
今天咱们来说一下.Swiper轮播图. 超级简单的: 翠花,上代码: <!DOCTYPE html> <html lang="en"> < ...
- 在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
下面的代码我调试了将近一个星期,你能够看出什么地方出了问题吗?线程函数: DWORD WINAPI ThreadProc( while(!bTerminate) { // 从 ...
- 安卓app开发-01-开发工具及环境配置
安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.andro ...
- JS计算距当前时间的时间差
/** * JS获取距当前时间差 * * @param int time JS毫秒时间戳 * */ function get_time_diff(time) { var diff = ''; var ...
- 使用Netty3或Netty4发布Http协议服务
现在是2018年1月11日18:12分,已经是下班时间了,小Alan今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用 ...
- maven(十)-继承
继承 如果项目划分了多个模块,都需要依赖相似的jar包,只需要创建一个父模块,在它的pom.xml文件中配置依赖jar包.功能模块只需要继承父模块,就可以自动得到其依赖jar包,而不需要在每个模 ...
- ZOJ Problem Set – 2321 Filling Out the Team
Time Limit: 2 Seconds Memory Limit: 65536 KB Over the years, the people of the great city of Pi ...
- 快速设置UITableView不同section对应于不同种类的cell
快速设置UITableView不同section对应于不同种类的cell 本文主要是为了写明如何在UITableView中,一个section对应于一种类型的cell,写起来不凌乱. 在不封装任何类的 ...