[研討會的Vim] [劉布蘭登] [哈佛大學] [這是CS50。] [CS50.TV] >>今天將是一個介紹Vim的。 怎麼你們的很多人聽說過的Vim? 你聽到了什麼關於Vim? [學生]:它解決了所有的問題。 [布蘭登L.]它解決了所有的問題。 別的你們聽說過Vim的?任何印象如何? [學生]幾乎每個人我已經說過了喜歡使用Vim的。 哦,甜美。 [學生]:很多人都知道我喜歡用Vim。 好吧,這是很好的,因為有很多人在CS51 開始回升的Emacs,因為Emacs有稍微更好的支持 對於語言你會在CS51使用, 我擔心沒有足夠的人在哈佛使用Vim, 所以我真的嘗試做鼓勵Vim的使用方面做得很好。 >>但這裡是一個典型的XKCD漫畫的你們可能會覺得有趣。 有你們用納米之前呢? 這本漫畫說納米?真正的程序員使用Emacs。 嘿,真正的程序員用Vim。 不,真正的程序員使用愛德是這個 - 你永遠不要想用埃德。 這是真的,真的老了,真的太差了,真正的程序員使用 磁化針和一個穩定的手。 而且你可以閱讀休息,但它是相當有趣的。 而有趣的是在最後。 他們說,“當然,哦,是的,有一個Emacs命令來做到這一點。” 好老的Cx MC M-蝴蝶,這是一個排序時戳的Emacs 因為Emacs的是歷史上被稱為是一個有點臃腫 並有命令,幾乎所有的東西,所以這是個玩笑似的為Emacs的。 Vim是什麼? VIM是一種先進的程序員的文本編輯器。 我真的想使文本編輯器之間的區別 和類似的文檔處理器。 Microsoft Word中被稱為一個文件處理器。 可以設置頁邊距,使事情加粗,加下劃線的東西, 通過罷工的事情,改變字體大小和諸如此類的東西。 一個文本編輯器做無非只是編輯文本。 從字面上看,你只需要字符。 有沒有那種造型,大小,字體,顏色,或類似的東西的。 你要做的就是編輯文本,而Vim編程而特別製作。 它有很多內置在短短的編程功能。 它明確地專為高效的文本編輯。 >>總的來說,Vim中是已知的,基本上最快的文本編輯器 你可以使用一個帶任何其他文本編輯器,有可能進行比較。 很多IDE的類似的功能不直接內置到Vim中, 所以如果你使用的IDE和你已經習慣了像編譯和自動運行 或調試什麼在你的IDE或不同的東西一大堆 Vim不會來與自然, 但有一大堆的插件,你可以用它來之類的功能添加到Vim中。 Vim的本身側重於文本編輯和做文字編輯真的,真的很好。 最後,它是真正可定制和可擴展的, 而且基本的Vim已經出現,或VI,其中的Vim是建立在, 已經存在了超過40年,這是一個非常,非常深的程序, 人們會用它一輩子,從不真正掌握程序發揮到極致, 而你將永遠繼續學習貫穿你的生活,多年來, 總是越來越好。 >>有基本沒有結束你可以學到什麼,有多少你可以用Vim的提高, 這實在是令人振奮的。 你不想把它當作可怕的東西,因為你可能會變得非常,非常精通 在Vim中,在短短幾個星期,但它有點像一個持續的, 你總是可以學到更多,學到更多,做的東西好, 這對我來說是很興奮。 這是一個什麼樣的Vim看起來像一個例子。 這不是我的。你會看到一些現場演示現在。 這是Vim的可能是什麼樣子的例子。 >>什麼我們今天要做的是我們要開始了與  快速展示一下Vim可以做。 我會做一些技巧和諸如此類的東西對你們 所以你可以看到為什麼我喜歡Vim的這麼多,為什麼人們喜歡Vim的那麼多, 然後從那裡我們將進入一個簡單的介紹。 事實上,這將是一個有點快,介紹了Vim的。 我會問你們去下載一個文本文件,並與我跟著如果你能。 這是Vim的,而且在這裡我使用的MacVim, 所以如果你們有蘋果電腦你可能要考慮使用的MacVim 因為它的Vim的圖形化版本,雖然正規的Vim, 什麼在你的命令行,工作得很好。 我要告訴你一些隨機的技巧和竅門 您可以使用Vim會告訴你為什麼它是如此涼爽。 >>就在幾個隨機的東西我會去。 的第一件事是文本對象,並有周圍的文本對象的幾個命令, 而我居然會教你什麼文本對象在後面詳細的研討會上, 但例如,讓我們說我我的名字拼錯, Barndon劉,我想改變它。 我所要做的就是讓我的光標在某個地方我在命令名稱和類型 CIW,它會刪除我的全名,把我在插入模式下, 我可以輸入我的名字,並修復它。 同樣,如果我想改變引號內的東西有也是一個命令。 我可以刪除引號內的東西。 沒有更多的雙擊,移動你的手放在鼠標, 雙擊,然後輸入一些內容。互動 您可以從鍵盤做的一切,不管它是什麼。 或者,或者,讓我們說我有這樣的圖像標記這個錨標記內。 >>有你們的HTML覆蓋在課堂上了嗎? 是啊,也許我想刪除這個標籤, 通常你所要做的就是,你必須使用你的鼠標 並仔細高亮顯示您希望刪除,並刪除它到底是什麼。 但在Vim中,這根本DIT,你真的可以快速刪除它, 我會向你解釋什麼所有這些命令的意思是,你如何使用它們在第二。 另外一個例子,我有一些代碼在這裡, 讓我們說我要縮進的代碼,但我要縮進的代碼 只是在括號內,而我也可以使用3個命令縮進代碼 使用基本> IB。 另一件事,真的很酷關於Vim是一種叫做可視塊編輯。 我不知道,如果你們曾經想突出 文字在你的代碼中的矩形塊,有時 而不必做這種怪異的那種東西線跨越所有不同的線路。 例如,在Vim中你可以做到這一點。 我可以突出顯示矩形就是這樣,這是很酷, 但同時,我可以編輯使用該功能。 例如,如果我想給一些前綴給我們所有的名字 我可以突出一個塊,然後添加一些東西。 >>同樣,我也可以突出這個塊,並選擇將其刪除, 也許我將重點介紹該塊並將其更改為D,因為我們都是醫生。 不管是什麼,你可以做所有這些不同的事情。 最後,折疊是真的很酷。 很多的IDE有這個,你可以折疊不同的功能拿出來看 如果你不想看到他們。 例如,假設我有這樣的一堆文字在這裡,我真的不希望看到它。 我想保持它的看法,因為我編輯別的文件中。 我可以把它折疊起來使這一切都崩潰了, 而這種方式是拿出來看, 我可以編輯的頁面上的其他東西,這真是太棒了。 您可以折疊起來的功能和諸如此類的東西或折疊起來的類,當你編程 只是為了讓他們拿出來看,當你不編輯它們, 後來當你想看到他們,你可以打開它們。 而且你可以看到它剛開業一切。 製表符,緩衝區和窗口。 Vim的是在這很酷 通常在很多文本編輯器只能編輯一個文件時, 像納米,或者如果你使用記事本或gedit的。 我其實從來沒有使用gedit的非常多,但至少在記事本+ + 你可以有標籤,但Vim有標籤,緩衝區和窗口的概念。 例如,您可以打開了一堆新的標籤。 >>您可以在這裡看到,在最高層我現在有一堆選項卡, 我可以關閉它們。 另外,還有緩衝器的概念, 這是想法,一旦你打開一個文件 它停留在活著的緩衝區,如果你想真正快速定位到該文件 您可以在緩衝區內找到它真的很快為好, 進而,在一個窗格中,您也可以分割你的窗口分成多個窗口。 舉例來說,如果我想要分割窗口分成多個窗口 你可以看到在這裡,我可以有兩次相同的密碼, 我可以分裂越來越多,而現在它看起來並不好 因為默認情況下我有默認的窗口大小是那種大 因此,所有的人都壓扁了, 但通常,當我在我的電腦,而不是這台投影機上 我可以有幾個窗格打開在同一時間,這是非常好的對 編輯多個文件在同一時間。 你也可以有東西像選擇和替換, 我們將實際上涵蓋在研討會上, 所以我將跳過,對於現在。 您也可以用在各種不同的方式在命令行交互。 例如,如果我這裡有一些名單,我想對它進行排序, 我不知道,讓我們添加另一個水果,葡萄, 我可以使用高亮功能突出這 並調用排序,它會自動排序對我來說。 >>同樣,如果你​​要進行編輯的CSS,我相信你可能會做 為您的最終項目,大多數人做的, 也許你想保持你的CSS按字母順序排序這些組織。 您也可以選中它們,並調用排序,它會整理它們。 這些都是一些的東西,Vim可以做例子, 你會發現,我真正想要的關鍵是要提請你注意 是,我是從鍵盤做的一切, 如果你能看到我的手放在 你還會看到我的手從來沒有真正從母排移動。 通常,當你正在編輯的文本,通常必須先使用鼠標 並點擊和諸如此類的東西,和那種運動的拖累你失望 和浪費時間,或者你家裡行和箭頭鍵之間移動, 所以你來回移動這樣的,這是一個有點麻煩 但也減慢你失望的,就是一旦你在Vim的真的很不錯 你想要做的一切,而不必移動你的手做 從母排,這是偉大的。 等一下,我要打開這個應用程序。我們走吧。 >>現在你可以看到什麼命令都跑到右下角的窗口。 所有,我只是表明你是被默認包含Vim的東西的功能, 但也有一個巨大的插件,你也可以用數 提高你的Vim的經驗。 如果您下載了我包括配置文件, 並有關於如何安裝他們在PowerPoint中的說明 以及在電子郵件我送出去,我已經安裝了約40插件 也許30插件,每一一個 帶來了額外的功能,Vim會提高你的Vim的經驗。 例如,我的最愛之一是一種叫做surround.vim, 它基本上可以讓你與周圍的工作 或分隔字符更容易。 >>一個例子,我不知道你們在LaTeX永遠代碼, 但乳膠是一種用於使一個數學排版語言 非常好看的數學,每當你想要的東西看起來像數學 你把它包在美元符號,並讓我們說我打字的一些公式如F = MA, 我忘了把它包在美元符號。 然後,我可以強調這一點,並把它包在美元符號就這樣。 另外,Vim允許你刪除標籤內的事情 和刪除標籤和諸如此類的東西,但Vim的性質 不允許您更改標籤,因此,例如,我有這樣的div標籤, 我想升級到HTML5和使用新的頭標記。 我可以做改變周圍的標記和類型的頭, 它會自動改變,對我來說。 同樣,假設我們有東西在括號中, 我想改變,從括號放在括號中或類似的東西。 我也可以改變,真正輕鬆地通過鍵入C語言的變化, S代表環繞,括號中。 哦,我想我必須更快型。 括號和大括號或中括號,它會自動改變,對我來說, 這是非常好的,否則通常它真的很麻煩。 >>這是非常好的也許單引號之間切換 和雙引號字符串或類似的東西。 這是一個示例用例。 有一個叫逃犯插件 它集成了使用Git。 我猜也許你們還沒有使用Git的那麼多的CS50, 但你會發現自己使用Git越來越多, 不僅在整個班級哈佛,而且在工作和諸如此類的東西, 而通常你必須之間來回切換 命令行和Vim用Git的互動, 但有插件來使用Git從內部集成Vim 同時也給你的Git之上,甚至更多的功能。 還有一種叫NERDTree,你可以用它來探索 該文件結構在Vim內。 >>例如,我可以打開NERDTree在右窗格中, 你基本上可以看到隨機文件 和開不稅,不看我的稅。 你可以看一下文件和諸如此類的東西,並打開其他文件等等等等。 我不會去為其他的插件,所以我們基本可以在潛水 並開始開發Vim,但也有插件,讓您 更輕鬆地發表意見,插件,讓您更輕鬆地跳檔之間, 插件,讓你的語法在Vim內檢查, 這是真的很酷,和它給你的語法檢查 對於大多數語言正確的開箱即用, 事情像彩虹括號,這實際上是真的,真的很酷。 讓我給你這樣一個例子,現在。 >>讓我們來看看。 下面是我在寫一些隨機代碼, 你會發現,括號和括號都是彩色的, 和同色的括號和括號匹配,這是很好的 有時提高了代碼的可讀性。 您還可以自動完成,表格格式。 當你有,你想獲得的所有註釋排隊的東西 或者你想使一個表中的文字,你要 把一切看,而不必手動格式化,像一個漂亮的表, 有插件,會格式化你等等,等等。 這樣的例子不勝枚舉和和。 我可以花時間探索所有存在不同的Vim插件, 和它的令人難以置信的外面的東西。 >>到目前為止,有問題嗎?甜蜜。 在這種情況下,我們將開始用Vim玩弄, 我想你們的工作有一些Vim的我 這樣你就可以感受得到它,我可以指導你用Vim工作的第一步 因為很多人不堪重負,當他們打開Vim的了, 有時,如果你甚至不知道該命令退出,你甚至不能脫身的Vim, 但它不是那麼糟糕。 你只是從別人誰也有用的Vim需要指導幾分鐘 或閱讀一些教程在網上,你會用自己的方式在任何時間。 這裡有一些說明來安裝Vim的,如果你還沒有。 你可以提出後看看這些幻燈片,如果你想安裝更多的東西。 >>此外,這些都為我的安裝配置文件的一些指令, 你也可以在以後遵循這些說明,如果你還沒有。 如果你們可以去這個網站,並下載一個文本文件。 該鏈接將帶你到這個文本文件,我想請你下載並在Vim中開拓, 並有一堆練習和諸如此類的東西在那裡,你可以和我一起跟隨周邊 並開始得到一些做法與一些Vim的基本操作。 好。 當你打開那個了,我要去給一個簡短的介紹,以2真正的關鍵原則 在Vim的編輯,這是真正重要的是了解你潛入Vim的時候, 這就是模式的編輯和運營商和議案。 我將介紹莫代爾編輯第一,然後我們將討論運營商和運動 在一點點。 Vim的和幾乎所有其他的第一個關鍵區別 任何形式的文本編輯器就是Vim的是一個模式的編輯器, 而當你使用Vim的意思是指 你可以在許多不同的模式之一。 有普通模式,還有插入模式,有可視化模式, 等等等等,而事情是,你的按鍵採取不同的行動, 採取不同的含義,這取決於你是哪個模式中。 正如一個例子,正常模式下是你,當你走動的方式, 所以我會用鑰匙J可向下移動, 但在插入模式下,您可以使用鍵J可實際鍵入通知J在屏幕上, 這就是為什麼很多人感到困惑,因為他們不習慣 在不同的模式是所有的時間,所以他們會打字出來的東西, 而你習慣了不管你輸入顯示在屏幕上, 但在Vim中也許你的光標移動所有的地方 因為你輸入的字符怪異,突然你會得到 轉移到插入模式,因為您鍵入一些關鍵 這使你進入插入模式,然後文本開始飛了出去, 很容易讓人因為這一點困惑。 但是你要跟踪你在什麼模式下, 並且,如果你的Vim的底部工具欄 應該有一個指示燈,告訴你,你現在在什麼模式下, 這應該是有幫助的。 >>但在一般情況下,3個主要模式,你應該知道, 有可能只有6或7或8或模式的話, 但是你花大部分的時間在3。 第一件事就是正常模式。這是你花你的大部分時間。 所有擊鍵記錄為某種命令, 而我們將全天今天學習了很多的命令。 另一種模式是插入模式,這就是你真正打字出來的東西, 和插入模式基本上是你平時用的模式。 你輸入的東西,它只是涉及在屏幕上, 和視覺模式的東西,你可以做高亮。 你前面看到的地方,有時我會被突出顯示文本 並操縱它以不同的方式,那就是使用可視化模式的一個例子。 >>我們將與您需要在Vim中生存的絕對基本的開始吧, 它基本上是這7個命令就在這裡。 HJKL使用來瀏覽周圍的文件, 和它們對應於左,下,上和右, 而你可以自由地使用箭頭鍵為好, 但我們真的鼓勵您使用HJKL盡可能 因為這個想法是,你正在編輯的同時,你可以在文檔中移動 而無需移動的箭頭鍵之間 並在你打字,這是真的,真的很好。 你只是想在移動幾個字符。 你沒有給你的整個移交移位,這是種不錯的了。 一些Vim的專家其實他們的方向鍵映射到其他功能 因為他們已經有HJKL,並且它們可以用於其它功能的方向鍵,以及。 HJKL移動你身邊,而你在正常模式。 如果你想進入插入模式並輸入一些內容 您可以按i插入模式,並讓你在插入模式下, 您可以輸入一些東西,而你輸入逃逸 從插入模式,回到正常模式。 逃避永遠向您發送回正常模式 無論你是在的,如果有什麼模式,你要離開 您可以鍵入:WQ進入, 你能記住這一點的方法是w代表寫, 和q表示退出,所以:WQ, 和結腸運行命令,所以:WQ輸入要運行的命令 保存並退出。 >>如果你打開該文件了,我們將通過第一個練習一起去。 步驟1尚存在Vim中, 並希望你們都有這個開放。 好了,我們有一些簡單的練習,為您習慣使用這些鍵。 HJKL確實似乎直觀起初不, 這是初始塊1,而使用Vim的人們有 就是使用這些鍵來瀏覽周圍。 這不是直觀的,但一旦你習慣了它 果然集成到你的頭腦,而且很多人經常發現自己 在Word或同時在Chrome中使用J和K, 實際上人們已經創造了這個瀏覽器插件叫做Vimium 您可以使用在Chrome或鉻來瀏覽Chrome瀏覽器 用Vim般的快捷鍵使用鍵盤, 所以人們都非常熱衷,但繼續嘗試和使用 HJKL的數字之間進行導航,所以您可以熟悉 這些東西是如何工作的。 >>一旦你完成,你也可以去玩弄這個迷宮,我創建 只是為了好玩,你可以排序按照虛線 盡量不要撞到牆上 並盡量做到迷宮的盡頭。 如果你使用Gmail的快捷方式或任何數量的不同應用 你會發現,J和K,例如,經常被用來上下移動, 而且主要來自Vim的本質,所以你有J和K, 它真的很好,因為你可以上下移動,而無需 移動你的手來回的箭頭鍵。 現在讓我們嘗試進入插入模式,走出的插入模式。 你會發現,現在我的光標是一個大大的黑盒子, 而當你進入插入模式,你會發現, 它變成一個狹窄的游標就像你已經習慣了。 如果你使用的Vim的終端,你可能不會發現這是事實 因為終端不支持這種薄光標, 但如果你使用的MacVim或gVim的Windows上 然後你會發現,它變成一個游標,這是一個非常快速的可視指示器。 這對你,告訴你無論你在正常模式或插入模式。 >>讓我們繼續前進,並嘗試編輯這條線。 它使用自己的信息或不管它是補中, 以及如何做到這一點是您可以移動到空白的結束, TYPE I進入插入模式,你可以退格 並輸入你的名字,當你完成輸入 您可以按Escape鍵離開插入模式, 你可以搬過來這裡,類型插入,刪除的是, 鍵入逃生擺脫插入模式,你可以輸入:w進入 保存該文件。 您可以輸入剛:w來保存文件。 您可以輸入剛:Q不保存退出, 或者您可以鍵入:wq保存並退出。 當然,我們並不想退出,因此你可以鍵入:瓦特 也許這似乎有點低效先 因為移動到那個地方你不得不J型一群倍, 也許我一堆時間去那個地方, 你必須按退格一群倍,似乎真的沒有效率 而通常你可能會移動你的鼠標移到那裡, 雙擊並開始打字,當然, 事情是,當你第一次開始Vim的,你只知道這些基本的命令, 是的,這將是一個有點慢,但很快你學習一些更強大的命令, 這將允許您在整個文件更快速地移動, 你不會有這個很麻煩的使用 重複的JS和重複KS和LS等等等等。 >>到目前為止,有問題嗎?固體。 返回到PowerPoint中。 現在,我們要引入先進的運動幾個命令。 你經歷不必鍵入也許我有很多或H了很多, 這裡有一些更多的命令,你可以用它來更快地走動。 假設你的光標在O上的一些“這是一些文本。” 這裡有5個命令,你可以用它來跨線更容易移動。 所以,^和$分別移動到開始和結束行, 在某些時候,當你學習正則表達式或其他各種事情 你會發現,這些排序約定的情況非常普遍。 在^一般是指該行的開頭。 元通常指的是行的結尾。 這些都是很容易記住,同樣,B,E和W, 他們容易記住的好,因為B對應到後或開始, E對應於目的,它是字的結尾, 和w對應到下一個單詞,所以w代表詞。 如果你繼續鍵入e或繼續鍵入瓦特 你發現你可以字之間跳躍,而且它不僅僅是打字升得更快。 >>現在,接下來的事情就是操作符 - 動作模型。 其實,這是關鍵原因,Vim可以這麼強大的一個, 並且那是因為你基本上可以組成不同的元素 為更強大的功能,所以一般 當你在Vim中做任何事情,你可以把它作為 結合運動操作。 到目前為止,我們只處理了動作,像HJKL。 他們移動你的周圍,然後B和W,他們也打動你身邊不同的方式, 但我們還沒有去還沒有能夠刪除的東西或改變的事情,或諸如此類的東西, 而當你把運營商提供的運動那麼你就能夠有 更強大的效果,因此,例如, 如果我想刪除2個字,我可以用d表示刪除操作員, 我可以添加一個2來表示我要刪除2個字, 然後我有一個運動。 我可能包括瓦特說刪除2個字。 我可以使用類似J可說刪除下調2倍 並刪除2行我下面。 我可以說D2B刪除向後兩次, 並有比那些我在這裡表現得更加運動 真的,真正使您的Vim編輯功能更強大。 >>這些都是一些最流行或最常用的運算符 而且很容易記住。 D表示刪除,C改變。 C是基本上是完全相同的東西改變,只是 當你自動使用C你得到把進入插入模式之後。 通常,當你使用刪除您從正常模式下使用它, 你刪除你留在正常模式下的東西後。 但是,如果你想改變的東西,你可以使用C 刪除的東西,然後立即進入插入模式 這樣你就可以開始輸入文字和修復的東西。 Y是為粘貼。 它基本上是複製的Vim的概念。 例如,如果我想複製下一個2的話我可以做Y2W或類似的東西, 和v是用於高亮顯示,基本上。 還什麼是真正酷的是,如果你輸入一個操作符兩次 它會作用於整行,所以如果我要刪除一整行 我可以輸入dd來刪除整行, 或者,如果我想複製整行,我可以使用yy或類似的東西。 >>讓我們來試試這個更多一些。 這裡有一個在這裡鍛煉一個先進的移動運營商,以及 甚至一些其他的事情我不打算在今天將PowerPoint覆蓋, 但你可以隨意查看他們後來和玩弄他們 並熟悉它們。 操作符與動作。 例如,假設有你只是想在句子中刪除這些2個字。 什麼,你會想要做的就是你要確保你的 光標在要刪除的第一個字的開頭, 您可以輸入D2W,它將刪除那些2個字給你。 並使用這個確切的命令,D2W,似乎有點麻煩 和毫無意義的,但它應該表達的想法 您可以以防萬一撰寫這些不同的東西,也 你碰巧是在這種情況,那麼你就可以最終使用DW或D2W, 這點我偶爾使用。 DD和CC我用得更頻繁,因為你可以在整個線採取行動。 >>例如,讓我們說我有這樣的隨機列表在這裡, 也許我想刪除,說哈士奇,因為它不適合就行了,只是因為, 我不希望它進入插入模式之後。 我想刪除它,在這種情況下,我可以鍵入日, 並且,將刪除整行。 但是,假設現在有,我要刪除這個其他線路, 但我也想修復它,並重寫它,在這種情況下,我會嘗試像CC, 並刪除整條生產線,但使我在插入模式下,你可以看到, 我可以從那裡修復它。 而且有很多很多不同的方式,你可以結合運營商和議案, 和您使用Vim越來越多的您更多地了解不同的方式 您可以使用這些命令,你會變得越來越好。 真棒,現在這裡有一些其他雜七雜八的命令 這也是非常非常常用的,也將幫助你成為在Vim的更好。 >>比如,我們談到了小寫字母V的視覺高亮顯示。 我們也可以使用大寫V的視線高亮。 這樣,你可以很容易地突出在整個時間線等等。 您可以使用O當你在正常模式下,基本插入新行 線下你目前並付諸插入模式開始打字。 您可以使用小寫字母x刪除的字符這是你的當前光標下。 您也可以使用u撤消,這是種不錯的, 您也可以使用大寫字母A追加到當前行的末尾, 所以也許你的光標就行了某個地方,你要添加到該行的末尾。 然後,您可以鍵入大寫的A,立即跳轉到該行的末尾 並進入插入模式,這樣你可以添加到該行的末尾。 >>我覺得我有一些更多的練習了,我們可以嘗試一下。 事實上,我沒有,我沒有。不是那些。 但是,我們有下一節我們將看到一些更多的練習。 但是,這些你可以嘗試自己為好。 例如,如果你在正規的V型,你會得到你已經習慣了喜歡這個經常高亮。 如果您在首都V型,你可以得到全系強調這樣的, 或者如果我輸入的鄰它基本上會打開一個新行對我來說,這是種不錯的。 X I可以用它來刪除字符上的光標。 我可以按x一群倍和刪除的東西。 我可以按u撤消了這一切。 A,我可以鍵入立即到該行的末尾, 我也包括了許多很好的鑰匙 您還可以看看介紹之後,學習一些其他命令。 [學生]有什麼替代呢? [布蘭登L.]更換也很酷 基本上,如果你去的地方 - 你有沒有,人們並不真正使用它那麼多了,這些天, 但你們見過在Microsoft Word中,如果您鍵入插入 你突然進入這個奇怪的模式,你輸入的每一個字符 基本上取代了下一個字符? 我不知道,如果你們已經見過了。 這是類似的。 例如,如果我想覆蓋什麼我現在有出於某種原因 我可以輸入大寫的R,而現在我會在替換模式下,你可以在左下角看到。 如果我輸入的東西它覆蓋的東西,我也可以退格,這是一種很酷的, 我可以撤消。 我不使用,很多時候,但每一個現在,然後它變得得心應手。 >>讓我們來談談文本對象,這是我的一個關於Vim喜歡的東西,說實話。 文本對象基本上都是定義某種文本塊的這個概念 您的文本文件裡面,我就去了這些鍵第一, 然後我會給你一些示範讓你更充分地明白這意味著什麼。 W是指一個單詞,如文本對象作為一個詞, 所以有些話,你通常知道, 如果有標點符號的字旁 那麼它將不包括標點符號一般。 但是,舉例來說,如果您要包含標點符號由於某種原因 或者你正在做的事情,這不是英文,你要包括 所有由空白劃定的字符 您還可以使用資本W到得到的四周空白的一切。 您也可以使用括號來引用文本對象 這是一組括號內。 你可以做同樣的事情用方括號,尖括號, 花括號和引號為好,最後, 您還可以使用T指一些標記。 >>讓我來告訴你如何實際發揮出來。 例如,這是我在我展示的第一個例子。 有在這句話中的一些詞,我想改變, 我們聊大約W被用作運動, 但你也可以把它作為像這樣的文本對象。 例如,一個方法,我可以改變奧巴馬的名字或基本修改 是我可以去這個字和類型的開始在C的變化和w代表詞, 並且,將刪除整個單詞並把它變成插入模式。 但它是非常惱人的,讓我有去的話所有的時間的開始。 這真的很煩人。我不希望有這樣做。 其實我可以在裡面他的名字在任何地方 並在CIW,而i代表內心, 所以,如果我輸入CIW它代表改變一個字, 或者換句話說,改變我目前裡面的字, 它會給你確切的同樣的效果。 你可以解決這個問題。 >>同樣,也許我有一些像這樣的情況下, 其中由於某種原因,也有一些分隔符或者類似的東西, 或者有一些標點符號,我想刪除整個事情。 如果我輸入CIW它會刪除什麼這些定界符, 但我想拿到的四周空白整個事情, 所以我可以使用CIW刪除整個事情。 我會輸入5,做同樣的事情,並在六人。 同樣,如果我想改變的東西,在括號中 我可以在CI型)刪除一切的括號內 然後填寫任何我想做的事情,如int的argc,不管你想要做什麼, 同樣,同樣的事情引號​​。 我可以修復文本的引號裡面, 而且我還可以改變的事情,是標籤內。 這是否有道理? >>你可以做的另一件事情是你沒有用c。 您也可以使用d如果你想刪除什麼這些標籤裡面。 如果我要刪除一個標籤內的文字,我可以使用DIT刪除該標籤。 我也可以用維生素突出什麼,在標籤內,例如。 另一件事是,而不是用我在中間,你也可以使用, 這代表所有的,所以記住,如果你使用我會​​參考文本對象 或使用的包含在定界符文本對象, 但如果您使用的是它將包括文本以及作為分隔符本身。 例如,如果我想強調這個文本及周邊標籤 我可以使用增值稅,V為視覺亮點,一為all,然後噸的標記。 你可以做這樣的事情為好。 也許我要刪除這個google.com與它周圍的引號為好, 我可以使用類似噠“刪除所有的,例如。 >>到目前為止,有問題嗎? 我知道我對你傾倒了大量的Vim命令的全部一次, 這基本上是因為我要揭露你的所有不同的命令 給你介紹了這些命令在Vim中。 但是,當你回去什麼事情要發生的是 你將不得不慢慢地拿起這些命令一個接一個。 你不想壓倒自己,因為那是過於龐大。 如果你想拿起Vim你要真正做的是 開始第一個基本集,我已經打破它分為教訓你 使您更容易遵循,並嘗試和掌握每一個命令​​集 一個接一個,每次一個。 這是太多的事情要做面面俱到,所以當你回去是你應該做的 去的第一課,這是HJKL,插入模式,逃進正常模式, 和保存並退出,而這一切你真的需要在Vim中生存, 並獲得非常,非常舒服。 以後一旦你很舒服的那幾天 你應該移動到更先進的運動運營商, 更先進的運動,並在給運營商等等等等。 >>我知道我經歷了很多,但我希望得到你接觸到了很多不同的東西。 但是,如果你準備好迎接挑戰,我可以告訴你 如何使用大多數我們今天剛剛獲悉把這一切放在一起, 你也可以跟著,如果你想, 但是我創造了一些隨機的運動。 假設我們有某種名冊這樣 在那裡你有這些塊用別人的名字, 房子,年,濃度和諸如此類的東西, 你想添加自己的新條目。 什麼是為你做這一點的最好方法是什麼? 讓我們像這樣做。 我們為什麼不首先強調這個塊。 你會選擇它,我們可以按y鍵猛拉它, 所以現在我們基本上可以複製和粘貼第一這個模板 而不必從頭開始重寫了整個事情。 現在,我會按J鍵向下一堆次下井, 我會按p來粘貼。 也許我會加上一個空格一些額外的線條, 並讓我們說現在我想改變你的名字的人。 然後我就可以去這裡並在C2W像以前一樣改變這個名字。 鮑勃·瓊斯,誰知道。 也許,如果我想改變房子我可以去到中間位置 和類型的CIW,把卡博特眾議院。 >>這裡可能是,您可能要考慮使用一個例子 替換模式下,如果你想改變你的畢業一年, 或者我們也可以使用CIW為好。 不要緊 也許你想改變你的專業。 而這就是你要做的。 也許我會給你什麼,我可能會做一個示範 如果我是,如果你繼續學習Vim的更高級的命令 因為我們幾乎沒有劃傷表面在這裡, 我可以做這樣的編輯速度甚至超過了我在這裡向您展示 因為我知道更多的命令,我還沒有得到一個機會展示你今天。 例如,如果我想強調這我能做到它這樣, 向下移動。 我已經添加了我自己的映射 基本上自動突出顯示的東西對我來說 我可以,我不知道。 我的意思是,這只是想告訴你,你可真,真 開始編輯東西比較快,尤其是當你把所有這些不同的領域, 而且通常你可能會做的是那種一下 並強調,然後鍵入。 你可以做的一切一下子,複製和粘貼, 向上和向下移動的文件之間, 剛剛劃定的東西,格式化的東西。 這一切都可以在Vim的多,更快速地完成。 >>最後的一點點東西,我認為可能是非常好的, 這是查找和替換。 那些你們誰使用Gmail的快捷鍵 你也知道,如果你鍵入/它發送到你的搜索框, 而在很多不同一般的應用程序,你會發現斜線 也許控制斜線或是與斜線 將會把你帶入某種搜索模式, 而這也主要來自Vim的本質 因為斜線運營商或斜杠命令允許你輸入 某種形式的字符串,你可以用它來在文檔中搜索。 你可以n和資本n轉到下一個和以前發生的, 你也可以使用類似的搜索和文檔內更換。 我給你什麼可以做一個示範。 >>也許如果我想找到這個文件中的字符串抽出的所有實例 我可以鍵入/猛拉,因為你可以在左下角看到, 當我輸入輸入它強調所有實例。 我可以使用基本上n到來回跳轉所有這些不同的實例之間, 讓我們假設我要搜索和替換抽出一些隨機單詞 這也是在文檔中。 我可以按:開始輸入在Vim某種命令, 一些命令,這比走動更複雜 或刪除或類似的東西。 我會鍵入%符號來引用我想用這個替換命令 在整個文檔。 鍵入以s為替換。這來自於珍珠本質。 而這一個命令,你會發現珍珠一個非常標準的命令 而不是和其他編程語言,你會 可能會開始學習,因為你做更多的計算機科學, 我基本上可以使用/在我要查找和替換的單詞鍵入/,類型 然後鍵入另一個/在什麼的話,我想替換這個詞型。 誰知道,也許nyancat。 我這樣做,然後你會看到一切都得到了更換。 >>但是你會發現,有這個詞在這裡。 由於某種原因,我們的部分抽出的實例將被替換,但不是全部 那是因為路這樣的說詞已經寫入 不僅在Vim的,但在其他地方是,當你運行該命令替換 它只會替換每一行中的單詞的第一個實例, 所以如果我想其實在替換每一行字的所有實例 然後我必須做同樣的事情,但將銀旗在最後, 這代表全球,然後,將實際 替換所有實例。 而一旦你學會了正則表達式,那裡實際上是一個CS50研討會 正則表達式,所以如果您想了解正則表達式 你也可以採取座談會,了解更多。 >>但是例如,讓我們說我有一個這樣的名稱的列表, 我想,而不必姓,逗號,名字重新排列,所以 我想重新安排它,所以它說名字,空格,姓氏。 實際上,你可以使用此命令在這裡 從根本上為你做的,所以你可以在這裡看到 我們先從一個s,這意味著我們想要做一個查找和替換, 然後我添加了一個標誌稱為\ V,這是一種叫這個神奇的標誌 在Vim裡,讓您更輕鬆地做正則表達式。 然後從那裡我們基本上匹配任何一行 即形式的一組字,逗號,空格,和一組單詞或一組字母。 \ W +基本上是指一個或多個字符, 而括號是用來捕獲這些群體 所以我以後可以參考它們。 正如你所看到的,也就是說,一旦這些捕獲2塊 這是一個逗號,空格分隔 那麼我們要取代它的是我用\ 2 \ 1 參考以前被抓獲的話 在實際find命令, 等\ 2是指任何被包含在第二組括號, \ 1是指任何被包含在第一組括號, 正如你所看到的,我把2 1以空格分隔前 嘗試和姓氏前移動的第一個名字。 這是否有道理? >>而我所能做的就是,我可以隱藏這些第一次,所以我只能在這些線路上運行此命令, 然後我會在鍵入此命令。 你可以看到它不正是因為劃分。 再次,這是勉強劃傷表面, 如果你去正規表達式研討會話,我敢肯定你會學習 有更多不同的東西,你可以使用正則表達式做, 這基本上開始暗示你真的可以用Vim做 如果你真的開始成為它的主人。 也許你要重構的東西,你想找到的所有實例 的一些功能如下幾種命名模式。 你想改變這種狀況的命名方式。 你可以寫一些像這樣做,對你sort命令的, 這就是靈活性的那種你可以在Vim中得到 那你只是不會得到在其他的文本編輯器。 >>,基本上涵蓋了所有我想今天來教你在今天的研討會上的東西, 但同樣,我真的想強調的是,如果你想拿起Vim的 這是事實,有一個在一開始就稍高的學習曲線。 在一開始你會略顯不足生產力 比你可能會在其他方面,但如果你堅持下去 在數天或數週,取決於你學習的速度有多快, 你會變得非常非常快,我想給你示範 關於什麼的Vim能夠,但我並沒有真正得到一個機會向您展示 當我常舉例來說,在課堂上我輸入了我的筆記用Vim會發生什麼。 那是因為我可以工作,所以比我快得多的Vim與任何其他程序。 這是字面上的Vim相比其他方案2或3時生產率的提高, 不僅文字編輯的速度,而且在路上我可以在文檔中移動 我可以訪問我的計算機上的其他文件的方式 並跳轉它們之間等等等等。 這只是一個非常非常巨大的生產力提升。 >>但是當你學習,你要確保你了解一件事的時候, 盡量不要淹沒自己有太多不同的命令 因為有很多命令和很多不同的快捷方式,您可以在Vim中學習。 你要一點點回暖的時間和多年來 逐漸積累的Vim越來越大的理解。 如果您想繼續了解更多,這些都是一些比較高級的主題 您可以繼續了解,即使這樣勉強皮毛。 以下是一些流行的插件,你可以隨時檢查出來和谷歌他們 和玩弄他們,如果你想,只是看到什麼樣的插件都在那裡。 然後在這個PowerPoint演示結束時,我有一堆鏈接 各種資源,你可以使用來自學習。 這裡有一堆不同的鏈接,您可以用它來開始使用的Vim。 他們有不同的教程和諸如此類的東西, 最後,這些都是一些可以使用更高級的東西 也檢查出來為好, 一些屏幕的演員和Vim的一些更先進的技術 也有一些不同的部分源代碼,你可以看看在GitHub上 只是為了看看別人的配置文件 還是來看看在Vim插件等等等等。 >>這就是我對你的。 [CS50.TV]