【Linux学习三】VI/VIM全屏文本编辑器

环境
  虚拟机:VMware 10
  Linux版本:CentOS-6.5-x86_64
  客户端:Xshell4
  FTP:Xftp4

一、打开关闭文件
打开文件:
vim /path/to/somefile
vim +# :打开文件,并定位于第#行
vim +:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

关闭文件
末行模式:
:q 退出 没有动过文件
:wq 或 :x 保存并退出 动过了,不后悔
:q! 不保存并退出 动过了,后悔了
:w 保存
:w! 强行保存
ZZ 保存并退出 不需要冒号,编辑模式

二、模式
编辑模式:按键具有编辑文本功能:默认打开进入编辑模式
输入模式:按键本身意义
末行模式:接受用户命令输入

模式切换:
编辑-->输入:
i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;

o: 在当前光标所在行的下方,新建一行,并转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;

I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式

输入-->编辑:ESC
编辑-->末行::
末行-->编辑:ESC, ESC (两个ESC)

三、编辑模式
移动光标
字符:
h: 左;j: 下;k: 上;l: 右
单词
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
行内
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾
行间
G:文章末尾
3G:第3行
gg:文章开头
翻屏
ctrl+f 往前翻 ctrl+b 往后翻

删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符
删除命令
dw 删除一个单词
dd 剪切一行

复制粘贴&剪切
yw 复制一个单词
yy 复制一行
p 向下粘贴
P(大写P) 向上粘贴

撤销&重做
u 撤销
ctrl+r 重做撤销的操作
. 重复上一步的操作

四、末行模式
:set nu 显示行号
:set nonu 不显示行号
:set readonly 只读
:set noreadonly 取消只读


查找
:/pattern 跳转到匹配到pattern所在的行首
/pattern 跳转到匹配pattern所在的词首
n 向下查找下一个,N 向上查找下一个

执行命令 不退编辑器
:!执行命令
比如::!ls -l

s查找并替换
:s/str1/str2/gi str1为查找的字符串 str2为替换的字符串
/,@,#:临近s命令的第一个字符为边界字符
g:一行内全部替换,不加只替换该行第一个
i:忽略大小写
范围
n:行号
.:当前光标行
+n:偏移n行
$:末尾行,$-3
%:全文
举例:
:.,$s/after/before/ 当前行至末尾每行第一个将after替换为before
:%s/before/after/ 将全文每一行第一个before替换为after
:%s#after#before#g 将全文after替换为before

另外
:3,5y 复制第3至5行
:.,$d 将当前行至末尾删除
:1,$-2d 将倒数第二行至第一行删除
dG 全文删除

原文地址:https://www.cnblogs.com/cac2020/p/10152237.html