vim 常用命令


1. vim 中 ctrl+c 作爲一個退出文件的快捷鍵來使用。


在一些操作軟件中,比如 有道, ctrl+c 被屏幕劃詞(取詞)佔用, 導致在vim 中,鼠標選中一行後, vim 就會斷掉 。
最簡單的解決方法: 使用vim 的時候, 把取詞和劃詞功能關掉。

2:vim 中使用table 可以自動補全命令,比如

:vs + table   -- > vsplit
:e + tablle --> explore
:s + table --> sexplore 


3 :vim 編輯區的折行

點擊v進入visual模式,移動光標選擇一定區域,輸入 zf 就可將相應段落折行顯示,zr 可展開,恢復原狀 

4 : 大小之間切換
在vistual mode 下, gu , 全部變爲小寫, gU  全部變爲大寫 ,只修改光標當前位置的大小寫,用  shift+ (鍵盤左上角的1 左邊的按鍵)

title:用Vi/Vim/gVim處理字符的大小寫轉換(暨命令gu gU的靈活
url: http://space.itpub.net/519536/viewspace-589227
note: 很好的頁子

5 vim 中的自動提示

在 insert mode,from XX import yy, 輸入 ctrl+p,可以在當前文件(以及一些相關文件)中自動匹配,做一些提示,在type 中還是很有用的。

6:使用快捷鍵進行頁面翻動
上 j
下 k
左 h
右 l


ctrl + f  屏幕前翻一頁 (常用) front
ctrl + b  屏幕後翻一頁 (常用) back
ctrl + d  屏幕後翻半頁down
ctrl + u  屏幕前翻半頁up 
# 除了使用快捷鍵,鍵盤上的pageup, pagedown 也是可以的。但正像vim 最早的“將雙手從鼠標或其它位置解放出來”,如果雙手位置不動,只要停留在主鍵盤區就可以完成翻頁的效果,何樂而不爲?

7:針對一個屏幕的光標移動
   +    光標移動到非空格的下一列
   -    光標移動到非空格的上一列
   n<space>  按下數字後再按空格,光標向右移動這一行的n 個字符。eg: 20<space>  光標向右移動20個字符


    0  或者 <home>  數字0,移動到這一行的第一個字符 (常用)

    & 或者  <end>    移動到這一行的最後一個字符

    G (shift+g) 光標移動到文件末尾


8 : 針對一個屏幕的光標移動:
    H   光標移動到這個屏幕最上方的一行
    L   光標移動到這個屏幕最下方的一行
    M  光標移動到這個屏幕最中央的一行

9  針對一個文件中光標的移動:
     G  光標移動到這個屏幕最下方的一行  (相對於 gg , 移動到文件最開始的一行)
     :n  移動到第n行,比如  :20 移動到第20行。 可以結合  :set number  :set nu  :set nonum 一起使用
     還有一個功能和 :n 一樣的命令是  nG , 個人感覺不如  :n 快捷, 不是嗎?呵呵
    n<enter>  光標向下移動n 行 (真的非常有用,這也是我決心重新學習 viim commands 的最初動機)

10: 查找與替換:
    /word    在光標之後查找一個名爲word 的字符串 (我個人使用的時候,一般是 先使用 gg 移到文件頭,然後 再使用 /word 查找)
    ?word    在光標之前查找一個名爲word 的字符串
    # 查找是一般是區分大小寫的。如果想不區分大小寫,可以使用進入order 模式 :set ingorecase , 或者直接在 .vimrc 中添加 set ignorecase
    
    *(#)   當光標停留在某個單詞上時, 輸入這條命令表示查找與該單詞匹配的下(上)一個單詞 同樣, 再輸入 n 查找下一個匹配處, 輸入 N 反方向查找


    g*(g#)  與上條命令相似, 只不過它不完全匹配光標所在處的單詞, 而是匹配包含該單詞的所有字符串  


     %    查找與光標所在處相匹配的反括號, 包括 () [] { }
     #如果括號嵌套較多的時候,還是很有用的 


      f(F)x   在光標所在行進行查找, 查找光標右(左)方第一個x字符。找到後: 輸入 ; 表示繼續往下找。輸入 , 表示反方向查找

    :n1,n2s/word1/word2/g   在第n1行與n2行之間查找word1 這個字符串,並將該字符串替換爲 word2 (常用)
    #note: 這裏很像linxu 中的sed 命令, 比如 sed  [-i]  's/word1/word2'  xxx.py 

   

     :n1,n2s/word1/word2/gc 相比上一個命令增加了一個 c ,會在修改之前輸入一個確認,  (y/n/a/q/l/^E/^Y) y 表示替換,自動移動到下一個字符,n 表示不修改,自動移動到下一個字符,a 表示全部替換, 

    :q 表示放棄修改,修改完這一個後退出,


11: 刪除,複製,粘貼

x   向後刪除一個字符

X  向前刪除一個字符
nx  數字加x, 向後刪除n個字符。 比如 3x , 向後刪除3 個字符
nX 類nx, 改爲向前


D  或者 dd  將光標所在行剪切至剪切板,以後 輸入 p, 就可以將其黏貼至文件中

dd  or D 刪除(剪切)光標所在的一整行
ndd  剪切光標所在列的向下n 列
d1G  刪除(剪切)光標所在行到文件第一行的所有數據 (有用)
dG   刪除光標所在行到文件最後一行的所有數據


yy   複製光標所在的行

nyy  數字加yy,  複製光標所在行的向下n 行。 比如 4yy, 複製光標向下的4 行

yw  將當前單詞複製到緩存區



y1G  複製光標所在行到文件第一行的所有數據 (有用)
yG    複製光標所在行到文件最後一行的所有數據


p  將剪切的數據黏貼在光標的下一列(如果剪切板中是一行),下一個位置 (一個字符) 
P   將剪切的數據黏貼在光標的上一列

J   將光標所在的列與下一列的數據整合成一列

u  or U 恢復前一個動作 (我一直疑心u 和 U 表示的含義是一樣的))
ctrl+r   重做

i   在當前光標所在列之前插入字符
I  在當前光標所在行首插入字符

a   在當前光標所在列之後插入字符
A   在當前光標所在行末插入字符

o  在光標所在列的下一列添加一行,並且進入可編輯模式
O  在光標所在列的上一列添加一行,並且進入可編輯模式

r  替換光標所知的那一個字符
R  #note 看不出 R r 什麼區別

esc   退出當前模式,回到一般模式

命令行模式:
:w   將編輯的數據寫入硬盤中 (常用)
:w!   若文件屬性爲只讀,強制寫入該文件

:q  退出vim, 快捷方式爲  shift + zz  #note: 其實 :q 命令本身已經很快捷了,沒有必要再去快了,再說也不安全, 不是嗎?
:q!  若曾修改過文件,又不想保存,使用! 強制退出不保存文件,快捷方式 shift+zq , 建議如上

:wq! 強制保存後退出

:w filename  將當前文件保存爲另外一個文件 (類似另存新文檔)
:r  filename  在編輯的文件中,讀入另一個文件中的內容,即將filename這個文件內容加到光標所在行的後面  #BIG NOTE 非常炫,非常有用
:n1,n2 w filename   將當前文件的n1 到 n2 內容保存爲 filename  這個文件

:set nu  顯示行號,在每一行的前面顯示該行的行號 nu 的全稱爲number 
:set nonu  取消行號
:set  nohlsearch   取消高亮顯示

12: 針對一行中選取
進入visual 模式進行光標移動的選取自然可以。如果需要從某一個位置一直選取到行首或行尾, 可以使用:
將光標移到起始位置, 點擊v進入visual 模式,^, 就可以選取至行首; 同樣, $ 就可選取至行尾。

13: screen 的鎖定和解鎖
ctrl + s:   vim 屏幕鎖定
ctrl + q:     vim 屏幕解鎖

14: vim 用spaces 替換table 的幾種方法
method 1:
在VIM中如何使得源碼中的TAB全部用相應的空格替換?比如四空格.
在.vimrc中設置自動語法對齊後能不能設置用空格來補充前面的對齊位? [/quote]

:set ts=4
:set expandtab
:%retab
tabstop, table 鍵的佔位符, table 的寬度爲 4, 其實這個也可以調整,知道達到你需要的縮進效果
expandtab 擴展 table 鍵盤的功能
如果打開一個已存在的文件,並不會將所有的tab 替換爲空格。如果希望這樣的替換的話,可以使用 :retab


method 2:

使用 sed:
sed -i 's/\t/ /g' test.py

method 3:
自己的,也是最好的方法:
在文件中,使用這種形式,(table 和 space 都可可以直接輸入,vim 可以識別)
:s/jia/luo/gc (嚴格來說,應該是這樣的東西::%s/jia/luo/gc)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章