vim操作 1. 只在指定的特定行中搜索 2. 打开光标位置的文件 3. 对匹配pattern的行进行操作 4. 产生递增或递减数列(通过line函数实现) 5. 跨行匹配(在一个pattern中匹配两行) 6. 将匹配到的行输出到一个文件中 7. 在一个vim窗口复制内容, 在另一个窗口粘贴内容

vim操作
1. 只在指定的特定行中搜索
2. 打开光标位置的文件
3. 对匹配pattern的行进行操作
4. 产生递增或递减数列(通过line函数实现)
5. 跨行匹配(在一个pattern中匹配两行)
6. 将匹配到的行输出到一个文件中
7. 在一个vim窗口复制内容, 在另一个窗口粘贴内容

vim操作

/pattern\%>27l       # 搜索pattern, 搜索范围是27行以后, 其中l表示按行搜索
/pattern\%>27l\%<40l # 搜索pattern, 搜索范围是27行以后40行以前, 其中l表示按行搜索

注意, 不要在%>27l两边随便加空格.
另外, 除了指定行进行(l)搜索, 还可以指定列(c)搜索, 或指定标记(m)进行搜索.

/pattern\%>27l\%<40l\%>55c # 搜索范围: 27行以后, 40行以前, 55列以后

2. 打开光标位置的文件

gf        # 在当前窗口打开光标位置的文件.
Ctrl+w gf # 在new tab中打开光标位置的文件.
Ctrl+w f  # 在横分(sp)的窗口中打开光标位置的文件.

3. 对匹配pattern的行进行操作

:g;pattern; s;^;//; # 对匹配pattern的行, 行首添加注释标记"//".

4. 产生递增或递减数列(通过line函数实现)

:%s;0;=line(".")-21; # 将每行的0改为递增值: 当前行号-21.
:%s;0;=26-line("."); # 将每行的0改为递减值: 26-当前行号.

5. 跨行匹配(在一个pattern中匹配两行)

:%s;(^.*)
1$;1; # 如果相邻两行相同, 只保留一行.

6. 将匹配到的行输出到一个文件中

:!touch new.txt           # 调用linux系统命令touch创建一个新文件new.txt.
:g;pattern; .w >> new.txt # 获取匹配pattern的行, 写到new.txt中.

7. 在一个vim窗口复制内容, 在另一个窗口粘贴内容

在一个vim窗口操作: 1) 按"* 2) 进行复制操作
在另个vim窗口操作: 1) 按"* 2) 进行粘贴操作