vi的常用操作
进入vi
[root@hadoop-master test]# vi vi_test.txt
使用如上命令就可以进入vi_test.txt的内容页面
#!/usr/bin/env bash
echo "服务器开始部署服务"
projectname="demo"
#打开文件所属的目录,不然远程执行会找不到当前目录
cd /usr/local/test
#新的jar包会当成参数传过来
newJar=$1
echo "新的jar为:$newJar"
#如果新的jar包为空则退出
if [ -z "$newJar" ]; then
echo "新的jar不能为空"
exit 0
fi
命令模式和Insert模式切换
在打开vi命令后默认进入命令模式,按字母[i]或者[Insert]键就可以进入编辑模式
编辑模式下面会有个INSERT
标志,在编辑模式就可以修改文件内容,再按[Esc]就会进入命令模式。
保存和退出
在命令模式下,按[:]冒号进入[Last line mode]
保存::w
(输入命令后按[Enter]回车键执行命令)
退出::q
保存并退出::wq
保存并强制退出::wq!
命令模式(重点)
进入Insert模式
按[i]进入插入模式,光标是从当前位置开始的
按[a]进入插入模式,光标是从当前位置的下一个字符开始的
按[o]进入插入模式,光标是从当前位置的下面重新插入一行,并且光标从行首位置开始
移动光标
向左:⬅、[h]
向右:➡、[l]
向下:⬇ 、[j]
向上:⬆ 、[k]
按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。
按数字「0」:移到段落的的开头。
按「G」:移动到文章的最后。
按「$」:移动到光标所在行的"行尾"。
按「^」:移动到光标所在行的"行首"
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l。
删除文字
「x」 每按一次,删除光标所在位置的"后面"一个字符。
「#x」 例如,「6x」表示删除光标所在位置的"后面"6个字符。
「X」 大写的X,每按一次,删除光标所在位置的"前面"一个字符。
「#X」 例如,「20X」表示删除光标所在位置的"前面"20个字符。
「dd」 删除光标所在行。
「#dd」 从光标所在行开始删除#行
复制
「yw」 将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」 复制#个字到缓冲区
「yy」 复制光标所在行到缓冲区。
「#yy」 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」 将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
查找
/pattern 从光标开始处向文件尾搜索pattern
?pattern 从光标开始处向文件首搜索pattern
字符替换
「r」 替换光标所在处的字符。
「R」 替换光标所到之处的字符,直到按下「ESC」键为止。
字符串替换
:1,$s/oldstr/newstr/g 在全文范围用newstr替换oldstr
:n,ms/oldstr/newstr/g 在第n行到第m行内用newstr替换oldstr
显示行号
[:set number] 或者 [:set nu] 显示行号
[:set nonumber] 或者 [:set noun] 不显示行号
如何快速清空文件内容
方法一:
echo "" > fileName
方法二:
首先vi打开文件(命令模式):
gg
dG
gg命令是回到文件首部,dG(注意G是大写)是删除从光标开始到文件尾内容。
方法三(不如方法二):
首先vi打开文件(命令模式)
:1
10000dd
:1命令是回到文件首部,10000dd是删除从光标开始10000行内容。
参考:
vi命令详解:https://www.cnblogs.com/ovliverlin/articles/1162430.html
vi命令汇总:https://www.cnblogs.com/fwl8888/p/9416375.html