{eval=Array;=+count(Array);}
真搞不懂,一個(gè)初中生稍微學(xué)一下就能熟練使用的編輯器為什么很多人以為用它來(lái)寫代碼就是大神?
這么說(shuō),如果像linus這樣,對(duì)Linux的API了如指掌(畢竟自己寫的),用Vim和用IDE是一樣的。但如果要調(diào)用別人的API,用vim就要花大量的時(shí)間去熟悉API,起碼得把函數(shù)名背下來(lái),要不然寫幾行就得去看頭文件。
還有,沒有語(yǔ)法預(yù)檢查,要消耗大量的時(shí)間在編譯上面,編譯報(bào)錯(cuò),檢查,修改,再編譯,再報(bào)錯(cuò)。。。
996就是這么來(lái)的。
------補(bǔ)充-------
很多程序員混淆了自由編程和商業(yè)編程。一個(gè)學(xué)生出于愛好維護(hù)一個(gè)開源項(xiàng)目,這是自由編程,自由編程是沒有成本的,開發(fā)成本和試錯(cuò)成本都是零。一個(gè)公司的員工為實(shí)現(xiàn)用戶需求開發(fā)一個(gè)項(xiàng)目,這是商業(yè)編程,商業(yè)編程有開發(fā)成本和試錯(cuò)成本,試錯(cuò)成本比開發(fā)成本更高,甚至是無(wú)法承受之重。舉個(gè)例子,一個(gè)嵌入式程序員,開發(fā)了一款產(chǎn)品,銷售了一百萬(wàn)件,用戶在使用中發(fā)現(xiàn)了BUG,那就得一件件召回升級(jí),這個(gè)成本是一個(gè)程序員無(wú)法承受的。很多程序員覺得那是測(cè)試部門的事,但測(cè)試部門測(cè)的是業(yè)務(wù)邏輯,程序邏輯人家連代碼都看不懂怎么測(cè),出BUG的往往就是程序邏輯。
所以,商業(yè)編程的本質(zhì)就是用最小的開發(fā)成本和試錯(cuò)成本實(shí)現(xiàn)用戶需求。用IDE的目的就在于此。
答案是有。我自己就在用,而且還用的很快樂。
公司的項(xiàng)目是純C語(yǔ)言開發(fā),代碼量大概有幾百萬(wàn)行吧,具體沒算過(guò),一套代碼下載下來(lái)有十幾個(gè)G。
開發(fā)環(huán)境是Linux + Windows,代碼的編譯主要是在Linux下面。最開始使用的是sourceinsight,可以生成函數(shù)調(diào)用關(guān)系,功能很強(qiáng)大。但隨著負(fù)責(zé)模塊的增多,si的反應(yīng)速度讓人難受,后面切到了vim。
在剛使用的時(shí)候,我經(jīng)歷了拿起又放下,又拿起又放下這樣反復(fù)的過(guò)程,大概持續(xù)了十幾次的樣子,最終停留在了vim上。vim是需要你要去適應(yīng)它定制它的。當(dāng)你適應(yīng)它后,會(huì)達(dá)到人劍合一的地步,指哪打哪。函數(shù)跳轉(zhuǎn),文內(nèi)跳轉(zhuǎn),關(guān)鍵詞高亮,項(xiàng)目?jī)?nèi)文件搜索打開,近期打開文件,符號(hào)搜索等等信手拈來(lái)。上面的優(yōu)點(diǎn)僅僅是在編輯代碼方面,還有一些額外的收獲是win上面無(wú)法替代的。
沒有任何一款軟件能解決所有的問(wèn)題,我們首先應(yīng)該關(guān)注的是top級(jí)問(wèn)題,發(fā)現(xiàn)并解決它
覺得vim不能開發(fā)大型項(xiàng)目的主要原因,是因?yàn)槟阌X得大型項(xiàng)目流程太多,變量太多,如果開發(fā)的軟件內(nèi)聚性不強(qiáng),你就需要記住很多的變量和流程,同時(shí)在多個(gè)文件中來(lái)回穿梭。如果沒有IDE的幫助,你就會(huì)覺得很困難。我的經(jīng)驗(yàn),如果你用面向?qū)ο蟮姆绞饺ラ_發(fā)軟件,當(dāng)你打開某個(gè)文件時(shí),你的思維會(huì)沉浸在當(dāng)前這個(gè)對(duì)象的變量和方法中,以及這個(gè)對(duì)象和相關(guān)對(duì)象的關(guān)系當(dāng)中,并不需要有較多的全局思維,因此腦袋里要少裝很多東西。同項(xiàng)目組的其他同事,大多是面向過(guò)程的思維模式,基本用的都是soure insight。我開發(fā)的軟件,有上百個(gè)文件,上百個(gè)對(duì)象,我是用vim開發(fā)的,不知道算不算你心中的大項(xiàng)目?
vim的特別之處在于它的移動(dòng)和操作方式都是利用鍵盤。對(duì)于編程人員來(lái)說(shuō)盲打鍵盤是必須的,所以全部利用鍵盤來(lái)操作其實(shí)比借助鼠標(biāo)要方便快捷。
使用vim,剛開始需要花點(diǎn)時(shí)間來(lái)練習(xí)快捷鍵,養(yǎng)成不用鼠標(biāo)的習(xí)慣。
intellij有vim的插件。很多人在intellij上用vim的方式編輯,既可以利用intellij的提示,編譯,調(diào)試功能,又可以利用vim的快捷編輯功能。不僅可以提高效率,還可以提高編程舒適度和幸福感。
那么多人在說(shuō)vim開發(fā)的種種好處,就沒見到幾個(gè)說(shuō)vim壞處的,好處就是vim敲代碼比ide更流暢,寫代碼真的要那么快的速度,你確定你腦子轉(zhuǎn)的那么快?vim真比ide好用?講得大家差點(diǎn)就信了,我說(shuō)這簡(jiǎn)直就是胡說(shuō)八道,vim永遠(yuǎn)比不上ide開發(fā)的速度,ide有智能提示,各種檢測(cè)幫助你在編碼階段消滅錯(cuò)誤,如果你電腦卡,請(qǐng)買臺(tái)配置高點(diǎn)的電腦,不要講ide卡,壓根就是兩個(gè)沒可比性的的東西。
當(dāng)然有,但是已經(jīng)非常非常少了。 開發(fā)大項(xiàng)目IDE可能更趁手,但是不代表vim不能用。
vim更適合用來(lái)編寫?yīng)毩④浖?。如Linux,中間件,游戲等等。
現(xiàn)在vscode,sublime,atom居多,這些都可以用vim快捷鍵,純的vim太古老了。
至于項(xiàng)目大小和這些工具沒有關(guān)系。甚至越大的項(xiàng)目,越不喜歡用ide,因?yàn)樾侍土恕_@些編輯工具是專門為編輯代碼文本設(shè)計(jì)的,從各個(gè)方面都對(duì)代碼編輯和搜索做了優(yōu)化。大部分ide都做不到這么細(xì)致。
甚至visual studio 的項(xiàng)目一旦大了,我都是用vscode寫,然后用make調(diào)用vs編譯。調(diào)試用trace。不到萬(wàn)不得已,一定要用斷點(diǎn)等,一般不打開VS。
如果linux下有visual studio這么好用的IDE,你還用vim嗎?Windows平臺(tái)就是生產(chǎn)力,那些上古神器一邊玩去。
我從10年開始用vim,結(jié)合tmux,nerdtree,taglist,ctags,再加上開發(fā)語(yǔ)言所用的插件,可以實(shí)現(xiàn)語(yǔ)法自動(dòng)檢查,代碼格式化等常用功能。你永遠(yuǎn)不會(huì)為ide占用太多資源煩惱。還有個(gè)好處,你會(huì)對(duì)常用函數(shù)掌握的很溜。開發(fā)大型項(xiàng)目更能體現(xiàn)vim的性能優(yōu)勢(shì)
0
回答0
回答10
回答0
回答10
回答0
回答8
回答0
回答10
回答0
回答