Linux文本编辑器-vi/vim
vi是Linux命令行界面下的文字编辑器,vim是vi的增强版(Vi IMproved),完全兼容
可以理解成普通的txt文本与word文档之间的差距。
注:还有一款全屏编辑器是nano,可以了解下
【vim的三种模式】
普通模式,编辑模式,命令模式
1.普通模式
使用vim命令打开文件,只能使用上下左右键移动光标,并且操作复制,粘贴,删除等之类的工作
2.编辑模式
普通模式下不能对文件内容进行编辑,只有按下“i,I,o,O,a,A,r,R,s,S”,等字母,进入编辑模式之后才可以执行录入文字
编辑模式有一个插入的标记在屏幕的最下方
3.命令模式
在普通模式下,输入“:/ ?”时,光标会自动定位在那一行,此模式中可以执行保存,退出,搜索,替换,显示行号等相关操作
vim [OPTION]...FILE...
如果文件存在,则打开它,如果不存在,则打开一个新的文件,如果存盘则创建文件,不存盘则不创建文件
【vim打开文件进行快速定位】
+#:打开文件后,直接让光标处鱼第#行的行首
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配当的行的行首
vim + /etc/passwd
-b:二进制方式打开文件
-d:比较多个文件的差异
-m:只读打开文件
ex file 或 vim -e:直接进入ex模式
【模式转换】
普通模式 ----> 插入模式
i:insert,在光标所在处输入
I:在光标所在行的行首输入
a:在光标所在处的后一个字符输入
A:在光标所在行的行尾输入
o:在当前光标所在行的下一行新开一行 open
O:在当前光标所在行的上一行新开一行
字符间跳转:
h:左
j:下
k:上
l:右 #[hljk]:指定一次跳转多少的字符数
单词间跳转:
w:跳到下一个单词的词首
e:当前或下一个单词的词尾
b:当前或上一个单词的词首
#[web]:指定一次跳转多少个单词数
当前页跳转:
H:页首
M:页中
L:页底
翻屏:
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
行首行尾跳转:
^:调到行首非第一个非空白字符处
0:调到行首
$:跳转至行尾
行间移动:
#G:跳到第#行
G:最后一行 例如:1G或gg:第一行
字符编辑:
x:删除光标处的字符
#x:删除光标处起始的#个字符
xp:交换光标所在处及其后面字符的位置 原理是:先删除光标所在位置,然后使用p粘贴
~:转换大小写
替换命令:
r:替换个光标所在处的字符 7rv 光标后7为替换成v
R:切换成replace模式
删除命令:
d:删除命令,可结合光标跳转命令实现范围删除
d$:删除光标至行尾的字符
d^:删除光标至行首非空白字符处
d0:删除光标至行首
dw:删除光标当标至下一个单词的词首
de:删除光标至当前或下一个单词的词尾
db:删除光标至上一个单词的词首
dd:删除光标所在行
#dd:删除#光标后的#行
复制命令:
y:复制
y$:从光标所在处复制到行尾
y0:从光标所在处复制到行首
y^:从光标所在处复制到行首的非空白字符处
ye:从光标所在处复制至当前或下一个单词的词尾
yw:从光标所在处复制至下一个单词的词首
yb:从光标所在处复制至上一个单词的词首
yy:复制光标所在行
#yy:复制多行
粘贴命令:
p:粘贴,如果缓冲区为整行,则粘贴在光标所在行的下一行,否则,粘贴在光标所在处的后面
P:粘贴,如果缓冲区为整行,则粘贴在光标所在行的上一行,否则,粘贴在光标所在处的前面
可视化模式:
v 按字符选定
V 按航选定,经常结合编辑命令,d,c,y
撤销此前的编辑
u(undo)撤销此前的操作
#u 撤销指定次数的操作
撤销此前的撤销
vim中的末行模式:
按“:”进入末行模式
(1)地址定界
:start_pos,end_pos
# 具体第#行,例如2表示第2行
#,# 从左侧#表示行起始,到右侧#表示行结束
#,+# 从左侧#表示行起始,加上右侧#表示的行数
. 表示当前行
$ 表示最后一行
% 全文,相当于1,$
/part1/,/part2/
从第一次被part1模式匹配到的行开始,一直到第一次被part2匹配到的行结束
使用方式:
后跟一个编辑命令
d
y
w /PATH/TO/SOMEWHERE
:,20w /tmp/.txt
r filename:读取文件内容到当前文件中
:r /etc/fstab
q:退出
q!:强制退出
wq:保存并退出
wall 保存所有
x:保存并退出
ZZ:保存退出
ZQ:不保存退出
(2)查找
/PATTERN 从当前光标所在处尾部查找
?PATTERN 从当前光标所在处首部查找
n 与命令同方向
N 与命令反方向
(3)替换
s 在末行模式下完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
替换的内容可以使用反向引用\1,\2,可以使用&引用前面查找时查到的内容
修饰符号:
i 忽略大小写
g 全局替换,默认情况下,每一行只替换第一次出现
【定制vim的工作特性】
配置文件:永久有效
全局 :/etc/vimrc
个人:~/.vimrc 需要自己创建
末行:当前vim进程有效
(1)显示行号:
set nu 显示;
set nonu 取消显示;
(2)括号成对匹配:括号高亮
set sm:设置;
set nosm:取消;
(3)自动缩进:
set ai
set noai
(4)高亮搜索:
set hlsearch high light search
set nohlsearch nohls
(5)语法高亮:
syntax on
syntax off
(6)忽略字符的大小写:
set ic
set noic
(7)文本格式:
set fileformat=dos :启用windows格式;
set fileformat=unix:启用unix格式;
(8)设置文本宽度:
set textwidth=65 (vim only)
set wrapmargin=16
(9)设置tab键的缩进长度:
set tabstop=4
set softtabstop=4:设置一个退格键退回来的长度;
set shiftwidth=#:设置每一级缩进的长度;
set authindent:表示自动缩进;
set noautoindent 取消自动缩进,使用方法:在粘贴数据之前使用,然后粘贴文件。如阿云托管k8s集群需要的config文件
set paste 粘贴文本文件
(10)帮助信息:
:help option-list
:set or :set alal
Linux文本编辑器-vi/vim的更多相关文章
- 文本编辑器 vi/vim 的使用
文本编辑器 vi/vim 一.启动与退出 1. vim 2. vim 文件名(可以是存在的文件,也可以是不在的文件) 3.退出 :q 或者:x 在非“插入”模式二.vi/vim的工作模式 1.正常 ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第六集之补充:文本编辑器vi/vim】
一:vi/vim的基本使用流程,掌握这三个步骤就算是入门vi或者vim.接下来的学习都是对vim命令和使用技巧的掌握,这要求各位自己去记忆.因为很少使用到某些命令,自然我们经常忘记这些命令,所以一旦忘 ...
- Linux 文本编辑器vi命令
1.Vim Vim 是一个功能强大的全屏幕文本编辑器,是 Linux/UNIX 上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件. Vim 没有菜单,只有命令 2.Vim 工作模式 3.插入 ...
- linux文本编辑器教学
linux常见服务 一. 文本编辑器 vi vim是vi增强版 vim需要安装 sudo apt-get -y install vim 1 vim的三种工作模式 1 编辑模式 命令模式=>编辑模 ...
- Linux系列教程(十)——Linux文本编辑器vim
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
- Linux环境下vi/vim编辑器常用命令
使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
- 最优秀的5个Linux文本编辑器
from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ...
- Linux文本编辑器(九)
[教程主题]:Linux文本编辑器 [1]vi vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任 何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 由于对U ...
随机推荐
- Flutter: 图解 ListView 的多种绑定方式
小菜昨天刚学习了一下底部状态栏 BottomNavigationBar 的基本使用方法,今天学习一下 ListView 的基本用法. 小菜觉得 Flutter 中 ListView ...
- 基于goahead 的固件程序分析
# 前言 本文由 本人 首发于 先知安全技术社区: https://xz.aliyun.com/u/5274 最近在分析 dlink 的一个固件时遇到了用 goahead 开发的 web 服务.本文以 ...
- oracle 用户创建、修改、删除
创建用户: create user test identified by test; 修改密码: 1.alter user test identified by mima; 2.passw[ord] ...
- java基础(八) 深入解析常量池与装拆箱机制
引言 本文将介绍常量池 与 装箱拆箱机制,之所以将两者合在一起介绍,是因为网上不少文章在谈到常量池时,将包装类的缓存机制,java常量池,不加区别地混在一起讨论,更有甚者完全将这两者视为一个整体, ...
- 回归JavaScript基础(四)
主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...
- ASP.NET中使用UpdatePanel时用Response输出出现错误的解决方法
asp.net中执行到Response.write("xx");之类语句或Microsoft JScript 运行时错误: Sys.WebForms.PageRequestMana ...
- Oracle v$session/v$sql 表
在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESS ...
- 网罗收集10046的各种Case,方便trace信息的收集
每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题.因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation ...
- 封装CIImage实现实时渲染
封装CIImage实现实时渲染 CIImage属于CoreImage里面的东东,用来渲染图片的,为什么要封装它呢?其实很简单,封装好之后使用更加方便. 如果直接使用CIImage渲染图片,使用的流程如 ...
- mac 程序 Access-JSON-Data
mac 程序 Access-JSON-Data 说明 直接将JSON数据生成文件,便于调试. 效果图 源码 https://github.com/YouXianMing/Create-JSON-Mod ...