关闭

vim 有用的命令(补充)

标签: vim编译器
1278人阅读 评论(1) 收藏 举报
分类:

--------------------------------------------------------------------------------
甲:vim 删除空行:

--------------------------------------------------------------------------------

方法1: 用vim 的 d 命令, 并配合g 修饰符

:g/^$/d

用途: 我常用它删除 编译器预处理输出 .i 文件中的空行, 好处是让代码紧凑点。


方法2:用连续两个或多个换行替换为一个换行。vim 中替换符要用\r
::%s/\n\n/\r/
::%s/\n*\n/\r/

当然,如果一个空行也不留,用方法1就行了,简单.

方法2则稍显复杂。但如果将多个连续的空行删除为一个空行。

则可以如下操作

:%s/\n*\n/\r\r/

用途: 规格化c/c++ 代码. 例如有的代码行之间或函数和函数间有太多的空行时。


--------------------------------------------------------------------------------

乙:vim 格式化c/c++ 头文件中的参数。

--------------------------------------------------------------------------------

例如: 令各参数中分隔符, 有且只有一个空格。

先选中预格式化的函数头,执行选择块替换, 就达到目的了。

'<,'>s/, */ /gc


有助于16进制编辑的vim 命令

--------------------------------------------------------------------------------
丙: 定位命令(go)

--------------------------------------------------------------------------------

我们知道gg 到文件首,G 到文件尾, 30G 到第30行, :30 也到第30行。
但是还有更多!
1."ga"命令可以来查明当前光标下字符的本来面目"
2.g CTRL-G "可以获知光标所在字符在整个文件中详细位置,第几行,第几列,第几个词,第几个字节"
3.123go "转到第123个字节去"


--------------------------------------------------------------------------------
丁: xxd外部 命令

--------------------------------------------------------------------------------

1 用":%!xxd"进行十六进制格式的转储
2 编辑完毕后使用":%!xxd -r"反向转换,(小心,编辑时最好只是替换,而不要添加和删除)


--------------------------------------------------------------------------------

戊:去掉所有的“/* */”注释:

--------------------------------------------------------------------------------

%s!/\*\_.\{-}\*/! !g
可以替换为空格,或简单的去掉。
解释:
这个略有点复杂了,用到了几个不太常用的 Vim 正则表达式特性。 help pattern 有解释
“\_.”匹配包含换行在内的所有字符;
“\{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好;(非贪婪匹配)
标志“g”表示一行里可以匹配和替换多次。


重新复习了一遍多行匹配:

vim:  c 多行注释匹配
1. 查找命令
可以高亮显示多行注释
/\/\*\_.\{-}\*\/     --> c 多行注释匹配
\_.      --> 匹配回车及任意字符(多行匹配)
\{-}    --> 非贪婪匹配

2. 替换命令
例如删除多行注释, 带确认
%s/\/\*\_.\{-}\*\///c
进一步用%s###简化为:
%s#/\*\_.\{-}\*/##c


--------------------------------------------------------------------------------
己:临时高亮文字。使用match, 2match, 3match

--------------------------------------------------------------------------------

功能更强大的高亮可以用插件。
例如: 高亮空格, 目的是观察Tab 中有无空格。
match  Search /\s\+/

match 的用法: match {highlight group} /{pattern}/


--------------------------------------------------------------------------------
庚:vim errorformat

--------------------------------------------------------------------------------

errorformat 可以帮助我们定位错误。

最简单的设置可以为: set efm=%f:%l:%m

含义: 格式为 文件:代码行:信息

其中文件是包含路径的,以当前文件为基本路径。

android 的mm 命令由于是shell 脚本,其信息输出在stberr 中,
而由于种种原因vim 不能收集它为errfile, 此时可以
在控制台上收集出错信息存为一个文件。
例如: mm 2>err.txt
然后用vim cfile err.txt 来加载错误文件。利用vim 的quickfix 功能定位错误行


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:681582次
    • 积分:8801
    • 等级:
    • 排名:第2157名
    • 原创:329篇
    • 转载:6篇
    • 译文:0篇
    • 评论:72条
    最新评论