個人第一篇博客,凌晨2點加班不想睡,隨便寫點。本人菜鳥一個,努力學習,爭取成爲大神。。html
第一篇寫點什麼東西呢,我目前是搞運維的,俗話說"工欲善其事必先利其器",Vim做爲最基本的工具,正好這兩天整理了一下,就寫點關於vim的吧。shell
標題叫作原生態vim,原生態什麼意思呢,就是說不安裝任何插件的意思。。。。好了,廢話不說了,上乾貨!!!!編程
原文相關連接:vim
1.http://coolshell.cn/articles/1679.html vim分屏使用相關介紹session
2.http://coolshell.cn/articles/11312.html 無插件vim編程技巧運維
3.http://coolshell.cn/articles/5426.html/comment-page-9#comments vim練級攻略工具
vim練級攻略中將vim使用分紅的四個階段,所以本次文檔也將按照這個四個階段進行梳理,四個階段分別是:學習
1.存活(初級入門);插件
2.感受良好;code
3.以爲更好,更強,更快;
4.使用VIM的超能力;
一.存活(初級入門)
1.vim模式介紹
1) Normal模式, 啓動vim之後自動進入Normal模式 2) Insert模式, 按下i鍵進入insert模式,此時屏幕左下角出現 -- INSERT -- 字樣。在此模式下你能夠像用"筆記本"那樣, ESC鍵返回Normal模式 2.快捷鍵介紹 i -> insert模式, 按ESC返回Normal模式 x -> 刪除當前光標所在的一個字符 :wq -> 保存並退出 dd -> 剪切光標所在的行 p -> 粘貼剪貼板 推薦: hjkl在Normal模式下,使用hjkl分別表明←, ↓, ↑,方向鍵進行光標移動。 :help <command> -> 顯示相關命令的幫助。你也能夠就輸入:help而不跟命令,使用:q退出
二.感受良好階段
本階段介紹的命令所有都在Normal模式下使用。若果你不知道什麼是Normal模式,請看第一階段,或者多按幾回ESC鍵 1.各類插入模式快捷鍵 a -> 在光標後插入
A -> 在光標行最後插入 o -> 在當前行後插入新的一行 O -> 在當前行前插入新的同樣 I -> 在當前行的最前面插入 cw -> 替換從光標所在位置後到一個單詞結尾的字符 2.簡單的移動光標 0 -> 數字零, 到行頭 ^ -> 到本行第一個不是blank字符的位置(所謂blank字符就是空格, tab, 換行, 回車等) $ -> 到本行行尾 g_ -> 到本行最後一個不是blank字符的位置 /pattern -> 搜索pattern的字符串(若是搜索出多個匹配, 可按n鍵到下一個, N鍵到上一個) 3.拷貝/黏貼 P -> 粘貼,當前光標行的上一行 p -> 粘貼,當前光標行的下一行 yy -> 拷貝當前行
三.更好,更強,更快
1.更好 . -> 小數點,能夠重複上一次的命令 N<command> -> 重複某個命令N次 2.更強 NG -> 到第N行,也可使用:N,好比:3,跳到第三行 gg -> 到第一行 G -> 到最後一行 w -> 到下一個單詞的開頭 e -> 到下一個單詞的結尾 若是你認爲單詞是默認方式,那就麼就用小寫e和w。默認上來講,一個單詞有字母,數字和下劃線組成 若是認爲單詞是由blank字符分隔, 那麼你須要使用大寫的E和W *和# -> 匹配光標當前行所在的單詞, 移動光標到下一個(或上一個)匹配單詞 3.更快 必定要記住光標的移動,由於不少命令均可以和這些移動光標的命令連動。 <start position><command><end position> 例如: 0y$命令意味着 0 -> 先到行頭 y$ -> 從這裏開始拷貝, 到本行最後一個字符結束 ye -> 從當前位置拷貝到本單詞的最後一個字符 y$ -> 從當前位置拷貝到本行最後一個字符 v$ -> 選中當前位置到本行最後一個字符 gU -> 選中的字符變大寫 gu -> 選中的字符邊小寫 字符含義介紹: d -> 刪除 v -> 可視化的選擇
四.Vim超能力
1.在當前行上移動光標: 0, ^, $, f, F, t, T 0 -> 數字零, 到行頭 ^ -> 到本行第一個不是blank字符的位置(所謂blank字符就是空格, tab, 換行, 回車等) $ -> 到本行行尾 fa -> 到下一個爲a的字符處, 你也能夠fs到下一個爲s的字符 t, -> 到逗號前的第一個字符。逗號也能夠是其餘字符 3fa -> 在當前行查找出第三個出現的a F和T -> 和f和t做用是同樣,只不過光標移動的方向相反 dtd ->刪除全部的內容,直至遇到d字符 2.區域選擇<action>a<object>或<action>i<object> action能夠是任何的命令,如d(刪除), y(拷貝), v(可視化模式選擇) object多是: w一個單詞, W一個以空格爲分隔的單詞, s一個句子, p一個段落, 也能夠是一個特別的字符 )、]、}等 假設你有一個字)符串(map (+) ("foo")). 而光標鍵在第一個o的位置. vi" -> 會選擇foo " va" -> 會選擇"foo" " vi) -> 會選擇 "foo" va) -> 會選擇 ("foo") v2i) -> 會選擇 map (+) ("foo") v2a) -> 會選擇 (map (+) ("foo")) 3.塊操做 典型的塊操做: 0 Ctrl+v Ctrl+d I 進入Insert模式 ESC 4.自動提示 Ctrl+N 和 Ctrl+P 在Insert模式下,你能夠輸入一個單詞的開頭,而後按Ctrl+N或者是Ctrl+p, 自動補齊功能就出現了. 5.vim分屏操做 1)分屏啓動 a.使用大寫的O參數來垂直分屏 vim -On file1 file2 file3 ... b.使用小寫的o參數來水平分屏 vim -on file1 file2 file3 ... 註釋: n是數字, 表示分紅幾個屏幕 2)關閉分屏 Ctrl+W c 3)分屏 a.上下分割當前打開的文件 Ctrl+W s b.上下分割,並打開一個新的文件 :sp filename c.左右分割當前打開的文件 Ctrl+W v d.左右分割,並打開一個新的文件 :vsp filename 4)移動光標 a.把光標移到右邊的屏幕 Ctrl+W h b.把光標移到左邊的屏幕 Ctrl+W l c.把光標移到上面的屏幕 Ctrl+W k d.把光標移到下面的屏幕 Ctrl+W j 5)分屏同步移動 要讓兩個分屏中的文件同步移動,很簡單,你須要同步移動的兩個屏中都輸入以下命令 :set scb 若是你須要解開,那麼輸入下面的命令 :set scb! 6.vim操做一個目錄 直接vim一個目錄,你會進入一個頁面,經過j,k鍵進行上下移動,進入一個目錄或者打開一個文件。 - -> 到上一級目錄 D -> 刪除文件(大寫) R -> 改在文件名(大寫) s -> 對文件排序 x -> 執行文件 :cd <dir> -> 改變當前目錄 :pwd -> 查看當前目錄 7.保存會話 若是你打開了好些個文件,還設置了各類滾屏同步,或者是行號等等,那麼,你能夠用下面的命令來保存會話: :mksession ~/.mysession.vim 若是文件重複,vim默認會報錯,若是你想強行寫入的話,你能夠在mksession後面加上! :mksession! ~/.mysession.vim 因而下次,你能夠這樣打開這個會話: vim -S ~/.mysession.vim差很少上面這些掌握了使用vim就很流暢了,不建議一次性全記住,能夠天天學習2個快捷鍵。下一篇,準備介紹tmux這個運維神器。