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 ...
随机推荐
- Android sync adapter初体验之为什么官方文档上的代码不能work
回答:因为其实可以work sync adapter就是google推出的一个同步框架,把各种同步操作放在一起智能管理比较省电之类的.对我而言最具体的好处反正就是,不用自己写代码了,用框架就可以了.目 ...
- PHP获取用户的真实IP地址
本文出至:新太潮流网络博客 PHP获取用户的真实IP地址,非代理IP function getClientIP(){ global $ip; if(getenv("HTTP_CLIENT_I ...
- python基础_类型_str
#python不用考虑变量,可随时变换,自动分配内存,比如a = 'jjj'后a = 123是可以的 #str 文本 字符串 #常用函数 a = ' abcefg \n' a.strip() #去掉前 ...
- [UI] 精美UI界面欣赏[12]
精美UI界面欣赏[12]
- Linux grep/egrep命令详解
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. grep的规则表达式( ...
- docker及服务器遇到的坑
目录 DNS不可用 修改docker查找源 容器保持固定ip 查看docker连接 容器间通信 容器拷贝数据 php连接docker mysql 8.0出错authentication method ...
- 加速安装 Sharepoint 2013 SP1
第一次安装把人吓了一跳,居然花了5个半小时.想想有一大堆服务器要升级,不得不想想有什么加速的办法. 试了好几种方法,以下的办法最为简单 1:停止 IIS ADMIN,WWW 服务 2:停止所有 sha ...
- Alpha 冲刺报告(7/10)
Alpha 冲刺报告(7/10) 队名:洛基小队 峻雄(组长) 已完成:参考已有资源设计角色属性 明日计划:完善并编码 剩余任务:角色的属性脚本 困难:编码进展缓慢 -------------- 非易 ...
- Service Mesh服务网格之Linkerd架构
今天详细介绍一下Linkerd的架构. 控制平面 Linkerd控制平面是一组在专用Kubernetes命名空间中运行的服务(在Linked默认情况下).这些服务完成各种事情——聚合遥测数据.提供面向 ...
- 起床困难综合症 NOI_2014_D1T1
这道题的正解其实没什么好说的,反而是部分分设计非常巧妙. 之所以要单开一篇是因为当时机房的部分同学刚学位运算,我拿这个题去讲想毒瘤大家一下,于是做了一个挺好看的课件. ppt -> pdf -& ...