1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VIM技巧

VIM技巧(整理) 个人觉得比较好的“技巧” 来自/vim:tips 用  HYPERLINK /vim VIM 差不多半年了,最初发现 HYPERLINK /vim VIM有很多的技巧,于是觉得有用的就记下来。 后来才渐渐发现这变成了一项多么浩大的工程,再不整理一下就堆成山了。 今天抽空收拾了一下,把用熟了的,没什么用的,重复的统统删了, 分类梳理了一下,缩减了不少,最终大概400多行,还好 !^_^ 今天整理的比较粗略,有不少内容不全,分类也有些乱, 今后会慢慢补充修改的,希望这一页最后能由长变短。 文中有些内容来自于其他人的文章,因为出处太杂,而且无法追溯到原作者, 所以就不再特地注明出处了,请见谅. 查找文件编辑 :set path+=path_to_search 参考 :h path :find path_name_to_edit 可以是文件或目录! shell 交互 直接运行shell :sh(ell) 执行shell选项所指定的外部shell程序。退出后返回vim 直接运行命令 :!cmd 执行cmd命令,退出后返回vim 通过read write命令与shell交互 write [用法] :[range]w !cmd 将[range]内的内容作为标准输入传给cmd命令执行. 注意w后的空格是必须的,w !sh 是写入给cmd命令作为输入 而w!cmd 是写入名为cmd的文件! [示例] :write !sh read [用法] :r!cmd 读取ls的输出(插入内容), read 后可加空格 :%!cmd 读取命令输出 (替换全文内容) :.!cmd 读取命令输出 (替换当前行内容) !!cmd 读取命令输出 (替换当前行内容) 第4种是直接在normal模式下执行的, 不需要切换至命令模式 其实你输入了!!后,vim就自动转换到 :.! 等待你继续输入 复杂些的例子 多个文件重命名, 把*.c更名为*.cpp。 :r !ls *.c :%s/\(.*\).c/mv \1.cpp :w !sh 命令输出的重定向 参考 :h :redi[r] 重定向命令输出, 包括内部命令! 可以将目标设置成文件或buffer. 然后在运行命令之后, 结果会在VIM中输出的同时导入到你设定的目标. 其行为类似于 HYPERLINK /tee tee, ???者就是用 HYPERLINK /tee tee实现的. 替换 s[ubstitute] 默认不指定范围的行为是替换当前行,用%才能替换整个文件 选项 g - global c - confirm i - ignore case e - dont show error? 常用 特殊变量 \n 匹配的第n部分,()用来表明需要匹配的子域 :%s/^(.*)\n\1/\1$/ : 删除重复行 匹配的全部 替代整个匹配字串 :3,7s/.*/ / : 將3至7行向右移2個空白 特殊语法 \{- 非贪婪匹配,non-greedy matching 【用法】参考 :h /\{- \{n,m} 匹配 n 至 m 个前面的匹配原。尽可能多 \{n} 匹配 n 个前面的匹配原 \{n,} 匹配至少 n 个前面的匹配原。尽可能多 \{,m} 匹配 0 至 m 个前面的匹配原。尽可能多 \{} 匹配 0 个以上前面的匹配原。尽可能多 (和 * 等价) \{-n,m} 匹配 n 至 m 个前面的匹配原。尽可能少 \{-n} 匹配 n 个前面的匹配原 \{-n,} 匹配至少 n 个前面的匹配原。尽可能少 \{-,m} 匹配 0 至 m 个前面的匹配原。尽可能少 \{-} 匹配 0 个以上前面的匹配原。尽可能少 【示例】 :%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf /\_ 跨越可能的多行 :%s/!--\_.\{-}--// : 删除多行注释 printf 控制替换内容 如有一文件,内容为: aa bb cc dd 用:%s/.*/printf( is :%d,)/ 插入任意内容 :s/date/\=strftime(%c)/ : insert datestring 特殊命令 :%s/\Edward\/\U/g 將全文的 Edward 這個單字,改成大寫的 global 命令 可实现的功能很强大,待扩充 用法 :[range]g/pattern/[cmd] range 不指定的話,默认是全文, 这与s默认是单行的行为有差别!而且:s 只更改一行里的內容,但无法作出刪除一行的动作 另外,有些变体命令 :g! 不匹配 :v 不匹配 示例 g/INFO/y A 可以把全文中有INFO的行grep出来追加到A寄存器中 命令行 选项 -tag 例如: vim [o

您可能关注的文档

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档