想想无意中闯入Linux世界已经两年整了,是时候提升下操作的逼格了。简单介绍下Linux中的vi命令,可以像在操作Windows中的操作文本一样舒服。
vi的三种模式
- 指(命)令行模式(编辑模式)
- 文本输入模式
末行模式
三种模式的切换
指令行模式(Command Mode) 下输入 a、i、o进入文本输入模式(Input Mode)
文本输入模式(Input Mode) 下按ESC进入指令行模式(Command Mode)
指令模式(Command Mode)下输入:进入末行模式(Last line Mode)
末行模式(Last line Mode)下指令错误则返回指令模式(Command Mode)
任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式
打开文件
vim /path/to/somefile 例子:vi profile
vim +# :打开文件,并定位于第#行 例子:vi +13 profile
vim +:打开文件,定位至最后一行 例子:vi +: profile
vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
例子:vi +/change profile 会定位到含有”change”的字符串一行的开头
关闭文件
末行模式:
:q 退出 没有动过文件
:wq 保存并退出 动过了,不后悔
:q! 不保存并退出 动过了,后悔了
:w 保存
:w! 强行保存
:wq --> :x
强烈推荐。福音
ZZ: 保存并退出 不需要冒号,编辑模式
编辑模式进入输入模式各个参数 解释
i: 在当前光标所在字符的前面,转为输入模式;--常用
a: 在当前光标所在字符的后面,转为输入模式;
o(欧): 在当前光标所在行的下方,新建一行,并转为输入模式;---常用
O(零):在当前光标所在行的上方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式;--不用
A:在当前光标所在行的行尾,转换为输入模式;--不用
编辑模式下可用操作 –重点
1、移动光标
字符 --(鸡肋,没卵用)
h: 左;j: 下;k: 上;l: 右
单词 --(鸡肋,没卵用)
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
行内
0: 绝对行首
$: 绝对行尾
行间
G:跳到文章末尾
3G:从光标开始往下跳三行
gg:跳到文章开头
翻屏
ctrl+f 向下翻屏
ctrl+b 向上翻屏
2、删除和剪切
dd
删除或剪切一行
ndd
删除或剪切以当前行开始的n行(例子:3dd,剪切三行)
3、复制
用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。
这样做:
1. 将光标移动到要复制的文本开始的地方,按v进入可视模式。
2. 将光标移动到要复制的文本的结束的地方,按y复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式。
3. 我移动光标到文本结束的地方,按p粘贴。
4、撤销&重做
u 撤销
ctrl+r 重做 (撤销的多了用这个在返回来)
5、末行模式
set nu number --显示行数
set nonu nonumber --不知道干嘛
set readonly --不知道干嘛
查找字符
/after --查找after字符
n,N --向上翻,向下翻