vi 技巧

简介:

vi 的使用心笔记


在用户的要目录下可以在.vimrc设置好自己平时所使用的环境
如每次打开文件都显示行号,查询的时候忽略大小写,则如下
vi .vimrc
set nu
set ic

:noh 不显示高亮(查询的时候会显示颜色,但下此命令后就不会高亮显示所查询到的内容)
:set ic 忽略大小写
:set noic 不忽略大小写
:set nu 显示行号
:set nonu 不显示行号
:syntax on 语法高亮显示
:syntax off 语法不高亮显示


1,删除空白行
:g/^$/d
或 :v/./d

1. global命令形式

:h :g

:h 12.4

:[range]global/{pattern}/{command}

global命令在[range]指定的文本范围内(缺省为整个文件)查找{pattern},然后对匹
配到的行执行命令{command},如果希望对没匹配上的行执行命令,则使用global!或vg
lobal命令。

先来看Vim用户手册里的一个经典例子。

【例1】倒序文件行(即unix下的tac命令)

:g/^/m 0

这条命令用行首标记/^/匹配文件的所有行(这是查找的一个常用技巧,如果用/./则是
匹配非空行,不满足本例要求),然后用move命令依次将每行移到第一行(第0行的下一
行),从而实现了倒序功能。

global命令实际上是分成两步执行:首先扫描[range]指定范围内的所有行,给匹配{pa
ttern}的行打上标记;然后依次对打有标记的行执行{command}命令,如果被标记的行在
对之前匹配行的命令操作中被删除、移动或合并,则其标记自动消失,而不对该行执行
{command}命令。标记的概念很重要,以例说明。


2,删除1至5行的#号
:1,5s/#//g
如果只是1到5行行首#号
:1,5s/^#//
如果每一个都要按确认y的话
:1,5s/^#//c
3,删除2至5行
:2,5d
4,删除2至未行
:2,$d
5,删除行首为#号的行(%代表所有行)
:%s/^#.*$// (还存在空白行)
:g/^#/d (不存在空白行)
6,删除鼠标所在位置至本行的未尾并插入模式
shift+c
如不想在插入模式则可 d+$
7,在2至5行增加#号作批注
:2,5s/^/#/
8,删除鼠标所在行到最后一行(包括鼠标所在行)
:,$d


本文转自 pk2008 51CTO博客,原文链接:http://blog.51cto.com/837244/903287

相关文章
|
Linux 开发工具 Windows
|
7月前
|
Unix 开发工具
vi是什么
vi是什么
51 1
|
XML 网络协议 Unix
这辈子你可能都不用学vim了
1975的秋天,Unix光环加身的大神Ken Thompson休了一个长假,从贝尔验室回到了自己的母校:加州大学伯克利分校,他将在这里以访问学者的身份待一学年。
|
Unix Linux 网络安全