鍵盤是vim的舞台

來源:互聯網
上載者:User

標籤:

下面的命令僅指限於noramal mode<ESC> : 進入Normal mode( Bee模式, 因為在某些情況下, 只能根據這一聲Bee去判斷是否在Normal mode ) ` : go to mark, 跳到標記處, `x 將游標移動到標記x處~ : 大小寫轉換,相當實用  ! : external filter, 執行一個外部指令碼, 並且將結果輸入到當前游標所在處,很適合拿來寫log 吧  @ : paly macro, 執行宏, 比方說之前錄好一個宏Q, 現在只要輸入@Q 就可以執行了, @的前面接受數字參數, [email protected]就是執行3次宏Q  # : prev ident, 向上完整匹配游標所在處的單詞, g# 向上部分匹配游標所在處的單詞  $ : eol, 跳到游標所在行的行尾, 在Regex中$ 用來匹配一行的行尾, 1$等價於$, 2$表示移動到下一行的行尾, 以此類推  % : go to match, 當游標位於一個配對符號上面時, %可以跳到另一個配對的符號上  ^ : "soft"bol, 跳到游標所在行的行首, 之所以稱為soft是因為這裡跳到的行首不包含空格, 注意和0的區別, 另外|也可以移動到行首  & : reapeat, 相當於執行ex命令:g, 即重複上一個全域操作, 如果用作替換, 這倒是比:s<ENTER>省了兩個按鍵  * : next ident, 尋找游標所在單詞. 譬如hello, 那麼相當於發出一條命令/\<hello\>, g* 向下部分匹配游標所在處的單詞  ( : begin sentence, 跳到當前游標所在句的句首  ) : end sentenct, 跳到當前游標所在句的句尾0 : "hard"bol, 跳到游標所在行的行尾, 和^ 不同, 0是包含空格的  _ : "soft"bol down, 往下跳到指定行的行首, 注意是"soft", 使用時前面必要一個數字參數, 2_ 代表跳到下一行行首, 關鍵是行首- : prev line, 往上移動, 和K 的用法一樣  + : next line, 往下移動,和J 的用法一樣= : auto format, 有待補充  Q : ex mode, 進入到遠古編輯模式, 當年的裝置還只是字元裝置, 注意這個鍵在window gvim被映射為gq 了Command-Line : 命令列模式, 普通模式下按冒號(:)進入Command-Line模式,可以輸入各種命令Ex Mode : 普通模式下按Q進入Ex模式,其實就是多行的Command-Line模式q : record macro, 錄製宏, 例子qq, 就是錄製一個宏, 這個宏的名字是q, 名字可以取任意字母, 這就意味著最多可以錄製26個宏  w : next word, 下一個單詞的開頭W : next WORD, 下一個"單詞"的開頭  e : next word, 下一個單詞的結尾, 如果游標在本單詞的結尾,則跳到下一個單詞的結尾E : next WORD, 下一個"單詞"的結尾  R : replace mode, 具體參照prativalvim.noter : replace char, 例子ra, 用a替換當前游標所在字元  T : back till, 反向尋找一行中的一個字元,並且跳到這個字元的前一個字元t : back till, 正向尋找一行中的一個字元,並且跳到這個字元的前一個字元  Y : yank line, 複製一行, 和yy 一樣y : yank, 遵循 motion + movement 的模式, 自行補充數字參數  U : undo line, 很少用,撤銷在一行上的所有操作u : undo, 撤銷上一個操作.  I : insert at bol, 在一行的行首插入i : insert mode, 在游標前插入  O : open above,在游標所在行的上一行插入一行o : open below,在游標所在行的下一行插入一行  P : put before, 可以在前面指定寄存器的名字, 譬如"1p , 就是將寄存器1的內容粘貼下來p : put after  { : begin parag, 跳到當前游標所在段的段首[ : misc, 有待補充  } : end parag, 跳到當前游標所在段的段尾[: misc, 有待補充  A : append at eol, 在一行的行尾後插入a : append, 在游標後面插入  S : subst line, 替換一整行, 相當於ccs : subst char, 替換游標所在字元, 相當於 cl  D : delte to eol, 從游標所在處刪除到行尾d : delete, 遵循 motion + movement 的模式, 自行補充數字參數, daw刪除一個單詞及其後面的空格, 即便游標位於該單詞的中間, diw刪除一個單詞但不含空格, dj刪除上一行, dk刪除下一行格  F : "back" find char, 在一行中反向尋找字元f : find char, 在一行中正向尋找字元  G : eof/goto ln, G跳到檔案的末尾, nG跳到第n行g : extra cmds:gg 跳到檔案的第一行;ge 相當於反向的e;gt 跳到前一個tab, gt接受數字參數, 2gt跳轉到順數第二個tabgT 跳到後一個tabgj 是按螢幕向下及向上移動gk 是按螢幕向下及向上移動g0 移動到螢幕行的行首g^ 移動到螢幕行的第一個非空白字元g$ 移動到螢幕行的行尾  H : screen top, 跳到當前螢幕的最頂行h : 向左移動一個字元  J : join lines, 將游標所在行的下一行合并到游標所在行的行尾j : 向下跳一行  K : helpk : 向上跳一行  L : screen bottom, 跳到當前螢幕的最底行l : 向右移動一個字元  : : ex cmd line, 進入到命令列模式; : repeat t/T/f/F, 重複這四個操作, 和, 相反  " : reg.spec, 寄存器空間, "2p就是取出第二個寄存器, 還有一種用法是採用字母命令的空間, 樣本: "f4yy  複製四行到緩衝區f, "fp  把緩衝區中的文本粘貼到當前游標的下面‘ : goto mk.bol, ‘‘ 跳回最後一次操作的行的行首, ‘x 將游標移動到標記x所在行的第一個字元  | : bol/goto col, 如果沒有數字參數就跳到一行的開頭, 如果有數字參數就跳到指定的列\ : not used!,<leader>  Z : quit, 後面還要接一個參數, 目前知道ZZ相當於:wq, ZQ相當於:q!  z : extra cmds, 又一個leader, zt:scroll cursor to top, zb: bottom, zz:center  X : backspace, 退格並刪除字元x : delete char, 刪除游標所在字元  C : change to eol, 從游標處一直刪除到所在行的行尾,然後進入insert modec : change, 遵循 motion + movement 的模式, 自行補充數字參數  V : visual lines, 行選可視模式v : visual mode, 字元可視模式  B 和 b : prev word, 跳到前一個word的第一個字元  N : prev find, 用/ 或者? 全文檢索索引後,N使得游標跳到上一個匹配的word的首個字元n : next find, 用/ 或者? 全文檢索索引後,N使得游標跳到下一個匹配的word的首個字元  M : screen mid, 跳到當前螢幕的中間一行m : set mark, 對檔案中的某一行做標記, 比方m1 ,以後就可以用`1 快速導航到這一行  < : unident, 負值縮排一個製表位, : reverse t/T/f/F, 執行倒序的操作  > : indent, 向右縮排一個製表位. : repeat cmd, 重複上一個操作, 很實用  ? : find(rev.), 反向全文檢索索引, 如果你嫌棄高亮礙眼, :noh可以暫時消除高亮/ : find, 正向全文檢索索引  ex mode 下的常用命令:(如果說vim是上古神器, 那麼ex就是遠古兵器, 參考另外ex.note):w 儲存:q 退出:q! 不儲存並且退出:e [filename] 開啟檔案filenme:s/x/y/g 將整個檔案中的x用y替換, g處可選的參數:g 表示替換該行所有的符合的目標字串, p表示列印, c表示每次執行替換的時候都需要請求確認, 如果這個地方什麼都不寫,表示只是替換第一個匹配到的字串, 還可以在s前面加上參數, 如:1,5s/x/y/g, 意思就是將1至5行的x替換為y:h 開啟vim的協助文檔:new 在vim中建立一個文檔, 具體Vim會開一個split:sav 另存新檔  另外一些比較常用的命令^R : redo(vim only)^F : page down^B : page up^E : scroll line up^Y : scroll line down, 同樣在window gvim中被映射了^V : block-visual mode(vim only)  關於tab的命令::tabnew   [++opt選項] [+cmd]檔案 建立新的tab:tabc      關閉當前的tab:tabo      關閉所有其他的tab, 最後的字母o可以理解為only:tabs      查看所有開啟的tab:tabp      前一個:tabn      後一個使用noraml mode下的 Ngt 來進行切換.另外,如果需要在當前的tab頁中也可以開啟多個檔案,檔案之間用 ctrl + 6 來切換.  關於分屏的命令::vsp filename : 左右分割,並開啟一個新的檔案:sp filename : 上下分割,並開啟一個新的檔案:only : 只保留當前視窗,並殺掉其他視窗 ctrl+w c : 關閉當前視窗, 或者:qCtrl+W q : 關閉當前視窗,如果只剩最後一個了,則退出Vimctrl+w x : 將當前視窗和其他視窗調換位置 Ctrl+W l : 游標向右移動Ctrl+W h : 游標向左移動Ctrl+W k : 游標向上移動Ctrl+W j : 游標向下移動 Ctrl+W L : 將整個分割視窗向右移動Ctrl+W H : 將整個分割視窗向左移動Ctrl+W K : 將整個分割視窗向上移動Ctrl+W J : 將整個分割視窗向下移動 Ctrl+W + 增加高度Ctrl+W - 減少高度ctrl+w = : 讓左右上下各個分屏寬度,高度均等  簡單排版:ce(nter)    置中顯示光線標所在行:ri(ght)     右顯示光線標所在行:le(ft)      靠左顯示光線標所在行J            將游標所在下一行合并到游標所在行>>           游標所在行增加縮排(一個tab)<<           游標所在行減少縮排(一個tab)n>>          游標所在行開始的n行增加縮排n<<          游標所在行開始的n行減少縮排  vim在insert mode 下的快速鍵<c-w> delete a word in front of cursor<c-h> delete a char<c-u> delete all the words in front of cursor<c-t> insert a tab in the head of current line<c-i> insert a tab in front of cursor<c-r> call register<c-v> call register +  <c-o> 一發入魂<c-[> <ESC><c-c> <ESC>  <c-p> 補全<c-x> 補全<c-n> 補全<c-a> insert 上次進入insert mode 輸入的內容<c-s> :write  <c-z> <ESC>ui<c-m> insert 一個 <CR><c-j> insert 一個 <CR><c-l> 我自己把它定義為將游標右移一個位置<c-b> 未定義,可用<c-f> 未定義,可用<c-,> unknown<c-.> unknown<c-q> unknown<c-e> unknown<c-y> unknown<c-d> unknown<c-g> unknown<c-k> unknown<c-;> unknown

鍵盤是vim的舞台

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.