小岑博客

  • 首页
  • VMware
  • 实验室
  • 培训&认证
  • 关于我
  • 分类目录
    • Citrix
    • Linux
    • Windows
    • 互联网
    • 存储
    • 虚拟化
    • 超融合
  1. 首页
  2. Linux
  3. 正文

Crazycen的Linux学习笔记:VIM实用技巧

2011年8月1日 4912点热度 0人点赞 15条评论

UTF-8编码

在 .profile 或着 .bash_profile 脚本中添加下面的环境变量设置:
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export LC_NAME=en_US.UTF-8
export LC_ALL=en_US.UTF-8

查找替换

:[range]s/pattern/string/[c,e,g,i]

range 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也就是整篇文章,也可以 % 代表。

pattern 就是要被替换掉的字串,可以用 regexp 來表示。

string 将 pattern 由 string 所取代。

c confirm,每次替换前会询问。

e 不显示 error。

g global,不询问,整行替换。

i ignore,不区分大小写。

g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如 cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。

[实例] :%s/Edwin/Edward/g
這樣整篇文章的 Edwin 就會替換成 Edward。

1. 简单替换表达式

替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
“%”范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可。

如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:
:%s/\<four/4/g

显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:
:%s/\<four\>/4/g

如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
:%s/\<four\>/4/gc

2. 删除多余的空格

要删除这些每行后面多余的空格,可以执行如下命令:
:%s/\s\+$//
命令前面指明范围是 “%”,所以这会作用于整个文件。匹配模式是“\s\+$”,这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”,这样就会删除那些匹配的空白字符。

3. 删除文本中的换行符^M

:%s/\r//g

防止VIM粘贴数据时断行

在vim编辑文件中,如果想粘贴较大长度的一行字符串时,经常会出现自动折行的情况,其实很简单,只需修改 /etc/vimrc,修改一个选项:
if has("autocmd")
" In text files, always limit the width of text to 78 characters
" autocmd BufRead *.txt set tw=78
autocmd BufRead *.txt set tw=200

看到上面的注释了吧,把tw从78改成200甚至更大就行了。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: Linux,VIM
最后更新:2011年8月1日

小岑

我是小岑,欢迎来到我的博客,青年人,爱捣鼓些东西,对世界充满着好奇,热爱旅游。 这里随便写写,记录些文字,大抵和技术相关。 VMware vExpert | VCIX | VCAP | VCP

点赞
< 上一篇
下一篇 >

文章评论

  • 海盗网

    不错呢,学习了呀,虽然俺不懂linux。

    2011年8月1日
    回复
  • 网络公司

    一直想了解这方面知识,终于找到了,收藏一下,版主辛苦了,谢谢。,

    2011年8月1日
    回复
  • 网络公司

    分析得很精辟!
    但我更想知道的是老师怎么从不懂到懂的过程,是如何学习的!

    2011年8月1日
    回复
  • solar-panel

    呵呵,内容写的很到位,感觉很好,收藏一下,谢谢版主。我是经常来拜访你的访问者之一哦,今天忍不住留言了。

    2011年8月1日
    回复
    • tony

      @solar-panel 看来以前忍了许久啊!憋不住了吧!
      谢谢支持啦!!

      2011年8月2日
      回复
  • 佐敦油漆

    不错,有这种思路来看问题,一切都解决了,版主真是有心了。谢谢,已收藏。

    2011年8月1日
    回复
  • solar-micro-inverter

    分析得很精辟!
    但我更想知道的是版主老师怎么从不懂到懂的过程,是如何学习的!

    2011年8月1日
    回复
    • tony

      @solar-micro-inverter 慢慢来!!一步一步走!
      在学的过程中,顺便去扩充一下知识!!
      然后就是兴趣爱好啦!!

      2011年8月2日
      回复
  • 快速成型

    有人托我查找相关知识,现在终于找到了,收藏一下,谢谢版主。

    2011年8月2日
    回复
  • ice+cream+machine

    以后经常来看版主老师的博客

    我喜欢你。

    2011年8月2日
    回复
    • tony

      @ice+cream+machine 不好意思了!!!

      2011年8月2日
      回复
  • LED+Ceiling+Light

    又简洁不少,但看上去挺高级的,收藏一下。

    2011年8月2日
    回复
    • tony

      @LED+Ceiling+Light 看来博主经常到这里来啊!!

      2011年8月2日
      回复
  • 营养零食

    有人托我查找相关知识,现在终于找到了,收藏一下,谢谢版主。

    2011年8月2日
    回复
    • tony

      @营养零食 哈哈哈!还有这种事!!不错不错!!

      2011年8月2日
      回复
  • 取消回复

    小岑

    我是小岑,欢迎来到我的博客,青年人,爱捣鼓些东西,对世界充满着好奇,热爱旅游。 这里随便写写,记录些文字,大抵和技术相关。 VMware vExpert | VCIX | VCAP | VCP


    COPYRIGHT © 2022 crazycen.com. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    鄂ICP备16016796号-1