>> [研討會的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]