IGNORANT

Vim学习(三)-文件打开AND缓冲区使用

前文命令拓展

更改删除复制从光标位置到
cHdHyH屏幕顶端
cLdLyL屏幕底端
c+d+y+下一行
c5|d5|y5|本行第5列
2c)2d)2y)往下第2个句子
c}d}y}上一段
c/strd/stry/strstr
cndnyn下一个模式
cGdGyG文件结尾
c13Gd13Gy13G第13行

上表的一般组合形式: (number)(command)(text object)number可无,commandc、d、ytext obect为移动命令。

打开vi的选项

$ vi file     //在第一行打开file
$ vi +n file  //在第n行打开
$ vi + file   //在最后一行打开
$ vi +/str    //在第一个出现str的地方打开
$ vi -c (command) file  //打开文件后执行命令

对与vi +/str,如果要打开并跳转到Hello World!,则:

$ vi +/Hello\ World!
$ vi +/"Hello World!"

只读模式

$ vi -R file  //以只读方式打开file
$ view file   //同上
:w!         //强制保存只读下修改的内容
:wq!        //强制保存只读下修改的内容并退出

缓冲区的"打开方式"

恢复缓冲区

$ ex -r     //寻找系统保存的交换文件
$ vi -r     //同上
$ vi -r test.c  //恢复系统死机时test.c文件的编辑缓冲区
:pre        //强制系统即使没有死机也保存缓冲区

恢复删除

vi会将最后9次的删除操作保存在编号的缓冲区中,然而如删除一行中的一部分这种小规模的删除,并不保存到编号的缓冲区中。

"2p     //恢复倒数第二次的删除,即缓冲区2的内容
“1pu.u. //一个一个查找最近删除的内容,使用.会使缓冲区编号增1

拖拽/复制文本到命名缓冲区

vi可以将拖拽/复制的文本放在字母标识的缓冲区中,存放到(a~z)26个缓冲区中。

"dyy    //将当前行拖拽到缓冲区d中
"d7yy   //将后续7行拖拽到缓冲区a中

"dP     //将缓冲区d的内容放置在光标前
"dp     //将缓冲区d的内容放置在光标后

"a5dd   //将删除的5行保存到缓冲区a中
"zd)    //从光标到句尾删除的句子存放在缓冲区z中
"Zy)    //从光标到句尾删除的句子添加到缓冲区z中,配合上个命令使用

"b (command)    //用缓冲区b执行命令

对某处做标记

在vi中,可在文本某处做一个“隐形书签”,在编辑完其他地方后,可再便捷回到“书签”处。

m(char)     //将当前位置标记为一个字符
'(char)     //回到标记的字符所在行首位置
`(char)     //回到标记的字符位置
``      //回到上一个标记或上下文的确切位置
''      //货到上一个标记或上下文所在行首位置

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »