Ⅰ Vi和Vim的区别及联系是什么
Vi和Vim的区别为:搜索不同、脚本语言不同、共享不同。Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
一、搜索不同
1、Vi:Vi不支持正则表达式的搜索。
2、Vim:Vim支持正则表达式的搜索。
二、脚本语言不同
1、Vi:Vi没有自己的脚本语言,只是在Unix及linux系统下进行编辑的工具。
2、Vim:Vim有自己的脚本语言,称为Vim脚本(也称为vimscript或VimL),用户可以通过多种方式使用它来增强Vim。
三、共享不同
1、Vi:Vi不具有高度可配置性,无法和各个Vi安装之间共享文件。
2、Vim:Vim具有高度可配置性,包含Vim核心全局设置(称为vimrc)的文件可以在各个Vim安装之间共享。
参考资料来源:
网络——Vi
网络——VIM
Ⅱ 【笔记】Vim的操作
刚打开文件时Vim处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数和字符数,以及当前光标所在的位置等。
例如,要将某文件中所有的"root"替换为"liudehua",则有两种输入命令,分别为:
注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p"键,就可以将刚才删除的内容又粘贴到此处。
某些情况下,可能需要把两行进行连接。比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按"J"键。
Vim的保存和退出是在编辑模式中进行的。
需要注意的是,"w!"和"wq!"等类似的指令,通常用于对文件没有写权限的时候(显示 readonly,如图12所示),但如果你是文件的所有者或者root用户,就可以强制执行。
程序员在编辑程序时,经常会为将光标移动到与一个 "(" 匹配的 ")" (对于 [] 和 {} 也是一样的)处而感到头疼。Vim里面提供了一个非常方便地査找匹配括号的命令,这就是 "%"。
在编辑文件时,可以使用Vim同时打开两个文件,每个文件分别占用一个窗口。
例如,在査看 /etc/passwd 时需要参考 /etc/shadow,有两种办法可以实现:
连续行的注释其实可以用替换命令来完成。换句话说,在指定范围行加"#"注释,可以使用 ":起始行,终止行 s/^/#/g",例如:
取消连续行注释,则可以使用":起始行,终止行s/^#//g",例如:
添加"//"注释要稍微麻烦一些,命令格式为":起始行,终止行 s/^////g"。例如:
以上方法可以解决连续行的注释问题,如果是非连续的多行就不灵了,这时我们可以定义快捷键简化操作。格式如下:
在命令模式下输入":set nu"即可显示每一行的行号,如果想要取消行号,则再次输入":set nonu"即可。
如果希望每次打开文件都默认显示行号,则可以编辑Vim的配置文件。每次使用Vim 打开文件时,Vim 都会到当前登录用户的宿主目录(用户配置文件所在地)中读取 .vimrc 文件,此文件可以对 Vim 进行一些默认配置设定。
Vim 配置文件分为系统配置文件和用户配置文件:
Ⅲ 为什么不少程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻
起初学习Linux和Vim, 纯粹是虚荣心或者说那个时期叛逆心理的作用, 当时对Linux和Vim一知半解但是总是对同学说, Vim多好多好, 其它编辑器都是渣渣. 当然当时对IDE还存在着崇拜心理, 只不过偶尔听到某某大神说, IDE会让人屏蔽很多细节, IDE什么都帮你做了, 你会变傻的. 从那时就有了一种, IDE挺强大, 但是Vim更利于学习, 学生么, 当然学习为主, 慢慢开始排斥IDE…
后来, 大学毕业, 工作是在嵌入式系统里编程, 或者是在linux服务器上写服务, 主要都是C语言的. 根本用不到IDE加之之前学习的, 基本上IDE的能够实现的功能, 用命令行+Vim基本都能实现. 逐渐自己慢慢在和别人的交流中就变化了. 出口Windows垃圾, IDE渣渣, 用IDE基本就是低端的象征, 当时的思想极端到自己用C语言, 连C++都看不上, 更别说java或者C#之流, 所以IDE进一步在我的世界里疏远, 并且开始有主动鄙视IDE行为. 当时极端到什么程度, 到一台新电脑上, 总是把命令行窗口最大化或者干脆直接切文字终端, 别人看见以后总会投来膜拜的眼神, 自己洋洋得意, 其实在命令行下也没干什么…回想一下, 太天真.
在后来, 工作越来越忙, 看的代码写的代码越来越多. 由于工作原因Vim成为了必须用的东西, 因为好多项目, 都是用命令行编译, 好多vim编辑的痕迹, 自己为了更快速方便的工作, Vim就用的更多更好, 逐渐发现, Vim确实好用, 而且非常好用. 这个时候我就能真正的说, Vim真的增加了我的工作效率. 这时候一个事情改变了我的想法, 一个同样热爱命令行, 热爱vim同事, 但是他的工作是JAVA, 人家在浏览代码的时候只需要Ctrl+鼠标就可以完成跳转到类定义, 但是他还要用grep, 找关键词, 用vim打开, 然后修改. 我开始变的不理解他的行为, 开始转变对IDE的看法. 合适场景用合适的工具. 最后有意思的是, 那位vim达人最后因为公司让他长期搞Java, 他终于选择了离开, 去了一家知名的做路由器的公司做底层了, 听到这些的时候, 我心里其实蛮开心的.
现在, 我开始做iOS编程, 等于说换了行业. 这时即使Vim再牛逼在快, 它也完成不了Xcode所能完成的事情, 从项目创建, 到自动添加所需的库, 自动的笔误的代码, 最后打包签名上传. 有人会抬杠说, 这些其实在Mac OS X中都可以用命令行做到. 我想说的是, 能做到又怎么样?你用命令行写的App能在总榜排到第几? 话说回来, 我现在是Xcode + XVim插件, 在编写程序的时候, 还是Vim习惯, 做其他事情的时候用XCode功能, 这不是两全其美么, 效率还奇高. 现在我是不愿意参加什么Vim牛逼还是IDE牛逼的圣战了, 如果讨论怎么把App或者游戏做到总榜前10我还有点兴趣.
总结:
回想一下, 如果一个人总是在说Vim或者Emacs牛逼IDE是渣渣不要怪他, 先看看他做的事情, 如果做linux kernel他能用什么IDE, 完全可以鄙视他; 如果他为开源贡献了xx行代码, 为linux贡献了xx代码, 牛人总有牛的道理, 偏执狂才能改变世界么; 但是如果他搞的是神马框架或者Java, C#之类的, 用Vim和Emacs是不是在折腾自己呢, 不如看看他用工具做出来的东西怎么样吧. 其实, 这些都是工具, 能用工具给养活自己, 甚至帮助别人, 对这个世界能有贡献是不是更重要的事情呢? 年轻的时候用外表, 用自己用的工具, 用Vim用Emacs来证明自己牛逼是太正常的一件事了, 因为自己还年轻, 不足以那那些实在的事情来证明.
最后:
如果让我选择用Vim还是IDE来证明自己, 我当然是愿意用Vim. 因为Vim才是我喜欢的范, 但是如果别人用IDE来证明了自己, 我也同样会拍手叫好, 因为他们已经证明了, 用什么重要么?
发布于 2013-12-07 19 条评论
赞同
19
反对,不会显示你的姓名
陈达野,"Vim用户"."Linux爱好者"."GFW受众"
知乎用户、赵文博、ccoder 等人赞同
科普:
1.vim里删除一行是dd,删除一百行是100dd,不需要进入什么命令行。除非您用的不是我们这个世界的vim。
2.有个名叫make的程序,只要在一个名叫makefile的文件里写好编译规则(也可以通过一些工具自动生成)就可以编译,不需要你输入大堆的编译命令。只要在vim里绑定一个快捷键就可以像vs一样的一键编译。vs里也有一个叫nmake的东西,用来干差不多的事,你可以在你的vs的安装目录里找到。我的vim配置里专门给F5绑定了一个函数来实现一键运行,会通过文件类型判断该怎么做。是python脚本就调用python,是shell脚本就调用/bin/bash,是html就调用浏览器,是c就调用gcc进行编译然后运行,我真的不知道要输入命令干嘛。
说说我用vim的原因:
1.我不是java程序员也不是c#程序员,用不着vs或者eclipse。
2.上面很多人说过了,ssh连接到linux服务器上,除了vim或者emacs还真不知道有啥编辑器好用。
3.我懒。用vim用不着正襟危坐。往椅子上一躺(那角度真的是躺),双手懒洋洋搭着键盘,手指啪嗒啪嗒的敲就行了,手肘从头到尾都不用挪位。
PS:作为一个vim爱好者我从不会鄙视用IDE的,我只鄙视用IE的。
编辑于 2013-08-20 9 条评论
赞同
388
反对,不会显示你的姓名
仲晨,人生的路啊,都是自己选的
赵胜利、周笑镭、Dragoon Bentus 等人赞同
实用是好事儿,但经常会丧失解决复杂问题的便捷性。
比如处理数据,简单的我也用Excel,但用着用着,碰到诸如特定需求的排序去重,不仅得绞尽脑汁旁门左道,还得查半天函数手册。下次,我不如直接写bash脚本或python处理来的快,尽管它们入门学习成本较大,但能够在未来的路上让我避免掉大量Excel本身的局限性。
Ⅳ vim是什么
1、Vim是一个文本编辑野神器。Vim具有代码编译、补完以及错误跳转等编颂耐亏程功能,在程序员中被广泛使用。
2、Vim的第一个版本由布莱姆·米勒在1991年发布,最初的简称是ViMitation,随着功能的不断增加亩带,正式名称改成了ViIMproved。
Ⅳ 作为一个程序员不知道vim正常吗你认为什么才是真正的程序员
很正常,觉得不好用也很正常,这个不是评判程序员的标准。许多程序员喜爱称自已为码农,每日的工作中除开敲代码,或是敲代码。实际上,这当中较大一部分人仅仅自嘲罢了,她们大部分全是合格的程序员。而有的人,确实是切切实实的码农,她们系统对、程序流程的了解能力不佳,本人的程序流程能力比较缺乏,谈不上是合格的程序员。那么,一个程序员要具有什么能力,才可以算得上真真正正合格的程序员呢?
如果你实现一个产品研发任务以后,就需要立即汇总,关键有关“程序流程的运用状况和客户的应用意见反馈”,在汇总的历程中,你就会发现自身的不够,了解自身哪几个方面必须提升。随后,逐一击败,那样你的发展会迅速。
自然,以上提及的基本都是做为一个程序员的基本上能力,这决策了你将来三到五年的工作上,是获得了很大的提升或是没什么发展。假如,你认为自身如今以上能力也不彻底具有得话,提议可以锻练提高,这对你的职业发展很有协助。
Ⅵ Vi/Vim 使用小窍门,如何消除搜索后的关键字高亮
输入:”:noh“。
使用技巧
1、使用 h、j、k、l
当命令模式时,可以用 h、j、k、l 来分别实现左、下、上、右箭头的功能。
2、快捷指令
(1)[Ctrl] + [b] 屏幕‘向上’移动一页,相当于 [Page Up] 按键。
(2)[Ctrl] + [d] 屏幕‘向下’移动半页。
(3)[Ctrl] + [u] 屏幕‘向上’移动半页。
(4)/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可。
(6)程序员的vim扩展阅读
简介
vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。
同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。
发展历程
Bram Moolenaar 在 80 年代末购入他的Amiga计算机时,Amiga 上没有他最常用的编辑器vi。Bram 从一个开源的 vi 复制 Stevie 开始,开发了 Vim 的 1.0 版本。最初的目标只是完全复制 vi 的功能,那个时候的 Vim 是Vi IMitation(模拟)的简称。
1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免费软体集收录了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。从那个时候开始,Vim 的全名就变成 Vi IMproved了。
Ⅶ vim和getch
vim是一种文本编辑器,简单来说是一种用于编辑文档(程序代码等)的工具,就像我们日常使用的Word、text等工具一样,这些毕培工具提供了很多功能,使得对文档的编辑修改变得简单,但是和Word等富文本编辑器不同的是,vim编辑器的功能没有那么丰富,是贫文本编辑器,且一般应用于Linux环境下,但是由于做了一系列的优化和适配(比如不断更新的快捷键、颜色语法标识等),使得程序员修改编辑代码更加得心应手,大大提高了工作效率,因桐数仔此该编辑器也被评为是Linux环境下最受欢迎的局汪文本编辑器之一
getch是一个计算机函数,在windows平台下从控制台无回显地取一个字符,在linux下是有回显的。用法是int
Ⅷ 什么是vim
我们经常会看到Vim,那么它到底是什么?一起来看看吧。
Vim简介
Vim是从vi发展出来的一个文本编辑游闷档器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
Vim 的第一个版本由布莱姆·米勒在 1991 年发布。最初的简称是 ViIMitation,随神乱着功能的不断增加,正式名称改成了 ViIMproved。现在是在开放源代码方式下发行的自由软件。
在这之后,Vim加入了不计其数的新功能。做1994年的3.0版本加入了多窗口编辑模式,可以在同一终端中同时编辑多个文件。2001年的Vim6.0版本加入了代码折叠、罩圆插件、多国语言支持、垂直分割视窗等功能。2008年8月发布的Vim7.2,合并了Vim7.1以来的所有修正补丁,并且加入了脚本的浮点数支持。现在最新的版本是Vim8。
总的来说,Vim就是一个文本编辑器,其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。你了解了吗?
Ⅸ vim的机会发展
程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯发展的问题,这是所有程序员都在关心的问题,未来究竟要怎么走,30岁之后还能不能再做程序员。
绝大多数程序员最终的职业目标可能都是CTO,做到CEO的人估计会比较少,也有一少部分人自己去创业去当老板,也有部分人转行了,当老板的人毕竟是少数,转行的人都不在这行做了,自然没什么好说的了。一般来说,程序员的发展基本上都会经历这么几条路径。程序员——系统分析员——架构师——技术经理——CTO,程序员——项目组长——项目经理——项目总监——CTO,程序员——产品设计师——产品经理——CTO。
当然这只是一个大致的路径,不是所有程序员都必需要这么经历的,有些人可能跳过其中的一些步骤,也可能有些人会把中间的很多职位都做了。而最终做到CTO的程序员,也是非常少的一部分,原因很简单,这个世界上不许要那么多的CTO和CXO。
也就是说,许多的程序员最终可能是做技术经理、项目经理或者项目总监之类的,那么到底我们职业生涯要选择哪一种呢?我觉得这个问题没有一个统一的答案,因为每个人的性格不一样,际遇也不一样,就像你从小希望当贪官,可是命运却偏偏让你做了一个程序员。所以应该根据你的兴趣、性格与际遇选择一条道路,比如说你正好有机会带一个项目,而你又不是很讨厌项目经理这个位置,那么你就可以选择向项目经理方向发展。
实际上很多时候,有些公司并没有明确的技术经理、项目经理、产品经理之分,在许多的公司里,他们经常是由一个人承担。在外包公司里,通常会有项目经理和系统分析员(也可能是技术经理)。在一些非IT公司里,可能会是部门经理,而做自己产品的公司可能会分得比较详细一些。我大致说一下这三个职位的区别,让正在徘徊的程序员有一个大致的了解。
项目经理是项目的直接负责人,这个角色相当于一个中间接口,不管是团队成员还是需求方(客户),或者是上级领导,有事都直接找他,所以这个职位着重于管理与沟通。一般来说,项目经理的工作重点在同客户沟通需求、项目进度的把控、团队的沟通方面,有些公司也会需要项目经理承担团队建设的工作,不过貌似很多国内公司都忽略了团队建设这个工作了。对于项目经理来说,重点会要求沟通能力、协调能力、危机把控能力、执行力、团队管理能力,着重于沟通、管理与计划。当然也有些公司还要求项目经历要参与招标谈判,这就要求项目经理有一定的商务谈判能力。
技术经理有时候也可能叫系统分析员,一些小公司可能会整个部门有一个技术经理。技术经理承担的角色主要是系统分析、架构搭建、系统构建、代码走查等工作,如果说项目经理是总统,那么技术经理就是总理。当然不是所有公司都是这样的,有些公司项目经理是不管技术团队的,只做需求、进度和同客户沟通,那么这个时候的项目经理就好像工厂里的跟单人员了,这种情况在外包公司比较多。对于技术经理来说,着重于技术方面,你需要知道某种功能用哪些技术合适,需要知道某项功能需要多长的开发时间等。同时,技术经理也应该承担提高团队整体技术水平的工作。
产品经理这个职位一般在有自己产品(不管是软件还是网站产品)的公司比较常见,产品经理主要会负责产品的设计、产品的改良等工作。需要注意的是,产品设计与设计师是两个不一样的工作,产品设计主要会从用户体验、业务需要等层面去设计产品,而设计师更多是从用户的视觉上去做。产品经理应该是最懂业务的人,比如说你在设计一个微博的产品,就要求你对微博这个东西非常熟悉,从用户习惯、用户体验、公司的发展战略上去设计这个产品,还要对比同类产品会有什么优势等等。
不管是项目经理还是技术经理与产品经理,都要求要熟悉业务,业务是需求的来源,没有不谈业务的技术,所以不管你从哪个方向发展,都要求对业务熟悉。产品经理要求对业务最熟悉,项目经理次之,技术经理排最后。对于程序员来说,刚开始工作的前几年可以埋头扎到技术里面,一般这个时间在2-3年的时间,然后就应该多关注业务了。这个业务不一定是指某个具体的业务,因为具体的业务的范围太少,而且也需要机遇。
Ⅹ PIM和VIM的区别
Vim是一个文本编缓陆辑器,而PIM是个人信息管理器。
其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛扰乱顷使用陪历。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
PIM由IDMR工作组设计,PIM不依赖于某一特定单播路由协议,它可利用各种单播路由协议建立的单播路由表完成RPF检查功能,而不是维护一个分离的组播路由表实现组播转发