Board logo

标题: [电脑] 打算学习一下Vim,有同好或专家么? [打印本页]

作者: squallySP    时间: 2011-3-11 11:04     标题: 打算学习一下Vim,有同好或专家么?

最近工作变动,接触了不少新东西、新任务,也想让自己升级一下,于是主动解除了一些新软件。
淘了一遍,剩下两个软件,一个是TC,一个VIM。
这两个软件大家应该都熟悉,TC是久闻大名,一直没入门,这次打算好好学习一下,先从Ctrl-D开始吧,哈哈!
Vim我以前没了解,貌似是非常NB的文本编辑软件,特别适合编程。正好我的新工作中,有一项要涉及编写大量的文档。原来都是用word完成的,现在想转到vim,先用vim编辑和修改,再转成word格式。

不知道这个思路对不对,最后是大大提高效率呢?还是再次证明我是一个蛋疼的家伙?

对了,vim和中文输入法在一起用很别扭啊,每次Esc之后,按hjkl出来的都是中文的输入框,还要再次切换一下,别扭死了,有什么好办法没有?
作者: squallySP    时间: 2011-3-11 11:05

另外,能不能用vim浏览TGFC呀?
作者: dzgxg    时间: 2011-3-11 11:07

这俩软件善用佳软应该很有研究,看过不少文章
作者: jun4rui    时间: 2011-3-11 11:28

posted by wap, platform: GoogleChrome

VIM绝壁不适合写Word啊,这东东只适合写纯代码的。

写文本效率很低,例如VIM前后跳转可以按单词,按字母,跳多少个等等,这玩意在中文下基本就废了,而且软回车换行的地方你只能左右移动光标,不能像其它文本编辑器一样上下。

总之,你用记事本写文档,都比VIM强,真的!
作者: squallySP    时间: 2011-3-11 11:28

我知道Vim就是从善用佳软上面看到的推荐啊,然后才下了想学的,但是感觉还是不入门啊,
作者: 离神最近的人    时间: 2011-3-11 11:55

windows下用vim纯蛋疼...
作者: Wbird    时间: 2011-3-11 12:28

引用:
原帖由 离神最近的人 于 2011-3-11 11:55 发表
windows下用vim纯蛋疼...
+1
作者: touch1978    时间: 2011-3-11 12:37

vi?这么SB的软件都是unix码工才用的吧,TC是什么玩意,不会是turbo C吧?
这两个东西完全不搭界啊
作者: abaqus    时间: 2011-3-11 12:40

posted by wap, platform: UC

total commander吧
作者: henvelleng    时间: 2011-3-11 12:51

那个,中文既不能用字母索引,也不是用空格来划分单词的,vim就此废去大半了。写纯英文文档的话还是可以的,中文就算了。当然,比记事本肯定强

windows下我也用gvim的,用来替代记事本,很好用
作者: cocoa    时间: 2011-3-11 12:59     标题: 回复 8# 的帖子

前面的同学请不要侮辱你不了解的东西,vim是编辑器之神,用熟的话可以体验到一种快感,你会觉得别的编辑器太慢,你会不屑于碰触鼠标。即使是在Windows下,它的效率也不是很多商业编辑器能比的,语法高亮,bookmark,程序任意部分跳转,任意代码折叠,宏,列编辑,编译程序,加上插件可以实现代码自动补全,code snipper,多国编码自由转换,拷贝粘贴环......太多太多,使用别的编辑器(ue,em)在代码间游走的感觉比作cs的话,vim就是quake3了。但是,它的学习成本太高,刚开始的时候是要付出努力和耐心的,有时还要编写自己的配置文件。当然编辑普通文本尤其是中文,除了快速定位和查找好一点外,和其他的编辑器差别不大。

[ 本帖最后由 cocoa 于 2011-3-11 13:05 编辑 ]
作者: squallySP    时间: 2011-3-11 13:21

感谢ls的

lss说得也不错,因为中文的问题,w就基本没用了。实在可惜啊……

我说的TC就是total cammand
作者: lvcha    时间: 2011-3-11 13:25

工具就是工具,别跟lss一样上纲上线的。
写文档你劝直接用word。
windows下写文本or代码用UE吧,易上手且功能强大。
vim我学过一会儿,太复杂了。不值当的。

ps:我quake玩的不错。quake的特点是,容易上手,精通很难。我觉得vim显然没这个特点。
作者: lvcha    时间: 2011-3-11 13:27

对了,lz你要是真学vim了,时不时来这个帖子发点心得。
让我也开开眼到底哪里好用了。
谢谢
作者: Wbird    时间: 2011-3-11 13:38

用着KDE,每天对着konsole(terminal)和vi的人飘过。。
但绝大部分中文文档(doc,xls,ppt)还是用虚拟机里的ms office写的
作者: z0406    时间: 2011-3-11 13:39

posted by wap, platform: GoogleChrome

基本上可以说不会vim,肯定不是个出色的linux程序员。用vim写C代码的效率基本也是最高的。
windows的vim是gvim这类的包装品,比vim还要友好的多,非常好用。
作者: lvcha    时间: 2011-3-11 13:56

引用:
原帖由 z0406 于 2011-3-11 13:39 发表
posted by wap, platform: GoogleChrome

基本上可以说不会vim,肯定不是个出色的linux程序员。用vim写C代码的效率基本也是最高的。
windows的vim是gvim这类的包装品,比vim还要友好的多,非常好用。
我刚工作时aix上写c是用ue,没觉得有啥不好。
在ue中直接ftp打开远程的源文件,本身带代码高亮,代码提示,有插件可以代码自动排版。
不过好久好久好久没写过C了。
作者: z0406    时间: 2011-3-11 14:00

posted by wap, platform: GoogleChrome
引用:
原帖由 @lvcha  于 2011-3-11 13:56 发表
我刚工作时aix上写c是用ue,没觉得有啥不好。
在ue中直接ftp打开远程的源文件,本身带代码高亮,代码提示,有插件可以代码自动排版。
不过好久好久好久没写过C了。
vi这东西根本不用远程打开的,所有linux系统没有不带vi的。就连几MB的嵌入式linux也会带个vi的。
vi的代码高亮,自动排版等等直接编辑下 ~/.vimrc配置文件即可。
作者: iorilu    时间: 2011-3-11 14:00

posted by wap, platform: GoogleChrome

TC 一直用 , vim的话不是特需要也没必要强求, 搞这个本来是为了在纯字符操作环境下, 不用鼠标高效操作
作者: Jonsoncao    时间: 2011-3-11 14:02

Windows用XEmacs吧……
作者: 50_center    时间: 2011-3-11 14:02

vim多研究研究吧,
至于total commander,我还真不觉得就这么一个软件还要‘学’,你用2天就会了,太高端的估计你也用不到吧
作者: z0406    时间: 2011-3-11 14:11

给楼主贴个基本的入门材料。
作者: finalx    时间: 2011-3-11 14:44

posted by wap, platform: iPhone

文本编辑就两个神,vim,emacs.随便选一个吧
作者: 小霸王其乐无穷    时间: 2011-3-11 14:56

tc的快感不是那些样子像tc,标榜能超越tc的软件能比的
作者: henvelleng    时间: 2011-3-11 15:59

其实vim最初只是一个单纯为了在字符界面下、在电话线小猫的网络环境下用最小的带宽进行远程同步文本编辑的软件。vim花了很大力气进行了图形化的融合,引入了系统剪贴板、鼠标操作等

话说编辑器现在其实就那么些特性:宏定义,各种语法高亮,折叠,设定mark快速跳转,多重剪贴板,自动格式化文本(包括去除行尾空格),片断自动完成,符号配对,变量、成员名补全以及代码导航,出现过的单词补全,窗口的分割显示,符号列表,快速注释和插入注释模板等等。编辑器之间拼的是除了以上这些常见功能以外的,自己的特色
作者: abaqus    时间: 2011-3-11 18:31

不碰*nix类的不用管vim,多学学word技巧
作者: linkliu    时间: 2011-3-11 19:33

posted by wap, platform: Nokia (E72)

如果写文本,你用VI还不如用LaTex,后者毕竟是准排版软件
作者: squallySP    时间: 2011-3-11 19:48

引用:
原帖由 小霸王其乐无穷 于 2011-3-11 14:56 发表
tc的快感不是那些样子像tc,标榜能超越tc的软件能比的
能否详细介绍一下?
作者: dzgxg    时间: 2011-3-11 20:28

引用:
原帖由 squallySP 于 2011-3-11 19:48 发表

能否详细介绍一下?
不大的容量,几乎拥有全部常用甚至不常用的文件管理功能,而且很多功能比专门的单体软件还要强,比如文件批量更名。除了文件管理还内置了ftp,通过小插件实现虚拟光驱,等等这类的附加功能。当然最吸引人的还是无与伦比的文件管理功能,比如要拷贝一个文件夹内所有目录和文件的名字,全选后按自定义过的快捷键,到记事本粘贴一下就全出来了,跟拷贝贴的流程完全一样。其他的比如多媒体功能,以搜索某个歌手的曲目为例,设定搜索为插件方式,选定anytag的artist字符串,输入gaga之类的歌手名,只要你的id3准确,那么gaga的歌曲就出来了,然后可以输出成列表,变成虚拟文件夹进行直接操作
作者: ddu    时间: 2011-3-11 21:59

引用:
原帖由 lvcha 于 2011-3-11 13:25 发表
工具就是工具,别跟lss一样上纲上线的。
写文档你劝直接用word。
windows下写文本or代码用UE吧,易上手且功能强大。
vim我学过一会儿,太复杂了。不值当的。

ps:我quake玩的不错。quake的特点是,容易上手,精 ...
vi入门学习是很难,东西太难记了。熟悉之后能感觉到速度的。点鼠标最多一两个手指,vi可以9-10个手指一起撸键盘,就是所谓的“快速输入”。
vi适合英文纯文本编辑。特别是Unix/Linux,这些可以用文本写脚本自动化工作的系统
作者: squallySP    时间: 2011-3-11 23:32

感谢各位,我还是决定学习一下vim

我目前不编程,就用它写文本,嗯

不能打击我哦。
作者: iorilu    时间: 2011-3-11 23:37

posted by wap, platform: GoogleChrome

emacs 和 vim 那个牛逼啊
作者: HEIREN    时间: 2011-3-11 23:47

引用:
原帖由 lvcha 于 2011-3-11 13:25 发表
工具就是工具,别跟lss一样上纲上线的。
写文档你劝直接用word。
windows下写文本or代码用UE吧,易上手且功能强大。
vim我学过一会儿,太复杂了。不值当的。

ps:我quake玩的不错。quake的特点是,容易上手,精 ...
q3玩的不错? 请报q3acn ID 和 游戏常用ID
作者: HEIREN    时间: 2011-3-11 23:49

如果你要学Vim
推荐个Firefox插件 vimperator 当然 现在我在用他的另一个版本 Pentadactyl 更顺手
现在离不开它了
作者: nopaina    时间: 2011-3-12 00:29

vi不错的。。。学编程的时候用。。。就用点简单的功能,主要替代鼠标:D
作者: sleepd    时间: 2011-3-12 03:08

posted by wap, platform: GoogleChrome

我改用vim一年多了,现在windows下面也用gvim。

vim适合的是代码编写,写文档的话如果是wiki一类的软代码也很不错,如果是word文档那样需要排版输出的就不用考虑了。

作为一个vim初级爱好者,简单介绍一下vim的特点:

vim的理念是你的双手不离开键盘区就能完成一切输入工作。为了这个目标,有很多异于常规的设定,比如,他的光标移动是用H J K L这四个键而不是方向键(当然方向键也能用但是它是不推荐的)。你可能会问,HJKL用来移动光标了,那我要输入这几个字母的时候怎么办?这就涉及到一个vim的重要概念:编辑模式。

vim分为三个主要模式,分别是普通模式,插入模式和视图模式。

普通模式,按键们作为各种快捷键使用,比如前面说的用HJKL移动光标,又比如用X来删除一个字符,又比如用R来替换当前字符……
插入模式,按I键就能在当前光标处进入(当然还有其他方法进入),这个模式就是普通的输入模式,和写字板无异。
视图模式,按V进入,这个模式可以初步理解为让你用键盘实现鼠标选择文本的功能。

简单举例,假如有这样一段文本:

队长别开枪! 是我!
怎么,原来是你小子?
是你把鬼子引上来的?
皇军托我给您捎个话,只要你缴枪投降....
啪! 白日做梦!你这个叛徒!我代表人民代表党我枪毙了你!

我想把第一个感叹号改成逗号,在第一行末尾加一个感叹号,在第二行后插入一行“是我。”在最后一句的最后再添上“啪!”

如果是写字板,正常的操作应该是如下的:

按5次右(把光标移到感叹号前面),按del(删掉感叹号),输入逗号,按end键(把光标移到句尾),输入感叹号,按下(把光标移到下一行),按end(把光标移到句尾),回车(新起一行),输入“是我。”,按3次下(把光标移动到最后一行),按end(把光标移动到句尾),输入“啪!”。

如果是用vim,则可以如下操作:

按5,按L(意思是光标向左移动一格,重复5次),按R,输入逗号,按shift+a(在句尾启动插入模式),输入感叹号,按ESC(返回普通模式),按J(相当于按下,把光标移到下一行),按O(起新一行并进入插入模式),输入“是我。”,按ESC回到普通模式,按3,按J(把光标向下移三行),按shift+a,输入“啪!”。

对比操作可以看出,vim全程你的双手不用离开主键盘区,可以很好的保持asdfjkl;指法,节约了很多在键盘上来回移动的时间(比如把右手移去按方向键,移去按end键一类),由于支持“重复进行”某一个操作,也能大大节约按键量。

当然,我举的只是一个最简单的例子。vim上手其实并没有想象中那么困难,真正需要记住的快捷键很少。等你在使用过程中,觉得vim有什么地方不顺手了,去查一下,就会发现vim其实有解决方案,此时你自然对vim的了解就更进一步,慢慢也就能进入vim这个神奇的世界了……
作者: sleepd    时间: 2011-3-12 03:13

posted by wap, platform: GoogleChrome

对于楼主说的中文问题,我试过搜狗输入法和gvim的兼容性很差,基本上不能用,google输入法和gvim配合的不错,当然你还是需要经常性的按shift切换中英文的输入状态……
作者: mirokuneal    时间: 2011-3-12 04:48

楼主我劝你还是算了吧

vim写代码虽然不错,但是我也认为跟远古时期*nix底下没有很好的IDE有关
现在有了eclipse,netbeans,vim很少用了都

至于vim写文档,那纯属蛋疼
作者: finalx    时间: 2011-3-12 06:55

posted by wap, platform: iPhone
引用:
原帖由 @iorilu  于 2011-3-11 23:37 发表
posted by wap, platform: GoogleChrome

emacs 和 vim 那个牛逼啊
这真不好说,设计理念不一样。不过想玩emacs得有点lisp的基础。
作者: 抠鼻屎的中指    时间: 2011-3-12 07:02

求total commander入门
作者: aleln    时间: 2011-3-12 08:23

vim写word文档没有排版,要想排版可以考虑vim+latex的组合,写大型文档非常爽!
在linux用过,windows下没折腾过~~
作者: dzgxg    时间: 2011-3-12 10:57

引用:
原帖由 抠鼻屎的中指 于 2011-3-12 07:02 发表
求total commander入门
张学思汉化版包里面本身带教程,善用佳软也有一些
作者: henvelleng    时间: 2011-3-12 16:37

引用:
原帖由 mirokuneal 于 2011-3-12 04:48 发表
楼主我劝你还是算了吧

vim写代码虽然不错,但是我也认为跟远古时期*nix底下没有很好的IDE有关
现在有了eclipse,netbeans,vim很少用了都

至于vim写文档,那纯属蛋疼
关于这一点,我之前就说过了,编辑器拼的是除IDE能够提供的功能以外的部分。同样的,也有些IDE会引入vim style和emacs style的操作,比如slickedit。换句话说,vim和emacs不止是编辑器,linux shell也同时提供了vim style和emacs style
作者: henvelleng    时间: 2011-3-12 16:44

其实我觉得掌握至少一种编辑器的使用是一项基本技能

不说编写文本了,很多人都会遇到处理文本的棘手问题,且往往不是简单的文本替换,可能是有选择性的替换,可能是规律性的调换某几个词或是某几行的位置,等等,关键是处理量非常巨大,靠手工去做根本不可能

这个时候,录个宏,几秒就干完了
作者: ibelieveicandie    时间: 2011-3-13 00:25

posted by wap, platform: HTC Bravo

为了vim蛋痛过两回,最后还是放弃了。说真的,哪怕是高负荷的编码工作,瓶颈也绝对不在打字速度上。随便一个像样的编辑器比如ultraedit,甚至免费的notepad++和text wrangler,至少都能实现98%你会用到的功能。另外2%的功能即便能用vi实现,但这种不常用的功能你也不会记住,还是要当场查文档,测试。一圈搞下来往往发现比暴力解决花的时间还要多。

这是个人经验之谈了。奉劝lz:life is short, play more
作者: henvelleng    时间: 2011-3-13 01:21

LS所言差矣啊,诸如快速插入空行和合并两行,行补全,所有光标移动操作全部带撤销和恢复,快速跳转到定义处,自定义文本缩写,内嵌的sed,页面自动分割,等等,这些是相当常用的

对码农来说,磨刀向来是不误砍柴工的,尽一切可能把自己从繁琐的文本格式化操作中解脱出来是码农们的追求。很多时候,思路远远比手快,因为很多都是框架性的代码,根本不需要动大脑
作者: ibelieveicandie    时间: 2011-3-13 06:23

对我而言,如果在code review时发现雷同代码出现三次,基本上就是个很好的重构信号。绝大多数代码应该是有意义而且不重复的。如果是语言相关的框架性代码,那么visual assist之类的intellisense工具已经可以减少绝大多数重复性劳动,无需自己去做过多编辑器的定制工作。

当vi出现的时候,其理念是两手不用离开主键盘就能完成几乎所有操作。在当时,多数项目都是一个程序员坐在电脑前敲出几千行代码,vi可以几乎完美的达到这个目标。可如今这样的机会是越来越少。开发时需要cross-reference的内容不再仅限于unix的man或者有限的api,而是google,stackoverflow,wiki,UML,mindmap甚至outlook。对于一个有一定复杂度的项目,程序员生成代码的速度实际上是非常有限的,往往平均一天不超过一二十行。编辑器的效率在开发效率中已经不占太大比重。
作者: 猫猫猫    时间: 2011-3-13 07:15

egg pain.
作者: sleepd    时间: 2011-3-13 16:15

posted by wap, platform: GoogleChrome

http://zh.wikipedia.org/wiki/Vim

wiki上的vim页面说的比我写的清楚多了……
作者: henvelleng    时间: 2011-3-13 16:15

引用:
原帖由 ibelieveicandie 于 2011-3-13 06:23 发表
对我而言,如果在code review时发现雷同代码出现三次,基本上就是个很好的重构信号。绝大多数代码应该是有意义而且不重复的。如果是语言相关的框架性代码,那么visual assist之类的intellisense工具已经可以减少绝大 ...
不是雷同代码,而是类和模板相关的框架性代码,填充各种属性方法,再调接口把这些对象推入链接符号表中或是链表之类的数据结构上或是单纯地填充方法函数。举个形象的例子就是不停的填写各种不同要求的申请表格,把自己的属性按框架的要求进行换算、填充和提交,并为上层框架提供具体的方法

参考资料,我80%是纯代码,20%是手册,的确不需要鼠标,呃,实际上,ubuntu所有操作都可以不用鼠标,包括查看xmind,只是看网页单手用鼠标比较舒服。另外写代码的时候我从不google wiki,google wiki的时候从不写代码,而且除了跑通的代码以外,我什么也不信,包括手册
作者: iorilu    时间: 2011-3-13 16:37

posted by wap, platform: GoogleChrome

确实, 写代码时最不爽的就是要用鼠标了, 不是速度的问题, 用鼠标可能会打断思路
作者: ibelieveicandie    时间: 2011-3-13 21:03

posted by wap, platform: iPad
引用:
原帖由 @henvelleng  于 2011-3-13 16:15 发表
不是雷同代码,而是类和模板相关的框架性代码,填充各种属性方法,再调接口把这些对象推入链接符号表中或是链表之类的数据结构上或是单纯地填充方法函数。举个形象的例子就是不停的填写各种不同要求的申请表格,把自 ...
看起来是需求不同。对我而言,平时写代码时需要同时参考或者试验的东西太多,填充框架代码的机会太少,所以输入效率影响不大。

你描述的这种场合我也遇到过几次。如果框架工作量大的话,是否直接做个代码生成器会更有效一点?我遇到类似情况一般都选择生成代码了。手写太累,也容易出错。如果以后框架接口有改动,改改描述文件重新生成一遍就解决问题。描述文件自己一般也有大块适合生成而不是手写的内容,不过一个简单的正则表达式转换工具就可以适应大多数情况。
作者: henvelleng    时间: 2011-3-13 21:18

引用:
原帖由 ibelieveicandie 于 2011-3-13 21:03 发表
posted by wap, platform: iPad

看起来是需求不同。对我而言,平时写代码时需要同时参考或者试验的东西太多,填充框架代码的机会太少,所以输入效率影响不大。

你描述的这种场合我也遇到过几次。如果框架工作量大 ...
不可能用代码生成器的,而且不是重复操作

无论是使用框架还是自己构建框架,在我看来都是这类无脑劳动,没有任何算法,设计模式早就规划好了,剩下的就是实现,但这种劳动绝不是代码生成器可以做到的,比如自己实现一个小型的网络协议栈,没难度,但是代码量很大,敲键盘敲到手疼

你一天10-20行代码的速度,我只有写验证程序调硬件的时候才有可能会这样,95%以上在看打印信息和JTAG查内存值寄存器值
作者: ibelieveicandie    时间: 2011-3-13 21:48

posted by wap, platform: iPad

完全理解。不过,就这种情况而言,是否能找到现有的开放源码实现?在一个现成的基础上修改,比重新发明轮子会更有效率也更有趣。
作者: henvelleng    时间: 2011-3-13 22:31

原样抄恐怕会有许可证问题的,反正这种活也不是天天干,不至于给自己找麻烦

在已有的框架上添加对象则通常会有类似的实现,这种代码是可以参考的,但也不是简单到可以复制粘贴,肯定还是有很多需要完全原创扩充的部分的
作者: cocoa    时间: 2011-3-13 23:00

先说说快速搜索,大部分的编辑器和ide都是ctrl+f,弹出个对话框,敲入搜索的字符串,点击确认,没什么不好,但有一点,如果这个单词不是很确定,或者是敲错了,还是要重来,vim的方式是/,然后即打即敲,编辑器会及时定位到搜索到的位置,边敲边高亮单词,如果没有发现这个单词,就不会有高亮,说明在这个文件里没这个单词,不要小看这个操作,在我的同事在数万行的代码里,因为记不清函数名称苦苦搜索,或者在ide数百行的函数列表里按字母排序寻找时,我早已经定位并解决了问题。搜索是基本操作,关键是效率啊,还有,sqlite单文件的代码好像有十几万行吧,ue,em等编辑器还行,我的visual studio和xcode通常都会死掉。
作者: breeze7086    时间: 2011-3-14 14:05

只用过linux vim写过shell脚本。。
感觉vim的确是写代码利器,普通文本并不是很适合
作者: Mozi    时间: 2011-3-15 02:22

引用:
原帖由 breeze7086 于 2011-3-14 14:05 发表
只用过linux vim写过shell脚本。。
感觉vim的确是写代码利器,普通文本并不是很适合
所以根本point就是把普通文本写成code, 从word转latex, 这样各种snippet, 跳转上色版本控制都有用了.




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0