Linux学习之vim文本编辑和文件查询
程序员文章站
2024-01-04 19:06:28
...
1、vim编辑器
1、文本编辑器
文本——纯文本,ASCII text ,Unicode
2、文本编辑种类
行编译器:sed
全屏编译器:nano,vi,vim
vi——visual interface
vim——vi improved
3、vim的模式——模式化的编辑器
基本模式:
a、编辑模式——命令模式
b、输入模式
c、末行模式——内置命令行接口
注意:若文件事先不存在则以此名字创建新文件,并将内容保存在此文件中
若文件存在则将编辑内容保存在其中
2、vim命令- Vi IMproved, a programmers text editor
vim命令用于编辑和查看文本文件内容
(1)使用格式
vim [options] [file ..] ==>默认光标处于文本第一行行首位置
1)、vim +# ==>表示打开文版后光标位于#行的行首
例:
[[email protected] recover]# vim +3 test.sh
useradd ur1 && useradd ur2 && useradd ur3
a=$(id -u ur1 | grep -o "^[0-9]\{1,4\}")
b=$(id -u ur2 | grep -o "^[0-9]\{1,4\}")
2)、vim +/pattern ==>表示正则表达式所匹配到的内容
[[email protected] recover]# vim +/"ds" cp.txt
3)、vim + ==>打开文件后直接让光标处于行尾
3、模式之间的转换
1、编辑模式——即默认模式
2、编辑模式——>输入模式——进入到文本后的操作
i—insert:在光标所在处输入文本
a—append:在光标所在处后方输入
I:在贯标所在行首输入文本
A—在光标所在行行尾输入文本
o—在光标所在处下方打开一个新行
O—在光标所在处的上方打开一个新行
3、输入模式——>编辑模式
按ESC即可
4、编辑模式——>末行模式
‘:’按冒号即可进入到末行模式——按冒号后会有一个内置命令行
5、末行模式——>编辑模式
ESC
4、vim进入后关闭文件
1、ZZ——大写Z连按两次即可保存退出
2、在末行模式下
a、q——>表示退出——使用q时必须是未执行过任何操作,否则会报错
b、q!——>表示不保存强制退出
c、wq——>保存退出
d、x——>保存并退出
e、w /path——>将修改后的文件保存到指定路径下
5、vim中光标跳转——所有操作都是在编辑模式
1、字符间跳转
h—光标向左跳转
l—光标向右跳转
j—光标向下跳转
k—光标向上跳转
# command:跳转指定#个数的字符
2、单词间跳转
w—调到下一个单词词首
b—当前或前一个单词的词首
e—当前或后一个单词词尾
# command—指定跳转#多个单词
3、行首行尾跳转
^—跳转至行首的非空白字符
$—跳转至行尾(绝对行尾)
0—跳转至行首(绝对行首)
4、行间跳转
#G—跳转至#行
1G、gg—跳转至第一行
G—若光是大写G则跳转至末尾行
5、句间跳转
a、)—跳转到下一句
b、(—跳转到前一句
c、#)—跳转到下#句
d、#(—跳转到上#句
6、段间跳转
a、#}—跳转至下#段
b、#{—跳转至上#段
6、翻屏操作
1、Ctrl+f:向文件尾部翻一屏
2、Ctrl+b:向文件首部翻一屏
3、Ctrl+d:向文件尾部翻半屏
4、Ctrl+u:向文件首部翻半屏
5、Enter:向文件尾部翻一行
7、vim的编辑命令
1、单字符编辑
a、x:删除光标所在处的字符
b、#x:删除光标所在处其实的#个字符
c、xp:交换光标所在处的字符与其后面的字符位置
2、替换命令:replace
a、r—先按r然后按需要替换的字母即可替换
3、删除命令:
a、d—可以结合光标跳转字符,实现范围删除
d$—删除光标到行尾之间的所有字符
d^—删除光标到行首之间的所有字符
dw—删除当前单词到下一个单词词首之间的内容
#—如#dw-3dw表示删除3个单词
dd—删除光标所在处的一整行
#dd—删除光标所在行为起始的共#行
注意:删除的内容回保存在缓冲区中,用ESC即可找回最后操作的一个内容
4、粘贴命令——p、put、paste
p—小写p缓冲区中的内容
若为整行,则粘贴到当前光标所在行下方
若不为整行,则粘贴到当前光标所在处后方
P—大写P缓冲区中内容
若为整行,则粘贴到当前光标所在行上方
若不为整行,则粘贴到当前光标所在处前方
5、复制命令——y
a、y—复制,工作行为相似于d命令
b、y$—复制光标至行尾内容
c、y^—复制贯标至行首内容
e、y0—复制光标至绝对行首内容
f、ye—复制光标至当前词词尾或下一个单词词尾内容
g、yw—复制光标至下一个单词词首间内容
h、yb—复制光标至当前或前一词词首间的内容
i、#command:
j、yy—复制一整行
k、#yy—复制#行
注意:复制后也在缓存中,用p粘贴
8、c (change)改变命令:
1、能将光标处有编辑模式转换到输入模式,并能实现删除操作
a、c$—删除光标至行尾内容,并转换为输入模式
b、c^—删除贯标至行首内容,并转换为输入模式
c、c0—删除光标至绝对行首内容,并转换为输入模式
d、ce—删除光标至当前词词尾或下一个单词词尾内容,并转换为输入模式
e、cw—删除光标至下一个单词词首间内容,并转换为输入模式
f、cb—删除光标至当前或前一词词首间的内容,并转换为输入模式
g、#command:
h、cc—删除一整行,并转换为输入模式
i、#cc—删除#行,并转换为输入模式
9、可视化模式
1、v—按字符选定内容
2、V—按行选定内容
常常结合编辑命令:d、c、y
10、关于撤销的几个操作
1、撤销操作
a、u—undo—撤销此前操作(默认为最近50内的操作都可以撤销)
b、#u—指定#次的操作
2、撤销此前的撤销操作
Ctrl+r
3、vim自带的练习教程:vimtutor
11、vim末行模式——内建命令接口
1、地址定界
A、格式——start_pos [,end_pos]
a、#——在末行模式中表示特定的第#行
例: :5 —就表示第五行
b、#1,#2——表示从第#1行到#2行,左为起始,右为结束行
c、#,+#——指定行范围,左侧起始行绝对编号,右侧为相对于左侧行号的偏移量
例: :3,+7——表示3到10的范围
d、· ——表示当前行
e、$——表示最后一行
f、%<==>1,$——指定范围为全文
g、/char/——第一次被模式所匹配到的行
例: /test/,$——表示第一次匹配到的字符行到最后一行
h、/char1/,/char2/—表示光标位置起始向后匹配的第一个char1到char2之间内容
注意:“第一次”指光标所在位置为起始的第一个匹配对象
B、可以同编辑命令一同使用,实现编辑操作
格式:地址定界 编辑命令
a、d——删除地址定界的内容
b、y——复制地址定界的内容
c、c——修改地址定界中的内容
d、w /path——将地址定界的内容保存到指定的文件中
e、r /path/file——将指定文本中内容,插入到此文本中(可用于文件合并)
2、查找
A、/word——从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串
B、?word——从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
n—下一个,与命令方向相同
N—上一个,与命令方向相反
3、查找并替换
格式:s/要查找的内容/替换的内容/修饰符——此处'/'为分隔符,可以使用#或@替换掉
A、要查找的内容:可以使用正则表达式
B、替换的内容:不能使用正则表达式,但可以引用
a、若查找的内容部分在模式中使用分组符号,在替换内容中可以使用向后引用
:%[email protected]\<t\(.*\)\>@T\[email protected]
Test1
Test11
Test111
b、直接引用查找模式匹配到的全部文本,使用&符号
:%[email protected]\<T\(.*\)\>@&[email protected]——相当于直接在匹配到的字段后加上er
Test1ter
Test11ter
Test111ter
C、用于控制匹配
i:忽略大小写
g:全局替换,若一行中匹配到多次,则都替换(默认只替换每行第一次出现的)
12、vim的多文件功能
1、多文件
格式:vim file1 file2……
A、大文件之间切换
:next——>下一个文件
:prev——>上一个文件
:first——>第一个文件
:last——>最后一个文件
B、退出所有文件
:wqall——>保存退出所有文件
:wall——>仅保存所有文件
:qall——>仅退出所有文件
2、多窗口
A、-o:水平分割窗口
-O:垂直分割窗口
B、在窗口之间切换:Ctrl+w
用上下左右键来切换
注意:单个文件也可以分割为多个窗口进行查看
Ctrl+w后再按s:水平分割窗口
Ctrl+w后再按v:垂直分割窗口
13、定制vim的工作特性——都是在末行模式下
1、行号
显示行号:set number ——> set nu
取消显示行号:set nonumber ——> set nonu
2、括号匹配高亮
匹配:set showmatch——>set sm
不匹配:set noshowmatch——>set nosm
3、自动缩进——vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)
自动缩进:set autoindent——>set ai
不自动缩进:set noautodent——>set noai
4、高亮搜索
显示:set hlsearch
不显示:set nohlsearch
5、语法高亮
启用:syntax on
禁用:syntax off
6、获取末行模式帮助
help——获取所有vim帮助
help keyword——获取某个语法帮助
注意:在末行模式下的设定,仅对当前vim进程有效
永久生效则需要在以下文件中定义
全局:/etc/vimrc
用户个人:~/.vimrc
14、bash脚本编程之算数运算
1、算术运算格式
let var(变量)=算数运算表达式
var=$[算术表达式]
[[email protected] recover]# echo $[a+b]
35
或var=$((算术表达式))
[[email protected] recover]# echo $((a+b))
35
或expr 算术表达式
2、将运算结果保存在变量中
sum=$(echo $[a+b])
注意:乘法符号在某些场合需要使用转义字符——\