- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 - globalc - confirmi - ignore casee - 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 控制替换内容
如有一文件,内容为:aabbccdd用:%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
您可能关注的文档
- NI Elvis 实验平台使用帮助.doc
- nature and art自然与艺术.ppt
- NO.3超临界流体应用.doc
- NOIP联赛提高组模拟试题·答案.doc
- NOIP2006-2008初赛(提高组).doc
- NOIp集训 数学方法专题 - by ayq.ppt
- ns-2.29和pmipv6插件安装详解.doc
- new吉林省经济地理.ppt
- NSCL的离线ECR离子源ARTEMIS-B的研究与发展.pdf
- NW系列超纯水系统.pdf
- 常见文言固定句式(其它文言句式22个).pptx
- 第27课 中国特色社会主义的开创与发展--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第28课 改革开放和社会主义现代化建设的巨大成就--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第1课 中华文明的起源与早期国家--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第21课 南京国民政府的统治和中国共产党开辟革命新道路--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第15课 两次鸦片战争--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第1章 遗传因子的发现--人教版(2019)必修二生物单元测试A卷.docx
- 第20课 五四运动与中国共产党的诞生--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第24课 人民解放战争--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
- 第9课 两宋的政治和军事--高一历史人教统编版中外历史纲要上册课时优化训练(含答案).docx
文档评论(0)