Ⅰ 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檢查功能,而不是維護一個分離的組播路由表實現組播轉發