文本编辑工具:vi,vim

文本编辑工具:vi,vim
vim:
模式分为编辑模式、输入模式、末行模式
编辑模式:也可称作命令模式,键盘操作常被理解为编辑命令
输入模式:将输入都保存在文件中
末行模式:是vim内置的命令行接口,可执行vim的内置命令

打开文件的格式:
# vim [option]…[FILE]…

从编辑模式转换到输入模式
i:在光标所在处的前方转换为输入模式
a:在光标所在处的后方转换为输入模式
o:在光标所在行的下方新建一个空行并转换为输入模式

I:在光标所在行的行首转换为输入模式
A:在光标所在行的行尾转换为输入模式
O:在光标所在行的上方新建一个空白行

从输入模式回到编辑模式使用ESC键即可
从编辑模式回到末行模式使用:键即可
从末行模式回到编辑模式使用ESC键即可

退出文件的方式:
在末行模式使用
1、:q!,表示不保存退出
2、:wq,表示保存退出
3、:x,表示保存退出
4、:wq!:强制保存并退出
在编辑模式下:
ZZ,表示保存退出

编辑文本:
对于光标移动:
字符间的移动:h,j,k,l(左,下,上,右);支持使用加数字的,#{h|j|k|l}:表示跳#个字符
单词间移动:
w:表示跳到下一个单词词首
e:当前单词或下一个单词词尾
b:当前单词或上一个单词词首
#{w|e|b}:表示跳#个单词
行内移动:
^:表示跳转到行首,跳转到行首第一个非空白字符
0:表示跳转到行首,跳转到行首的空白字符,是绝对行首
$:表示跳转到绝对行尾,也就是跳转到行尾的空白字符
行间移动:
#G:直接跳转到第#行
G:直接跳转到最后一行

编辑命令
x:表示删除光标所在处的字符,支持使用#x的方式
d:删除命令,可结合光标跳转字符使用,能够删除跳转范围内的字符,也支持使用#d数字的方式删除;常用的组合为w,b,e,$,0,^
dd:表示删除光标所在行
d$:表示删除光标所在处到绝对行尾
D:相当于d$
注:最后一次删除的内容会被保存至缓冲区,可直接粘贴;当遇到先删除后粘贴的操作即为剪切操作

粘贴:
行级别:
p:paste,在当前光标所在行下方粘贴
P:表示在当前光标所在行上方粘贴
小于行级别:
p:表示粘贴于当前光标所在处的后方
P:表示粘贴于当前光标所在处的前方

复制:
y:yank,复制;常用的组合为w,b,e,$,0,^
yy:复制一整行
Y:相当于yy,复制一整行

修改:
c:change,修改;先删除,再转换为输入模式;常用的组合为w,b,e,$,0,^
cc:表示删除光标所在处的一整行而后转换为输入
C:和cc效果一样
#c:支持数字使用

撤销编辑:
u:undo,撤销
#u:撤销最近的#次操作, 但是vim最近只能保持50次操作

撤销此前的撤销操作:
ctrl+r

重复前一条命令:
.
使用vimtutor命令可打开vim的在线教程

末行模式:
行间跳转:
#+回车键:即可跳转至#行
内容定界:
#:第#行
.:表示当前行
$:表示最后一行
%:全文,相当于1,$(从第一行到最后一行)
c,d,y等命令可直接附加在地址范围后使用
w /path/to/somefile:将选定范围内的内容保存至某文件中
r /path/from/somefile:将指定的文件中的内容读取到指定位置
s/查找模式/要替换成的内容/gi;在查找模式中,可以使用正则表达式;在要替换成的内容中,不能使用模式,仅能使用引用;其中g表示global,全行替换;i表示模式匹配不区分大小写

vim可视化模式:
v:光标走过的字符都会被选中,选中后可使用y,d等命令
V:光标走过的行都会被选中

文件查找:
用法同less命令

翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏

多文件模式:
:next,表示上一个文件
:previous,表示前一个文件
:last,表示最后一个文件
:first,表示最前一个文件
:wqall,表示在所有模式下都可关闭退出并保存所有文件

多窗口模式:
多文件:
vim -o :表示水平分割
-O:表示垂直分割
使用ctrl+w在窗口之间跳转
单文件:
ctrl+w,s:水平分割
ctrl+w,w:垂直分割

窗口属性定义:
:set nu:显示行号
:set nonu:取消显示行号
:set ai:表示自动缩进
:set noai:取消自动缩进
:set ic:忽略字母大小写
:set noic:不忽略字母大小写
:set sm:显示与之匹配的另外半边
:set nosm:取消显示与之匹配的另外半边
:syntax on|off:表示语法高亮显示打开或关闭
:set hlsearch:表示打开搜索高亮显示
:set nohlsearch:表示关闭搜索高亮显示

vim的配置文件:
全局配置文件:/etc/vimrc
用户:~/.vimrc

vim内替换目录使用#dir#
例子:
1,$s#/mnt/docker/tmp#/data/log#g

发表评论