vim文本编辑器
文本编辑器
行编辑器:sed(流编辑器)
全屏幕编辑器:nano,emacs,vi,vim
vim(vi):模式化编辑器
编辑模式(命令模式):
输入模式:
末行模式:
vim启动:
vim [option] FILE…… 例如:vim /tmp/a.txt
option:
+# 打开时光标定位在第#行第一个字符
+ 打开时光标定位在最后一行第一个字符
vim退出:
:q
:q! 强制退出
:wq 保存退出 等同于:x
:w! 强制保存
模式转换:
编辑模式 --> 输入模式
i:当前光标所在字符前面插入
a:当前光标所在字符后面插入
o:当前光标所在行的下方新增空白行并输入
I:当前光标所在行的行首插入
A:当前光标所在行的行尾插入
O:当前光标所在行的上方新增空白行并输入
输入模式 --> 编辑模式
Esc
编辑模式 --> 末行模式
:
末行模式 --> 编辑模式
Esc
光标跳转:
h 左
j 下
k 上
l 右
词间跳转:
w 下个单词的词首
e 跳转至词尾
b 和e相反
行首、行尾:
^行首的第一个非空白字符
0 绝对行首
$ 绝对行尾
行间跳转:
#G 跳转到#行 gg跳转到第一行
G 跳转至文件尾部(最后一行)
末行模式下跳转:
:# 跳转到#行
翻屏操作:
ctrl+f 向文件尾部跳一屏
ctrl+b 和ctrl+f相反
ctrl+d 向文件尾部跳半屏
ctrl+u 和ctrl+d相反
删除:
x 删除光标前的一个字符
dd 删除当前所在行
#dd 删除从光标所在行开始的#行内容
d^ 删除光标之前到行首
d$ 删除光标到行尾
复制:
yy 复制当前行
#yy 复制从光标所在行开始的#行
y^ 复制光标之前到行首
y$ 复制光标到行尾
粘贴:
p 粘贴到光标所在位置之后
P 粘贴到光标所在位置之前
可视化模式:(选定)
v 按字符选取
V 按行选取
撤销编辑操作:
u 撤销上一次编辑操作
#u 撤销最近的#次操作
ctrl+r 对最近一次的撤销操作进行撤销
U 撤销对当前行所做的所有编辑
查找:
/搜索的词 向后搜索
?搜索的词 向前搜索
查找并替换:
末行模式下使用s命令格式:
:定界s/查找的内容/替换成的内容/gi
定界
% 全文查找
n,m
查找的内容
支持正则表达式
替换成的内容
不支持正则表达式,但可使用前向引用
g 全局替换
i 忽略大小写
& 用于引用查找到的整个字符串
注意:在查找时遇见和分隔符相同的字符必须用转义符进行转义
和shell交互:
末行模式下:
!shell command例如::!ls /var/spool/mail
将某些行进行另存为,例如::n,m /tmp/a.txt
水平拆分窗口:ctrl+w然后松开按s
垂直拆分窗口:ctrl+w然后松开按v
拆分窗口来回切换:ctrl+w然后松开按方向键
关闭某个窗口:ctrl+w然后松开按q
同时打开多个文件时,在末行模式下切换:
:next 切换至后一个文件
:prev 切换至前一个文件
:first 切换至第一个文件
:last 切换至最后一个文件
:wall 保存所有
:qall退出所有
:q!qll 强制退出所有
:e 新文件 打开新的文件
:r 新文件读入新文件
打开多个文件并拆分显示:
-o
-O
定制vim的工作属性:(末行模式下)
:set nu 显示行号
:set nonu 关闭行号
:set ai 自动缩进
:set noai 关闭缩进
:set 显示帮助
:set all显示所有属性
:set ic 忽略大小写
:set noic 关闭ic
:syntax on|off开启关闭语法高亮显示
:set hlsearch 打开查找高亮
:set nohlsearch关闭查找高亮
vim配置文件:
全局 /etc/vimrc
个人 ~/.vimrc(不存在,自己创建)
vimtotur:vim的练习题
转载于:https://blog.51cto.com/wingkeung/1362896