文本编辑器
vi
vim (vi improved)
Emacs 适合小型机、工作站、大型机
vim
模式化编辑器:
1. 插入模式(输入模式)
2.命令模式(编辑模式)
3.末行模式
vim 如何打开文件
vim FILE
vim +n FILE 进入直接定位到第n行行首
vim +/PATTERN file 直接定位到字符第一次出现的位置
vim 如何关闭
:wq 保存退出
:q!不保存退出
:q 无修改退出
:w!强制保存
切换模式
2-->1
a 定位到光标所在字符后面
i 定位到光标所在字符前面
o 定位在光标下行,并打开空白行
A 定位在光标行尾
I 定位在光标行首
O 定位在光标所在行上行,并打开空白行
1-->2
Esc最好两次
2-->3
输入‘:’进入末行模式
3-->2
ESC 最好两次
光标移动:
h左、j下、k上、l右
移动跳过单词
w 快速后一个单词的词首
e 先到自己的词尾或下一个单词的词尾
b 先到自己的词首或到上一个单词的词首
行首:
^ 行首第一个非空白
0 绝对行首
: 行尾
$ 绝对行尾
行间:
G跳到文件尾部
nG跳到第n行
:n 快速跳转第n行
翻屏(页)
Ctrl+f 往尾部翻一屏
Ctrl+b 往首部
Ctrl+u 往首部翻半屏
Ctrl+d 往尾部翻
编辑:
x 删除当前光标所在处的字符
5x 删除往后5个字符
d 删除命令
dd 删除光标所在的行 同剪切
ndd 删除光标所在行一直向下的n行
末行删除:
地址定键符
ADDR1,ADDR8d
:1,8d 删除从一到8行
:8d 删除第8行
.:表示当前行
$ :最后一行
.,$-1 :当前行到倒数第二行
改写:
c
cc 删除光标所在行 并转换至输入模式
ncc 下n行
复制
y
yy
粘贴:
p 整行,所在行下行
P 整行,所在行上行
撤销命令:
u (undo)
u撤销上一次的操作(默认50次)
U撤销缓存区内所有的操作
撤销上次撤销操作
Crtl+r
重复上次的操作
.
可视化模式
v按字符选中
V按行选中
如何一次打开多个文件
vim FILE1 FILE2 FILE3
默认在第一个文件
在末行模式
:next下一个
:last最后一个
:prev 上一个
:first第一个
分屏
多个文件
vim -o 上下拆分
Crtl +w arrow 跳屏
vim-O 左右拆分
对一个文件
Crtl+w,s 水平拆分
Crtl+w ,v 垂直拆分
设置vim的工作特征
:set nu 显示行号,只对当前有效
:set nonu 不显示行号
定义是否缩进
:set ai 自动缩进
:set noai 取消自动缩进
语法高亮
:syntax on
:syntax off
只对当前有效
全局配置
/etc/vimrc
个人配置
/etc/.vimrc
收缩具体特定特征的字符串
/PaTTern 向下
?PaTTern 向上
支持正则表达式
查找并替换
在末行模式下使用s命令
:ADDR1,ADDR2s/PATTERN/string/gi
g(global)全局修改,同时把当前行内再次出现的替换
i(ignore-case)不区分大小写
% ==1$ 全文
:r 替换命令
脚本编程:
命令或脚本的退出状态
0-255
正确 0
失败 1-255
$?(特殊变量)
命令错误
如何让自己定义退出码:
exit n(0-255) 定义脚本的错误码是
表达式之间的逻辑关系:
!expreession
expreession &&expreession 逻辑与
短路操作
expreession ||expreession 逻辑或