2008/01/14

vim 小筆記

每次都忘,寫起來備查.
nG:跳到第n行的行頭
gg:檔頭 == 1G
G:檔尾
0:行首
^: 移至該行的第一個字元。
$:行尾
w:下一個word
b:前一個word
Num +:向下Num行
Num -:向上Num行
ctrl+f:PageDown
ctrl+b:PageUp
ctrl+n:Auto Complete
%:移到對應的block brace

v:選取
ctrl + v:區塊選取

y:複製(先選取)
yy:複製一行
y1G:複製至檔首
yG:複製至檔尾


d:刪除(先選取)
dd:刪除一行
d1G:刪除至檔首
dG:刪除至檔尾
d0:刪除至行首
d$:刪除至行尾

x:剪下
p:貼上
u:undo
ctrl+r:redo

~:英文大小寫互換
.:重複前一個動作

ctrl+w+v:建立垂直分頁
ctrl+w+n:建立新分頁
ctrl+w+上or下:切換到上或下方分頁
ctrl+w+q:關閉所在分頁

/:向下search (n向下找next,N向上找next)
?:向上search (n向下找next,N向上找next)

:set hls:將所有搜尋結果反白
:set nohls:取消搜尋結果反白效果
:set ic:ignore case sensitive的搜尋
:set incsearch:邊輸入邊search

:1,$s/[old]/[new]/g:將整個檔案中的[old]換成[new]
:1,30s/[old]/[new]/g:將1-30行中的[old]換成[new]

:e!:還原至檔案未修改的最初狀態

:set nu:顯示行號
:set nonu:關閉顯示行號
:set all:顯示所有可設定的參數
:set autoindent (ai):游標自動縮排
:set noautoindent (noai):游標不會自動縮排
:set softtabstop(sts):設定tab跳幾格空白

:file:顯示目前編輯檔案的名稱

:w [filename]:儲存檔案
:n1,n2 w [filename]:將n1~n2行儲至檔案

:r [filename]:自游標處開始讀入外部檔案

:sp [filename]:載入檔案在新分頁

ctrl+a:自動將游標行的數字累加(好酷,但不知道實用價值在哪..)

ZZ:若檔案沒有修改,便直接離開;若檔案有修改則存檔後離開

! [command]:暫時離開vi到shell下執行command。

gg=G:自動排版縮排

==:將游標所在行對齊縮排 (indent)
=}:將游標移至block的左邊界
<:向左縮排
>:向右縮排
(以上皆可利用v選取區塊作縮排)
n>>:將游標處起算n行縮排

tips: 利用vjjjj選取code block, 然後再作縮排


常常想存檔,一不小心就會按到ctrl + s,但是這個熱鍵會發設一個stop terminal的command,
導致你的ssh像是被lock住。
解法:按ctrl + q,就可以unstop terminal。

另一個進階的作法是改.vimrc,把ctrl + s mapping到存檔的指令。
請參http://sigttou.com/vim-ctrl-s


Comment Blocks of Codes
http://notfaq.wordpress.com/2006/07/28/vim-comment-blocks-of-code/
By Radu Cornea

  • click v to mark a block of codes
  • ctrvl-v
  • I (capital i)
  • write the text you want to prepend to each line of the selected block, e.g. %, #, //
  • ESC
  • done. (the text will be inserted to the left of each line of the selected block.)


No comments:

Post a Comment