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 +11 /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
:1,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:表示自动缩进;
(10)帮助信息:
:help option-list
:set or :set alal
转载于:https://www.cnblogs.com/flashfish/p/10718708.html
Linux文本编辑器-vi/vim相关推荐
- LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim
LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim 几个月前, Linux 基金会发起了 LFCS (Linux 基金会认证系统管理员Linux Foundation Certified ...
- linux下编辑文件实验,Linux上最常用的文本编辑器vi/vim使用教程
vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是"visual interfa ...
- CentOS6.4之文本编辑器Vi/Vim
Vim/Vi 简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件. Vim/Vi 没有菜单,只有命令. 插入命令 定位命 ...
- 如何安装和使用纯文本编辑器 vi/vim
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是系列教程的第二讲,在这个部分中,我们会介绍 vi/vim 基本的文件编辑操作,帮助读者理解编辑器中的三个模式,这是 ...
- 夺命雷公狗---linux NO:18 linux文本编辑器vi的使用
因为目前在市面上大部份的linux发行版本中他们都自带了 vi 编辑器,所以我们必须要知道是如何使用的... 当然其他的编辑器还是有很多的,但是有某些大牛曾经说过 vi 是世界上最快的编辑器.. ...
- Linux下编辑器vi/vim的使用介绍
vi编辑器是所有Unix及Linux系统下标准的编辑器.对Unix及Linux系统的任何版本,vi编辑器是完全相同的. 基本上vi可以分为三种状态,分别是命令模式(commandmode).插入模式( ...
- linux文本编辑器vi实验心得,linux中vi编辑器的练习心得
1. 用vi编写一个文档test.txt,将其存放在用户在用户主目录下,内容如下: Plagiarism is breach of Integrity.It is a form of cheating ...
- linux系统中vi/vim文本编辑器的使用简介
linux系统中vi/vim文本编辑器的使用简介 1. vi/vim简介 vi/vim 是linux系统中最基本的编辑器,类似于windows系统中的记事本,几乎所有的linux开发版本都内置了v ...
- Linux文本编辑器——vim
Linux文本编辑器 ed pico emacs nano gVim vim vi vim 是文本编辑器 不是文字处理工具(office liboffice wps) 你的 ...
- Linux文本编辑器-vim
Linux文本编辑器-vim Vim简介 Vim是从vi发展出来的一个文本编辑器.其代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢 ...
最新文章
- linux判断是否能上网_母亲提醒女儿:判断一个男人是否值得嫁,从这两点就能轻易看出...
- nginx rewrite重写与防盗链配置
- Appium自动化测试-配置待测Android应用
- 青少年蓝桥杯_2020_steam考试_中级组_第四题
- 【报错笔记】使用MultipartFile 出现异常:java.lang.ClassNotFoundException: org.apache.commons.fileupload...
- Java学习之约瑟夫环的两中处理方法
- java是解释型编程语言_程序设计语言可以分为两类:编译型语言和解释型语言...
- 手机定位App从想法到上线运营(1)--介绍
- python装饰器传递参数_Python装饰器高级版—Python类内定义装饰器并传递self参数...
- 1200万的天价离职赔偿!
- 【Flink】Flink报错OutofMemoryError : Direct buffer memory
- 导入从postman导出的json接口文件,并设置全局变量
- android手机设置固定dns,安卓手机修改WiFi DNS设置的方法
- 计算机应用二进制原因,计算机中采用二进制的主要原因是什么
- 浏览器自动化操作(Web Browser Automation)(一)
- 定制任务栏托盘的dll
- 电路matlab搭建,MATLAB电路仿真搭建教程
- Linux下Mysql 5.7的安装及远程连接配置
- 默哀这一刻 我们的心紧紧相连
- Python pandas库|任凭弱水三千,我只取一瓢饮(3)