*12.1* Replace a word 替换一个词
REPLACING IN SEVERAL FILES 在多个文件中替换
vim *.cpp Start Vim, defining the argument list to contain all the C++ files. You are now in the first file.打开多个同类型文件
qq Start recording into the q register 录制到寄存器
:%s/\<GetResp\>/GetAnswer/g 执行替换
Do the replacements in the first file.
:wnext Write this file and move to the next one. 保存文件,切换到下一个文件。
q Stop recording. 结束录制
@q Execute the q register. This will replay the
substitution and ":wnext". You can verify
that this doesn't produce an error message. 执行寄存器
999@q Execute the q register on the remaining files. 多次执行寄存器内容
:%s/\<GetResp\>/GetAnswer/ge
The "e" flag tells ":substitute" that not finding a match is not an error. 参数e,告诉替换忽略找不到的错误。
*12.2* Change "Last, First" to "First Last"
替换正则式中,利用 \( \) 套住的内容 对应 \1 \2 进行交换位置, \0对应匹配整个匹配的pattern的内容。
*12.3* Sort a list
:.,/^$/-1!sort
把从 当前行 到 空行前一行(段末)进行排序
*12.4* Reverse line order 倒排所有行
:global/^/move 0
指定位置设置为 mark t ,然后移动到某个行------把mark t 和 当前行之间的所有行倒排序插入到t后面
:'t+1,.g/^/m 't
*12.5* Count words
当前光标停留单词位置 g CTRL-G
可视模式下,统计选中的区域单词数量等
*12.6* Find a man page *find-manpage*
unix下编辑shell或者C文件时,查找man page
停留在这个函数名上,大写 K
vim脚本编辑时,在vim帮助中查看也可以用
K 或者 \K
*12.7* Trim blanks
去掉所有尾部空格
:%s/\s\+$//
"\s\+". This finds white space characters (\\s), 1 or more of them (\\+), before the end-of-line ().
*12.8* Find where a word is used
UNIX 下查找包含单词 frame_counter 的某类文件,并使用vim打开
``vim `grep -l frame_counter *.c```
##### *FINDING EACH LINE*
`:grep error_string *.c`
The ":grep" command uses the external commands grep (on Unix) or findstr
(on Windows). You can change this by setting the option 'grepprg'. 调用外部操作系统命令进行查找