vim 命令合集

wget  http://files.cnblogs.com/ma6174/vimrc.zip

unzip  -f  vimrc.zip  -d  ~/

 


配置:https://github.com/ma6174/vim

 

簡易安裝方法:

打開終端,執行下面的命令就自動安裝好了:

wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

或者自己手動安裝:(以ubuntu爲例)

  1. 安裝vim sudo apt-get install vim
  2. 安裝ctags:sudo apt-get install ctags
  3. 安裝一些必備程序:sudo apt-get install xclip vim-gnome astyle python-setuptools
  4. python代碼格式化工具:sudo easy_install -ZU autopep8
  5. sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
  6. clone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.git
  7. mv ~/vim ~/.vim
  8. mv ~/.vim/.vimrc ~/
  9. clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
  10. 打開vim並執行bundle程序:BundleInstall
  11. 重新打開vim即可看到效果

編寫python程序

  1. 自動插入頭信息:
    • #!/usr/bin/env python
    • # coding=utf-8
  2. 輸入.或按TAB鍵會觸發代碼補全功能
  3. :w保存代碼之後會自動檢查代碼錯誤與規範
  4. F6可以按pep8格式對代碼格式優化
  5. F5可以一鍵執行代碼

多窗口操作

  1. 使用:sp + 文件名可以水平分割窗口
  2. 使用:vs + 文件名可以垂直分割窗口
  3. 使用Ctrl + w可以快速在窗口間切換


命令歷史

以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然後按上下箭頭來選擇某個歷史命令。

啓動vim

在命令行窗口中輸入以下命令即可

vim 直接啓動vim

vim filename 打開vim並創建名爲filename的文件

文件命令

打開單個文件

vim file

同時打開多個文件

vim file1 file2 file3 ...

在vim窗口中打開一個新文件

:open file

在新窗口中打開文件

:split file

切換到下一個文件

:bn

切換到上一個文件

:bp

查看當前打開的文件列表,當前正在編輯的文件會用[]括起來。

:args

打開遠程文件,比如ftp或者share folder

:e ftp://192.168.10.76/abc.txt

:e \\qadrive\test\1.txt

vim的模式

正常模式(按Esc或Ctrl+[進入) 左下角顯示文件名或爲空
插入模式(按i鍵進入) 左下角顯示--INSERT--
可視模式(不知道如何進入) 左下角顯示--VISUAL--

導航命令

% 括號匹配

插入命令

i 在當前位置生前插入

I 在當前行首插入

a 在當前位置後插入

A 在當前行尾插入

o 在當前行之後插入一行

O 在當前行之前插入一行

查找命令

/text  查找text,按n健查找下一個,按N健查找前一個。

?text  查找text,反向查找,按n健查找下一個,按N健查找前一個。

vim中有一些特殊字符在查找時需要轉義  .*[]^%/?~$

:set ignorecase  忽略大小寫的查找

:set noignorecase  不忽略大小寫的查找

查找很長的詞,如果一個詞很長,鍵入麻煩,可以將光標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當於/搜索。而#命令相當於?搜索。

:set hlsearch  高亮搜索結果,所有結果都高亮顯示,而不是隻顯示一個匹配。

:set nohlsearch  關閉高亮搜索顯示

:nohlsearch  關閉當前的高亮顯示,如果再次搜索或者按下n或N鍵,則會再次高亮。

:set incsearch  逐步搜索模式,對當前鍵入的字符進行搜索而不必等待鍵入完成。

:set wrapscan  重新搜索,在搜索到文件頭或尾時,返回繼續搜索,默認開啓。

替換命令

ra 將當前字符替換爲a,當期字符即光標所在字符。

s/old/new/ 用old替換new,替換當前行的第一個匹配

s/old/new/g 用old替換new,替換當前行的所有匹配

%s/old/new/ 用old替換new,替換所有行的第一個匹配

%s/old/new/g 用old替換new,替換整個文件的所有匹配

:10,20 s/^/    /g 在第10行知第20行每行前面加四個空格,用於縮進。

ddp 交換光標所在行和其下緊鄰的一行。

移動命令

h 左移一個字符
l 右移一個字符,這個命令很少用,一般用w代替。
k 上移一個字符
j 下移一個字符
以上四個命令可以配合數字使用,比如20j就是向下移動20行,5h就是向左移動5個字符,在Vim中,很多命令都可以配合數字使用,比如刪除10個字符10x,在當前位置後插入3個!,3a!<Esc>,這裏的Esc是必須的,否則命令不生效。

w 向前移動一個單詞(光標停在單詞首部),如果已到行尾,則轉至下一行行首。此命令快,可以代替l命令。

b 向後移動一個單詞 2b 向後移動2個單詞

e,同w,只不過是光標停在單詞尾部

ge,同b,光標停在單詞尾部。

^ 移動到本行第一個非空白字符上。

0(數字0)移動到本行第一個字符上,

<HOME> 移動到本行第一個字符。同0健。

$ 移動到行尾 3$ 移動到下面3行的行尾

gg 移動到文件頭。 = [[

G(shift + g) 移動到文件尾。 = ]]

f(find)命令也可以用於移動,fx將找到光標後第一個爲x的字符,3fd將找到第三個爲d的字符。

F 同f,反向查找。

跳到指定行,冒號+行號,回車,比如跳到240行就是 :240回車。另一個方法是行號+G,比如230G跳到230行。

Ctrl + e 向下滾動一行

Ctrl + y 向上滾動一行

Ctrl + d 向下滾動半屏

Ctrl + u 向上滾動半屏

Ctrl + f 向下滾動一屏

Ctrl + b 向上滾動一屏

撤銷和重做

u 撤銷(Undo)
U 撤銷對整行的操作
Ctrl + r 重做(Redo),即撤銷的撤銷。

刪除命令

x 刪除當前字符

3x 刪除當前光標開始向後三個字符

X 刪除當前字符的前一個字符。X=dh

dl 刪除當前字符, dl=x

dh 刪除前一個字符

dd 刪除當前行

dj 刪除上一行

dk 刪除下一行

10d 刪除當前行開始的10行。

D 刪除當前字符至行尾。D=d$

d$ 刪除當前字符之後的所有字符(本行)

kdgg 刪除當前行之前所有行(不包括當前行)

jdG(jd shift + g)   刪除當前行之後所有行(不包括當前行)

:1,10d 刪除1-10行

:11,$d 刪除11行及以後所有的行

:1,$d 刪除所有行

J(shift + j)  刪除兩行之間的空行,實際上是合併兩行。

拷貝和粘貼

yy 拷貝當前行

nyy 拷貝當前後開始的n行,比如2yy拷貝當前行及其下一行。

p  在當前光標後粘貼,如果之前使用了yy命令來複制一行,那麼就在當前行的下一行粘貼。

shift+p 在當前行前粘貼

:1,10 co 20 將1-10行插入到第20行之後。

:1,$ co $ 將整個文件複製一份並添加到文件尾部。

正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字符,再按y即可複製

ddp交換當前行和其下一行

xp交換當前字符和其後一個字符

剪切命令

正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字符,再按d即可剪切

ndd 剪切當前行之後的n行。利用p命令可以對剪切的內容進行粘貼

:1,10d 將1-10行剪切。利用p命令可將剪切後的內容進行粘貼。

:1, 10 m 20 將第1-10行移動到第20行之後。

退出命令

:wq 保存並退出

ZZ 保存並退出

:q! 強制退出並忽略所有更改

:e! 放棄所有修改,並打開原來文件。

窗口命令

:split或new 打開一個新窗口,光標停在頂層的窗口上

:split file或:new file 用新窗口打開文件

split打開的窗口都是橫向的,使用vsplit可以縱向打開窗口。

Ctrl+ww 移動到下一個窗口

Ctrl+wj 移動到下方的窗口

Ctrl+wk 移動到上方的窗口

關閉窗口

:close 最後一個窗口不能使用此命令,可以防止意外退出vim。

:q 如果是最後一個被關閉的窗口,那麼將退出vim。

ZZ 保存並退出。

關閉所有窗口,只保留當前窗口

:only

錄製宏

按q鍵加任意字母開始錄製,再按q鍵結束錄製(這意味着vim中的宏不可嵌套),使用的時候@加宏名,比如qa。。。q錄製名爲a的宏,@a使用這個宏。

執行shell命令

:!command

:!ls 列出當前目錄下文件

:!perl -c script.pl 檢查perl腳本語法,可以不用退出vim,非常方便。

:!perl script.pl 執行perl腳本,可以不用退出vim,非常方便。

:suspend或Ctrl - Z 掛起vim,回到shell,按fg可以返回vim。

註釋命令

perl程序中#開始的行爲註釋,所以要註釋某些行,只需在行首加入#

3,5 s/^/#/g 註釋第3-5行

3,5 s/^#//g 解除3-5行的註釋

1,$ s/^/#/g 註釋整個文檔。

:%s/^/#/g 註釋整個文檔,此法更快。

幫助命令

:help or F1 顯示整個幫助
:help xxx 顯示xxx的幫助,比如 :help i, :help CTRL-[(即Ctrl+[的幫助)。
:help 'number' Vim選項的幫助用單引號括起
:help <Esc> 特殊鍵的幫助用<>擴起
:help -t Vim啓動參數的幫助用-
:help i_<Esc> 插入模式下Esc的幫助,某個模式下的幫助用模式_主題的模式
幫助文件中位於||之間的內容是超鏈接,可以用Ctrl+]進入鏈接,Ctrl+o(Ctrl + t)返回

其他非編輯命令

. 重複前一次命令

:set ruler?  查看是否設置了ruler,在.vimrc中,使用set命令設制的選項都可以通過這個命令查看

:scriptnames  查看vim腳本文件的位置,比如.vimrc文件,語法文件及plugin等。

:set list 顯示非打印字符,如tab,空格,行尾等。如果tab無法顯示,請確定用set lcs=tab:>-命令設置了.vimrc文件,並確保你的文件中的確有tab,如果開啓了expendtab,那麼tab將被擴展爲空格。

Vim教程
在Unix系統上
$ vimtutor
在Windows系統上
:help tutor

:syntax 列出已經定義的語法項
:syntax clear 清除已定義的語法規則
:syntax case match 大小寫敏感,int和Int將視爲不同的語法元素
:syntax case ignore 大小寫無關,int和Int將視爲相同的語法元素,並使用同樣的配色方案



vi (vim) 詳解/圖解

 [語法] : vi [-wn] [-R] 文件...
[說明]: vi 是一個基於行編輯器 ex 上的全屏幕編輯器, 可以在 vi 中使用 ex, ed 的全部命令, vi 選項中 -wn 指將編輯
窗口大小置爲 n 行, -R 爲將編輯的文件置爲只讀模式,  vi 工作模式分爲命令模式和輸入模式, 一般情況下在命令模式下,
可敲入 vi 命令, 進入輸入模式下時可以編輯要編輯的文本, 命令 a A i I o O c C s S R 可進入輸入模式, 在輸入模式下
按 ESC 鍵可推出輸入模式, 回到命令模式, 在命令模式中敲入: 命令, 則可進入 ex 方式, 在屏幕底部出現提示符 : ,
此時可使用任意 ex 命令, 屏幕底行也用來作/ ? ! 命令的提示行, 大多數命令可以在其前面加數字, 表示命令執行的重複
次數, 下面簡單介紹一下 vi 的命令集, ^ 表示(CTRL) 鍵
^B 退回前一頁, 前面加數字表示重複次數, 每次換頁時
保留上一頁的兩行
^D 在命令模式下, 表示下滾屏幕的一半, 在輸入模式下, 表示回退至
左邊的自動縮進處
^E 顯示屏幕底線之下的一行
^F 前進一頁, 前面加數字表示重複次數, 每次換頁時
保留上一頁的兩行
^G 顯示當前文件名 , 當前行號和文件總行數, 並用百分號當前行在
整個文件中的位置
^H(退格) 在命令模式下, 光標左移一格; 在輸入模式下, 刪去前面的字符
^I(TAB) 在輸入模式下, 產生一串空格
^J(LF) 光標下移一行
^L 刷新屏幕, 即將屏幕重新顯示
^M(回車) 在命令模式下, 光標移動至下行開頭
在輸入模式下, 開闢一新行
^N 光標下移一行
^P 光標上移一行
^Q 在輸入模式下, 將其後的非打印字符作爲正文插入
^R 刷新屏幕
^U 屏幕上滾一半, 前面加數字時表示上滾的行數, 此數字對
以後的^D ^U 命令有效
^V 在輸入模式下, 將其後的非打印字符作爲正文插入
^W 在輸入模式下, 使光標回退一個字
^Y 顯示屏幕底線之上的一行
^Z 暫停編輯, 退回上層 Shell
^[(ESC) 退出輸入模式, 回到命令模式
! 暫時退出編輯, 執行 Shell 命令
(雙引號) 用於標誌有名緩衝區, 編號緩衝區 1-9 用於保存被刪去的正文, 字
母名緩衝區 a-z 供用戶存放自定義的正文
$ 將光標移動到當前行尾, 前加數字則表示前移行數, 如 2$表示移動
到下一行行尾
% 將光標移動到配對的小括號() 或大括號{} 上去
( 退回句子開頭
) 前移到句子開頭
- 退到上一行第一個非空格字符
. 重複上一次改變緩衝區內容的命令
/ 模式 向前搜索模式, 將光標移動到模式出現處, 模式是一個正規
表達式, (參看 grep)
: 在屏幕底部提示:, 其後可使用 ex 命令
? 功能同 / , 但方向是向前查找
[[ 光標回退至前一節分界處
轉意符
]] 光標前移至節分界處
^(不是 CTRL) 光標移至當前行第一個非空字符上
' 連續兩個'' 表示將光標移至其移動前的位置, ' 後跟字母表示光標字
母標記的行首(參看 m 命令)
A 在行尾插入正文, 進入輸入模式
B 光標回退一個字
C 替換光標後的內容
D 刪除光標後的內容
E 光標前移到字尾
F 字符 在當前行向左查找指定字符
G 光標移動到其前面數字指定的行, 若未指定則移動到最後一行
H 光標移動到屏幕頂行, 若前面有數字, 則移動到屏幕上該數字
指定的行
I 在行開頭插入正文
J 連接兩行, 若前面有數字則連接數字指定的行
L 光標移動到屏幕底行, 若前面有數字, 則移動到屏幕底線往上數該
數字指定的行
M 光標移動到屏幕中線
N 使用模式查找/或?時, 重複找下一個匹配的模式, 但方向與上次相
反, 其功能同 n , 但方向相反
O 在當前行上開闢一新行
P 將上次被刪除的正文插入光標前面, 可在其前面加緩衝區編號, 編
號 1-9 用於保存被刪去的正文, 字母名緩衝區 a-z 供用戶存放自定
義的正文
Q 從 vi 推出進入 ex 命令狀態
R 替換字符串
S 替換整行
T 字符 向左查找字符
U 將當前行恢復至第一次修改前的狀態
W 光標移至下一個字首
X 刪除光標前的字符
Y 將當前行存入無名緩衝區, 前面加數字表示存入的行數, 也可用有
名緩衝區來保存, 以後可用命令 p 或 P 將其取出
ZZ 存盤退出 vi
a 光標後插入正文
b 光標回退至上一個字首
cw 替換當前字
c) 替換當前句子
dw 刪除一個字
dd 刪除一行
e 光標移到下一個字末
f 字符 在當前行向前查找字符
h 光標左移一格
i 在光標前插入正文
j 光標下移一行
k 光標上移一行
l 光標右移一格
m 字母 用字母標記當前行, 以後可用 ' 字母使光標移動到當前行,
(參看' 命令)
n 重複上次 / 或 ? 命令
o 在當前行下開闢一新行
p 將用戶緩衝區內容放到光標位置(參看 P 命令)
r 替換當前字符
s 用一串字符替換當前字符
t 字符 光標移動至字符前
u 取消上次操作
w 光標移至下一字首
x 刪除當前字符
yw 將當前字存入無名緩衝區, 前面可加 x, 表示存入名字爲 x 的有名
緩衝區(x 爲 a-z) , 也可加數字表示存入的字數, 以後可用 P 或 p 命
令取出
yy 將當前行存入無名緩衝區, 用法參看 yw
{ 光標移動至前一段開頭
| 光標移至行首, 若前面加數字, 則移到數字指定行的行首
} 光標移至下一段開頭
在: 提示符下, 常用命令如下:
: w 當前文件存盤
: w! 強制存盤
: w 文件 將內容寫入指定文件
: w! 文件 強制寫入指定文件
: x, y w 文件 將 x 至 y 行寫入指定文件中
: r 文件 將文件讀到光標位置
: r ! 命令 將系統命令的輸出讀到光標位置
: q 退出編輯
: q! 強制退出
: x 與命令 ZZ 相同
: e 文件名 編輯另一文件
: e ! 重新編輯文件, 放棄任何改變
: sh 執行 sh, 結束後回到編輯
: ! 命令 執行命令後回到編輯
: n 編輯下一文件
: n 文件表 重新定義待編輯文件表
: set 設置 vi 的選項, 例如 set nu 表示每行前顯示行號, 在選項前
加 no 則表示清除該選項, 例如 set nonu 表示每行前不顯示行
號, 下面是一些常用的選項:
ai 自動縮進
aw 編輯下一文件前自動存盤
ic 查找字符串時不區分大小寫
nu 每行前顯示行號
sm 輸入) 及} 時顯示與之配對的( 或 {
slow 插入時延遲屏幕刷新
ws 使查找能繞過文件尾從頭進行
wa 寫文件之前不作對文件的檢查
=================================================================
vi(Visual) 是以視覺爲導向的全屏幕編輯器、 共分爲三種方式(mode):
command 方式:
任何輸入都會作爲編輯命令, 而不會出現在屏幕上, 若輸入錯誤則有“岬” 的聲音; 任何輸入
都引起立即反映
insert 方式:
任何輸入的數據都置於編輯寄存器。 在 command 方式下輸入( I,a,A 等) , 可進入 insert 方式,  insert 方式下按 ESC,
可跳回 command 方式。
escape 方式:
以“ : ” 或者“/” 爲前導的指令, 出現在屏幕的最下一行, 任何輸入都被當成特別指令。
進入 vi( 在系統提示符下面輸入以下指令) :
vi  進入 vi 而不讀入任何文件
vi filename 進入 vi 並讀入指定名稱的文件( 新、 舊文件均可)。
vi +n filename 進入 vi 並且由文件的第幾行開始。
vi +filename  進入 vi 並且由文件的最後一行開始。
vi + /word filename 進入 vi 並且由文件的 word 這個字開始。
vi filename(s)  進入 vi 並且將各指定文件列入名單內 , 第一個文件先讀入。
vedit 進入 vi 並且在輸入方式時會在狀態行顯示“INSERT MODE"。
編輯數個文件(利用 vi filename(s)) 進入 vi 後)
:args  顯示編輯名單中的各個文件名
:n 讀入編輯名單中的下一個文件
:rew 讀入編輯名單中的第一個文件
:e# 讀入編輯名單內的前一個文件
:e file  讀入另一個文件進 vi(此文件可不在編輯名單內 ) , 若原文件經修改還沒有存檔, 則
應先以: w 存檔。
:e! file 強迫讀入另一個文件進入 vi, 原文件不作存檔動作。
存儲及退出 vi
:w filename 存入指定文件, 但未退出 vi(若未指定文件名則爲當前工作的文件名 )。
:wq 或者 :x 或者 zz 存文件, 並且退出 vi.
:q 不作任何修改並退出 vi。
:q!  放棄任何修改並退出 vi。
:!command  暫時退出 vi 並執行 shell 指令, 執行完畢後再回到 vi。
:sh 暫時退出 vi 到系統下, 結束時按 Ctrl + d 則回到 vi。
加數據指令
i 在關標位置開始插入字符, 結束時候按 ESC 鍵。
I 在光標所在行的最前面開始加字, 結束時按 ESC 鍵。
a 在光標位置後開始加字, 結束時按 ESC 鍵。
A 在光標所在行的最後面開始加字, 結束時按 ESC 鍵。
o 在光標下加一空白行並開始加字, 結束時按 ESC 鍵。
O 在光標上加一空白行並開始加字, 結束時按 ESC 鍵。
!command 執行 shell 指令, 並把結果加在光標所在行的下一行。
刪除指令
nx 刪除由光標位置起始的 n 個字符( 含光標位置, 按一個 x 表示刪除光標所在的字符)
nX  刪除由光標位置起始的 n 個字符( 不含光標位置)。
ndw 刪除光標位置其實的 n 個字符組( word) 。
d0  將行的開始到光標位置的字符全部刪除。
d$ 或 D  將光標位置起始到行尾的字符全部刪除。
ndd  將光標位置起始的 n 行(整行) 刪除(dd 表示刪除光標所在行)。
:start,endd 刪除文件的第 start 到 end 行。
關標移動
0  移到一行的開始
$  移到一行的最後
[ 移到文件開始位置
]  移到文件結束位置
nh 往左移 n 位
nl 或者 spacebar  往右移 n 位
nk 向上移 n 行
n+ 向上移 n 行, 光標在該行的起始
ni  向下移 n 行
n- 向下移 n 行, 光標在該行的起始
H 移到屏幕的左上角
M 移到屏幕的中間行開頭
L 移到屏幕的最後一行
G 移到文件的最後一行
nG 或者:n 移到文件的第 n 行
nw 右移 n 個字組, 標點符號屬於字組
nW 右移 n 個字組, 標點符號不屬於字組
nb 左移 n 個字組, 標點符號屬於字組
nB 左移 n 個字組, 標點符號不屬於字組
Ctrl + u 屏幕上卷半個菜單
Ctrl + d  屏幕下卷半個菜單
Ctrl + b  屏幕上卷一個菜單
Ctrl + F  屏幕下卷一個菜單
修改指令
r 修改光標文件的字符
R 從光標位置開始修改, 結束時按 ESC 鍵
new 更改 n 組字符, 結束時按 ESC 鍵
ncc 從光標所在位置開始更改 n 行, 結束時按 ESC 鍵
重排各行長度
i 並按 Enter 將該行由光標所在處斷開, 並進入 insert 方式
J  把下一行的數據連接到本行之後
尋找指令
/text 從光標位置往下找字串 text
?text 從光標位置往上找字串 text
n 繼續找下一個字串( 在輸入上面的尋找指令之後使用)
尋找並且取代指令
:getxt1/s/ /text2/options  將各行的 text1 替換爲 text2
option=g 表示文件中所有的 text1 均被取代, 若未輸入任何 option, 則只有 各行中的第一
個出現的 text1 被取代
option=go 在屏幕顯示各取代的行
option=gc 在每個字串取代之前要求確認
Start,endgtext1/s/ / text2/options 同上, 只尋找並取代第 start~end 行。
或:Start,ends/text1/text2/options
複製及移動文件
:first,last co dest  將 first 到 last 行的數據複製到目標行(dest) 下面
:Start,end m dest 將 start 到 end 行的數據移動到目標行( dest) 下。
:r filename 將指定文件的內容讀入光標所在行下。
nY  將光標所在位置開始的 n 行數據暫存
p 複製暫存數據在光標的下一行
P 複製暫存數據在光標的上一行
其他命令
.  重複前一指令
u 取消前一指令
Ctrl + l 刷新屏幕顯示
:set number 顯示文件的行號, 但不會存文件
:set nonumber 解除行號顯示
:set ai 設置每行起始位置(以光標當前位置爲起始)
:set noai 取消行起始位置設定
:f 或<Ctrl> + g 告訴用戶有關現行編輯文件的數據。
================================================================

Last line mode:

/exp Go forward to exp
?exp Go backward to exp
:w Write buffer to disk
:w newfile Write buffer to newfile
:w! file Write Absolutely
:q Quit editor
:q! Quit,discarding buffer
:wq Write buffer and quit
:x Write if needed & quit
:f Edit & file status
:r Read file into buffer
:r file Read named file in
:e (Re)edit file
:e! (Re)edit,discard file in
:e file Edit nameed file
:3,8d Delete lines 3-8
:4,9m 12 Move lines 4-9 to 12
:2,5t 13 Copy lines 2-5 to 13
:5,9w file Write lines 5-9 to file
:s/old/new/ Current line,sub first "old" w/ "new"
:s/old/new/g Current line,sub each "old" w/ "new"
:3,9s/old/new Lines 3-9,sub first "old" w/ "new"
:%s/old/new All lines,sub first "old" w/ "new"
: %s/old/new/g All lines,sub each "old" w/ "new"
:s/pat./new A . matches any charcter
:s/pat*/new A * matches 0 or more "t"s
:s/pa[0-9aeioA-Z]/new selection set or range
:s/pa[^aeiou]/new match any non-vowel
:s/^pat/new anchor "par" to beginning of line
:s/pats/new anchor "par" to end of line
:s/old/& and new/ restoe matched pattern on sub
:%s/./ &/ indenta whoie file
:set nu Display line numbers
:set nonu Turn off option
:set all Show all settings
:set list Try to display invisible chars
:set wm=5 Wrap lines 5 sp from R margin

Command mode:

<- | ->
hljk Cursor movement
G Goto last file line
3G Goto line 3
0 Goto line start
$ Goto line end
% Goto matching brace/paren
H Goto screen top
M Goto screen middle
L Goto screen bottom
w Go forward 1 word
3w Go forward 3 word
b Go back 1 word
3b Go back 3 word
n Repeat previous search
N Reverse previous search
x Delete one character
dw Delete one word
dd Delete one line
D Delete to end of line
d0 Delete to beginning of line
dG Delete to end of file
4dd Delete 4 lines
u Undo last change
. Do last chang
Y Yank a copy of a line
5Y Yank a copy of 5 lines
P Put below cursor
p Put above cursor
J Join next line to current
4J Join 4 lines to current
>> Shift a line right
3>> Shift 3 lines right
^d 1/2 scroll forward
^u 1/2 scroll backwards
^f Scroll forward
^b Scroll backwards
n Repeat previous search
N Reverse previous search
ZZ Write if needed & quit vi

Insert mode:

a Append after cursor
A Append at line end
cw Change a word
3cw Change 3 words
C Change line
i Insert before cursor
5i Insert at 5 times
I Insert at beginning of line
o Open a linebelow cursor
O Open a line above cursor
r Replace one character
R Replace/type-cver a line
s Substitute a character
S Substitue a lin



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