如果你想要学习linux或者经常使用linux,那么熟练掌握一种编辑器是十分有必要的。我一直使用的是vi,虽然有点繁琐,但提供的功能真心强大,熟练掌握后必将受益无穷。下面分享一下我的学习心得。
一、进入vi
虽然只是打开一个文件都有学问,掌握好能快速帮你定位到想要的位置,如下:
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
二、光标移动
这个是vi的基础,我们平时的工作会经常要编辑文本或查找日志信息,所以上一页下一页上一行下一行神马的用的非常频繁,下面就罗列一下关于一定光标的相关指令。
1.上下左右:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一字符
2.行内移动
0:所在行行首
$:所在行行尾
^:所在行首字母
3.屏幕内移动
H:当前屏幕首行行首
M:当前屏幕中间行行首
L:当前屏幕尾行行首
4.移动指定行
n-:上移n行至行首
n+:下移n行至行首
n$:下移n-1行至行尾
5.移动到特定位置
G:移至最后一行行首
nG:移至第n行行首
gg:移至第一行行首
三、翻页
翻页命令对于我们查找日志信息非常有帮助,如下:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部,输入完敲回车。
四、编辑文本
如果你仅仅是要查看文件内容,可用view等其他命令,我们经常会用vi来编辑文本。虽然有点繁琐但非常实用,需要好好掌握,如下:
1.删除文本
x:删除光标所在位置的字符
dw:删除光标所在位置的单词(应该是从当前字符开始到下个单词结束)
dd:删除光标所在行
d$:删除光标所在位置到行尾的内容
2.复制和粘贴
y可用来赋值文本,结合其他命令,可以实现:
yd:复制单词
y$:复制到行尾
p用来粘贴文本,要实现剪切:使用d删除命令,然后用p将刚删除的内容粘贴到想要的位置。如果要赋值大段的内容,用上面的方法比较麻烦,可用v命令:在要复制的内容开始出按下v,移动光标到结束位置(移动命令参照上面),文本会高亮显示,按下y赋值选中的内容,再用p将文本粘贴到想要的位置即可。
五、查找
我们会经常要根据关键字查找日志信息,比如用户名、账号等,查找命令很简单,有如下两种:
1.从光标处往后搜索
/pattern:pattern即为要搜索的关键字,如果后面有即定位到第一次出现的位置,如果没有则从文本开始处搜索知道找到匹配出。用n可继续定位下一个出现的位置(向后搜索)。
2.从光标处往前搜索
?pattern:pattern即为要搜索的关键字,如果前面没有就从文本末尾开始搜索。用n可继续定位下一个出现的位置(向前搜索)。
六、替换
使用替换命令可将某些特定的内容替换其他的内容,如下:
:s/old/new/ 替换当前行第一个 old 为 new
:s/old/new/g 替换当前行所有 old 为 new
:m,ns/old/new/ 替换m到n行第一个 old 为 new
:m,ns/old/new/g 替换m到n行所有 old 为 new
:m,$s/old/new/ 替换第m行到尾行第一个 old 为 new
:m,$s/old/new/g 替换第m行到尾行所有 old 为 new
:%s/old/new/ 替换整个文本每行第一个 old 为 new
:%s/old/new/g 替换整个文本所有 old 为 new
:%s/old/new/gc 替换整个文本所有 old 为 new ,每次出现提示
以上就是比较常用的vi命令,也是我平时用的比较多的,如果错误欢迎指正。