Vi

使用vim有段時間了,先簡單寫下作個標記,之後再詳細整理。
php

vim使用

vimtutor中的講解不錯,直接使用吧。(shell下輸入:vimtutor)git

第一講

  1. 光標在屏幕文本中的移動既能夠用箭頭鍵,也能夠使用 hjkl 字母鍵。
         h (左移)       j (下行)       k (上行)     l (右移)

  2. 欲進入 Vim 編輯器(從命令行提示符),請輸入:vim 文件名 <回車>

  3. 欲退出 Vim 編輯器,請輸入 <ESC>   :q!   <回車> 放棄全部改動。
                      或者輸入 <ESC>   :wq   <回車> 保存改動。

  4. 在正常模式下刪除光標所在位置的字符,請按: x

  5. 欲插入或添加文本,請輸入:

         i   輸入欲插入文本   <ESC>             在光標前插入文本
         A   輸入欲添加文本   <ESC>             在一行後添加文本

特別提示:按下 <ESC> 鍵會帶您回到正常模式或者撤消一個不想輸入或部分完整
的命令。github

第二講

  1. 欲從當前光標刪除至下一個單詞,請輸入:dw
  2. 欲從當前光標刪除至當前行末尾,請輸入:d$
  3. 欲刪除整行,請輸入:dd

  4. 欲重複一個動做,請在它前面加上一個數字:2w
  5. 在正常模式下修改命令的格式是:
               operator   [number]   motion
     其中:
       operator - 操做符,表明要作的事情,好比 d 表明刪除
       [number] - 能夠附加的數字,表明動做重複的次數
       motion   - 動做,表明在所操做的文本上的移動,例如 w 表明單詞(word),
                  $ 表明行末等等。

  6. 欲移動光標到行首,請按數字0鍵:0

  7. 欲撤消之前的操做,請輸入:u (小寫的u)
     欲撤消在一行中所作的改動,請輸入:U (大寫的U)
     欲撤消之前的撤消命令,恢復之前的操做結果,請輸入:CTRL-R
shell

第三講

  1. 要從新置入已經刪除的文本內容,請按小寫字母 p 鍵。該操做能夠將已刪除
     的文本內容置於光標以後。若是最後一次刪除的是一個整行,那麼該行將置
     於當前光標所在行的下一行。

  2. 要替換光標所在位置的字符,請輸入小寫的 r 和要替換掉原位置字符的新字
     符便可。

  3. 更改類命令容許您改變從當前光標所在位置直到動做指示的位置中間的文本。
     好比輸入 ce 能夠替換當前光標到單詞的末尾的內容;輸入 c$ 能夠替換當
     前光標到行末的內容。

  4. 更改類命令的格式是:

         c   [number]   motionvim

第四講

  1. 要從新置入已經刪除的文本內容,請按小寫字母 p 鍵。該操做能夠將已刪除
     的文本內容置於光標以後。若是最後一次刪除的是一個整行,那麼該行將置
     於當前光標所在行的下一行。

  2. 要替換光標所在位置的字符,請輸入小寫的 r 和要替換掉原位置字符的新字
     符便可。

  3. 更改類命令容許您改變從當前光標所在位置直到動做指示的位置中間的文本。
     好比輸入 ce 能夠替換當前光標到單詞的末尾的內容;輸入 c$ 能夠替換當
     前光標到行末的內容。

  4. 更改類命令的格式是:

         c   [number]   motion編輯器

第五講

  1. :!command 用於執行一個外部命令 command。

     請看一些實際例子:
         (MS-DOS)         (Unix)
          :!dir            :!ls            -  用於顯示當前目錄的內容。
          :!del FILENAME   :!rm FILENAME   -  用於刪除名爲 FILENAME 的文件。

  2. :w FILENAME  可將當前 VIM 中正在編輯的文件保存到名爲 FILENAME 的文
     件中。

  3. v motion :w FILENAME 可將當前編輯文件中可視模式下選中的內容保存到文件
     FILENAME 中。

  4. :r FILENAME 可提取磁盤文件 FILENAME 並將其插入到當前文件的光標位置
     後面。

  5. :r !dir 能夠讀取 dir 命令的輸出並將其放置到當前文件的光標位置後面。
spa

第六講

  1. 輸入小寫的 o 能夠在光標下方打開新的一行並進入插入模式。
     輸入大寫的 O 能夠在光標上方打開新的一行。

  2. 輸入小寫的 a 能夠在光標所在位置以後插入文本。
     輸入大寫的 A 能夠在光標所在行的行末以後插入文本。

  3. e 命令能夠使光標移動到單詞末尾。

  4. 操做符 y 複製文本,p 粘貼先前複製的文本。

  5. 輸入大寫的 R 將進入替換模式,直至按 <ESC> 鍵回到正常模式。

  6. 輸入 :set xxx 能夠設置 xxx 選項。一些有用的選項以下:
        'ic' 'ignorecase'       查找時忽略字母大小寫
        'is' 'incsearch'        查找短語時顯示部分匹配
        'hls' 'hlsearch'        高亮顯示全部的匹配短語
     選項名能夠用完整版本,也能夠用縮略版本。

  7. 在選項前加上 no 能夠關閉選項:  :set noic.net

第七講

  1. 輸入 :help 或者按 <F1> 鍵或 <Help> 鍵能夠打開幫助窗口。

  2. 輸入 :help cmd 能夠找到關於 cmd 命令的幫助。

  3. 輸入 CTRL-W CTRL-W  能夠使您在窗口之間跳轉。

  4. 輸入 :q 以關閉幫助窗口

  5. 您能夠建立一個 vimrc 啓動腳本文件用來保存您偏好的設置。

  6. 當輸入 : 命令時,按 CTRL-D 能夠查看可能的補全結果。
     按 <TAB> 能夠使用一個補全。
插件

2. 鍵盤圖

由於圖片大小有限制,圖片不太清晰。
命令行

3. 插件

Taglist+cscope+ctags

暫記:

1. YouCompleteMe

2. Ack/Ag

4. 技巧補遺

4.1. 小的指令組合

  • xp    調換兩個字符

  • deep    調換兩個單詞(光標開始處於第一個單詞的左邊)

  • ddp    調換兩行

  • 10i=^M [ESC]     連續10次寫下「=」和回車(此後,觀察「.」「3.」指令的效果)

  • N gU<Enter>     將N行的中的小寫字符變爲大寫(「~」指令變換光標下字符的大小形式,可加個N次,嘿嘿)

  • N gu<Enter>     將N行的中的大寫字符變爲小寫

4.2. 區域選擇:<action>a<object> and <action>i<object>

<action>a<object> and <action>i<object>

action能夠是任何的命令,如 d (刪除), y (拷貝), v (在可視模式下選擇)。

object 多是:w 一個單詞,W 一個以空格爲分隔的單詞,s 一個句子,p 一個段落。也能夠是特殊字符,如:"、 '、 )、 }、 ]。

假設光標在第一個字母o處, (map (+) ("foo"))

  • vi" → will select foo.

  • va" → will select "foo".

  • vi) → will select "foo".

  • va) → will select ("foo").

  • v2i) → will select map (+) ("foo")

  • v2a) → will select (map (+) ("foo"))

效果見下圖

     

4.3 選擇矩形區域:<C-v>

給多行代碼添加註釋時會頗有用。例如:0<C-v><C-d>I-- [ESC]

  • ^ → go to the first non-blank character of the line

  • <C-v> → Start block selection

  • <C-d> → move down (could also be jjj or %, etc…)

  • I-- [ESC] → write -- to comment each line

演示效果以下圖所示(如下幾張動態圖來自原做者):

       

4.4 宏錄製:qa

qa 將你的動做錄製到寄存器a中。@a 播放寄存器a中的宏。@@是快捷方式,用來播放上一個執行過的宏。

       

效果以下:

       

4.5 可視化選擇:v,V,<C-v>

以<C-v>爲例,v 和 V 相似。在可視化下選中內容後,你能夠

  • J → join all the lines together.

  • < (resp. >) → indent to the left (resp. to the right).

  • = → auto indent

在全部被選中行的末尾添加內容。

  • <C-v>

  • go to desired line (jjj or <C-d> or /pattern or % etc…)

  • $ go to the end of the line

  • A, write text, ESC.

操做及效果演示以下:

      

5. 其餘

當運行vi或者vim時,報告以下錯誤:
    vim: error while loading shared LIBraries: LIBperl.so: cannot open shared object file: No such file or directory

解決方案:出現相似錯誤是因爲缺乏相關的庫文件(*.so文件)形成的,可能的緣由是版本不匹配或者沒有安裝相應的RPM文件。

使用ldd命令確認某程序執行須要哪些動態連接庫

[root@UFO]# ldd /usr/bin/vim

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息