vi 编辑器笔记
摘要:
vi从安装到使用
vi从菜鸟到高手
0、 vim - Vi IMproved, a programmers text editor
分为 VI和VIM,现在流行的发行版里面VI=VIM
是一个文本编辑器(所有没有图片的文本,纯文本内容,无视后缀名)
不能编辑二进制文件
不能编辑目录
Debian系安装vim的时候:
apt install vim
1、目前整个地球上只有一个地方不默认安装vi
Docker 镜像Images 的容器
2、查看VI版本
在命令行:"vi --version"
在文本里面:":version"
3、使用步骤
1.vi filename
vi 后面加文件名 //若存在,则直接打开编辑,若 不存在,则新建一个文件
2.进入插入模式
键入 "i" 键,建议按i键
也可键入 "s"键,但是s键是删除当前光标的字符后,再进入插入模式
3. 插入数据
4. 敲 "Esc"键,或者键入组合键 "^[" (Ctrl-[)进入命令模式
小诀窍:按组合键的时候,一定要先按前面的辅助键不放,然后再按功能键
5. 输入 ":" ,然后键入 "x/wq/w/q!/q/qa/qa!"
命令 |
说明 |
状态 |
x |
保存并退出 |
|
wq |
保存并退出 |
|
w |
保存 |
written |
q! |
强制退出并不保存 |
|
qa! |
等价于q! |
|
q |
退出 |
|
qa |
等价于q |
快捷退出:
^w q // Ctrl+w q
等价于 :q
4、状态行
当前编辑窗口的最后一行被称为状态行
用于显示文件名
显示行、列
显示字符的个数
5、三种模式
插入模式
i |
进入插入模式 |
命令模式
^[ 或 Esc |
进入命令模式 |
末行模式
: |
进入末行模式 |
插入模式
i |
在当前位置插入数据 |
a |
光标位置后面插入数据 |
A |
本行行尾插入数据 |
o |
光标所在行的下一行插入数据 |
O |
光标所在行的上一行插入数据 |
s |
删除光标所在位置字符并在光标后插入数据 |
S |
删除光标所在行并在行首插入数据 |
cw |
删除当前光标所在单词并进入插入模式 |
6、在文件中移动光标
上下左右
h |
← |
l |
→ |
j |
↓ |
k |
↑ |
行首行尾
^ |
行首,非空字符位置,不包含空格 |
0 |
行首,空字符处,包含空格 |
$ |
行尾,空字符处,包含空格 |
g_ |
行尾,非空字符位置,不包含空格 |
文首文尾
gg |
文首 |
G(shift+g) |
文末 |
屏幕头部中间底部
H(shift+h) |
顶行 |
M(shift+m) |
中间行 |
L(shift+l) |
底行 |
翻屏
^f |
往下翻一屏 |
^b |
忘上翻一屏 |
撤销
u |
撤销一次操作 |
1 change; before #19 22 seconds ago |
^r |
反撤销一次操作 |
1 change; after #19 33 seconds ago |
删除
x |
删除光标所在处的一个字符 |
dw |
删除光标所在处的一个单词 |
D(shift+d) |
删除光标所在处后面所有的字符 |
dd |
删除当前行 |
Ndd |
删除N行 |
dw |
删除一个单词 |
复制粘贴
yy |
复制一行 |
p |
粘贴 |
v-w-y |
复制一个单词 |
v-y |
复制一个字符 |
7、查找一个字符串
键入 "/" 进入查找模式,然后在后面键入需要查找的字符串
n |
跳到下一个字符串 |
N |
跳到上一个字符串 |
8、替换
:s/old/new |
在一行内将第一个old替换为new |
:s/old/new/g |
在一行内将所有old替换为new |
:s/old/new/gc |
在一行内将所有old替换为new时每个都确认一下 |
:%s/old/new/g |
在文件内将所有old替换为new |
:%s/old/new/gc |
在文件内将所有old替换为new时每个都确认一下 |
小诀窍:在":"模式的时,键入 "^p/^n"或"↑/↓"选择已经执行过的命令
9、简单设置
在 ":"模式使用
行号 |
set nu(number) set nonu |
只读 |
set readonly |
缩进 |
set paste |
10、使用分级
等级 |
生命周期 |
要求 |
备注 |
第一级 |
能吃饭 |
安装 启动 看文档 知道进入之后的常用操作 上下左右 删除 复制 粘贴 插入 退出 |
|
第二级 |
有肉吃 |
各种插入你都会 移动光标满天飞 复制粘贴擒拿手 取消操作你不行 出入自由红牌楼 |
|
第三级 |
吃香喝辣 |
更好 各种重复 更强 各种跳 更快 到处飞 |
|
第四级 |
有人买单 |
成神 |
11、扩展
1.自动提示
^p |
调出自动提示窗口,向上一行一行操作 |
^n |
调出自动提示窗口,向下一行一行操作 |
^m |
确认 |
2.块操作
^v |
进入块操作 |
使用块操作在所有行前面加上 ##
^v
-> shift-i
-> ##
-> ^[
3.可视化选择
v |
进入可视化选择 |
V |
选择一行 |
4.缩进
< |
左缩进 |
> |
右缩进 |
5.分屏
^w s / :sp |
分横屏 |
^w v / :vs |
分竖屏 |
^w q |
退出 |
^w hjkl |
屏之间切换 |
6.创建新文件
通过vi的命令模式,在当前打开的文件里面,使用":"命令之后,
键入 :new file_name 然后即可在当前窗口新创建一个分屏的file_name文件窗口
此时你可以通过 ^w jklm进行上下切换,也可以自由地在多个文件中进行复制粘贴
7.其它高级小诀窍
1、对没有权限的文件修改的保存(使用": w !sudo tee %" ):
your@your:/etc/apt$ vi 1111
插入数据之后,键入命令模式i(":")
操作:
": w !sudo tee %"
-> 按 "O" 或 "L" 均可
:r !uname -a // 插入执行命令之后显示的内容到本文本
:w !sudo tee %
//提权并保存编辑好来的文档
执行过程:
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
W13: Warning: File "11111" has been created after editing started
[O]K, (L)oad File:
:w !sudo tee %
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
W13: Warning: File "11111" has been created after editing started
Press ENTER or type command to continue
your@your:/etc/apt$ cat 11111
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
your@your:/etc/apt$
2、锁屏模式编辑vi
^s |
锁屏,终止屏幕终端回显 |
^q |
恢复正常模式 |
注意:如果键盘熟悉度不高,也就是说打字速度低于150,或者错误率高于1%,建议不要触碰此等高度危险操作,不然后果自负
3、其它补充:
1、vi 配置文件和搜索模式时的高亮显示小结:
配置文件:
your@your:~$ cd
your@your:~$ ll .vimrc
-rw-rw-r-- 1 your your 31 Aug 7 04:13 .vimrc
.file_name |
"." 在linux里面代表隐藏文件 |
通过 ls -a 可以查看隐藏文件
-a, --all
do not ignore entries starting with .
更改vi显示,可以有两种模式:
临时 |
在文件内 |
永久 |
在.vimrc配置文件内 |
键入符合vi的语法
搜索模式的高亮显示:
永久:
1、vi .vimrc
2、set hlsearch
临时:
1、vi file_name
2、: set hlsearch
永久:
1、vi .vimrc
2、删除 set hlsearch 或者注释
说明:.vimrc的配置文件里面," 双引号代表注释
一个语法高亮和开启行号显示、搜索高亮显示的demo:
2、vi搜索模式前后说明:
/ |
向后搜索 |
n:下一个 N:上一个 |
? |
向前搜索 |
n:上一个 N:下一个 |
向前 <----"N"---- "?"--"n"--- souce ----"N"---"/" -----"n"---> 向后
3、在vi、mysql中执行linux命令:
环境 |
方法 |
说明 |
vi |
:! linux_command |
新创建有窗口执行命令 |
mysql |
\! linux_command 或 system linux_command |
在当前mysql交互界面执行命令 注意:\! 与命令之间有空格,否则会出现: mysql> \!pwd ERROR: Usage: \! shell-command mysql> \! pwd; /home/huhua mysql> |
system (\!) Execute a system shell command.
4、高级功能:使用SSH服务登陆远程主机:
mysql |
system ssh core@192.168.28.144 |
vi |
! ssh core@192.168.28.144 |
5、vi 插入":"模式执行命令的输出到vi当前文本里面
:r !linux_command
包括ping都可以导入到文本里面,只是ping的输出不明文显示
vi 编辑器笔记的更多相关文章
- Linux的vi编辑器笔记
vi编辑器,全称是visual interface,可以执行输出.删除.查找.替换等众多的文本操作. vi并不是一个排版程序,不可以对字体.格式.段落等其他的属性进行编排. vi是全屏文本编辑程序,没 ...
- Linux学习笔记(四) vi编辑器
一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...
- VI编辑器学习笔记
VIM的使用 VI是Linux系统中的一种编辑器,它的使用方法和界面与Unix平台十分相似,掌握了VIM的特殊,你可以感觉到它强大的功能与高效.Vim 相对来说较小,无论你使用任何Linux系统,你总 ...
- 1月4日笔记 (vi编辑器)更新...
vi编辑器,全称是visual interface,可以执行输出.删除.查找.替换等众多的文本操作. vi并不是一个排版程序,不可以对字体.格式.段落等其他的属性进行编排. vi是全屏文本编辑程序 ...
- 1月4日笔记 vi编辑器
Penn vi编辑器,全称是visual interface,可以执行输出.删除.查找.替换等众多的文本操作. vi并不是一个排版程序,不可以对字体.格式.段落等其他的属性进行编排. vi是全 ...
- Git笔记之初识vi编辑器
1.vi编辑器 如同Windows下的记事本,vi编辑器是Linux下的标配,通过它我们可以创建.编辑文件.它是一个随系统一起安装的文本编辑软件. vi编辑器提供了3种模式,分别是命令模式.插入模式. ...
- Unix\Linux | 总结笔记 | vi编辑器
0 目录 新建文件夹 常用的命令 三种模式及切换 vi编辑器的启动选项及后续相关操作 其他--替换文本 其他--写入另一个文件 1 新建文件夹 vi [目录名/文件 ...
- 韦东山ARM裸机笔记(2)--vi编辑器
VI编辑器(Visual Interface--可视化接口) 一.Linux下的一个文本编辑器,所具备的基本功能: 打开.新建.保存文件 光标移动 文本编辑 (多行间 | 多列间)复制.粘贴.删除 查 ...
- Linux 学习笔记 2 Centos 安装与网络的配置以及VI编辑器的使用
前言 当然,还是觉得Centos 在众多的Linux 发行版中,还是很有地位的,好多的服务器大多沿用的都是一代的Centos 因为它开源(这是废话)而且稳定,这才是服务器沿用的最重要的一项指标. 镜像 ...
随机推荐
- Struts2标签:checkboxlist
参考自博文:http://www.blogjava.net/koradji/articles/307399.html 语法: <s:checkboxlist name="" ...
- Spring @RequestParam乱码问题
在网上找了很多资料才找到解决的方法,通过URL传递命名参数,后台接收的却是乱码解决方法如下: 方法一:将接收的参数重新编码 @RequestMapping(value="/handle&qu ...
- jmeter通过BeanShell 脚本,实现对http请求参数的加密
jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...
- python 作用域(LEGB)
def fa(a): b = 200 c = 888 def fb(b): print(b) print(a) print(c) print(sum) return fb c = 2 sum = 10 ...
- ArcGIS连带文字注记导出为CAD格式
可以使用ArcGIS的"Export To CAD"工具将点.线.面等要素直接导出为CAD格式.如果要连带将ArcGIS中的文字标注导出为CAD格式要稍麻烦一点,下面是一个例子. ...
- JAVA实现上传文件到服务器、删除服务器文件
使用的jar包: <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</art ...
- 两句话动态修改table数据并提交到后台
//为所有的input 添加click事件,我将对象的id放入到name属性中,行数放入到alt属性中 $("input").click(function(obj){ //获得当前 ...
- 再起航,我的学习笔记之JavaScript设计模式26(解释器模式)
解释器模式 概念介绍 解释器模式(Interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 获取元素在页面中的路径 我们都知道获取一个 ...
- 第4章 同步控制 Synchronization ---哲学家进餐问题(The Dining Philosophers)
哲学家进餐问题是这样子的:好几位哲学家围绕着餐桌坐,每一位哲学家要么思考,要么等待,要么就吃饭.为了吃饭,哲学家必须拿起两支筷子(分放于左右两端).不幸的是,筷子的数量和哲学家相等,所以每支筷子必须由 ...
- Paint the Grid Again ZOJ - 3780 拓扑
Paint the Grid Again Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu [ ...