Vim入门必知必会 原


想体验写代码指间行云流水般的感觉吗?想见识修改代码时大刀阔斧、乾坤挪移吗 ?如果是,那么试着去用Vim吧 。

然他的入门曲线是较陡、较高的。第一步,需在此编辑器上生存下来。以下是我精心收集整理的入门必会命令,请务必烂熟于心,多多练习,并能达到无意识中便能使用,如此,方能登堂入室、一览众山。


各类命令如下 : 


光标移动定位方式 

hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头      

0 → 数字零,到行首 

^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等) 

$ → 到本行行尾 

g_ → 到本行最后一个不是blank字符的位置

b → 向前移动一单词的距离,并至单词首 

w → 向后移动一单词的距离,并至单词首


ge → 向前移动一单词的距离,并至单词尾

e → 向后移动一单词的距离,并至单词尾


 )→ 向前移动一个句子 

( → 向后移动一个句子 

{ → 向前移动一个段落 

} → 向后移动一个段落 

gg → 移动到文件第一行第一个单词首 

G → 移动到文件最后一行第一个单词首 

f [F]c → 跳到本行后一个字符c所在处 [F表示向前] 

gd → 跳到单字(标识符、函数等)定义处 

N+[Enter] → N为数字,光标向下移动N行 

: + N → N为数字,光标移动到指定行 

<C-d>→屏幕向下移动半页 

<C-u>→屏幕向上移动半页 

<C-f> →屏幕向下移动一页 

<C-b> →屏幕向上移动一页 

H →移动到本屏幕第一行第一个单词首 

M →移动到本屏幕中间第一个单词首 

L →移动到本屏幕最后一行第一个单词首 

z + [Enter] →当前光标所在行变为屏幕首行 

z + [ - ] →当前光标所在行变为屏幕尾行



插入方式 

i → 在光标前途插入 

a → 在光标后插入 

I → 在当前行首插入 

A → 在当前行尾插入 

o → 在当前行后插入一个新行 

O → 在当前行前插入一个新行



删除、复制和粘贴 

x,X → 在一行字中,x为向后删除一个字符,X为向前删除一个字符 

dt c → 删除从光标所在处到字符c 

dl → 删除光标所在的字符 

yl → 复制光标所在的字符 

cl → 改变光标所在的字符 

dw → 删除光标所在的单词 

yw → 复制光标所在的单词( ye ) 

cw → 改变光标所在的单词 


dd → 删除光标所在的一整行 

yy → 复制光标所在的一行 

cc → 改变光标所在的一行 

ndd → 删除光标所在的向下n行 


p,P → p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行



可视化选择 

v → 字符选择,会将光标经过的地方反白选择 

V → 行选择 

<C-v> → 块选择 


y → 复制反白的地方 

d → 删除反白的地方 


U → 变大写 

u → 变小写 


J → 把所有的行连接起来(变成一行) 

< 或 > → 左右缩进 


= → 自动给缩进 (陈皓注:这个功能相当强大,我太喜欢了)



搜索替换 

/pattern → 向下搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个) 

?pattern → 向下搜索 pattern 的字符串 

n → 向相同方向查找下一个 

N → 向相反方向查找下一个 

:n1,n2s/pattern1/pattern2/g → 在第n1行和n2行之间寻找pattern1这个字符串,并且将其替换为pattern2. 

:1,$s/pattern1/pattern2/g → 从第一行到最后一行寻找pattern1这个字符串,并且将其替换为pattern2. 

:1,$s/pattern1/pattern2/gc → 从第一行到最后一行寻找pattern1这个字符串,并且将其替换为pattern2.且在替换前显示提示字符给用户确认是否需要替换 


r,R → 进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键



多文件编辑 

:bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件(或用:n和:N) 

:rew 回到第一个文件 

n# → 跳到前一个文件,实现两个文件之间相互切换 

:ls → 列出当前编辑的文件 

:bd → 关闭当前文件 

:bd! → 强制关闭当前文件 

]c → 比较两文件不同时跳到下一个不同处 

[c → 比较两文件不同时跳到上一个不同处



打开/保存/退出 

:e <path/to/file> → 打开一个文件 

:w → 存盘 

:saveas <path/to/file> → 另存为 <path/to/file> 

:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车) 

:qa → 退出所有文件   

:q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算文件有更改



其它 

Undo/Redo 

u → undo  

<C-r> → redo 

.→小数点,重复前一个操作 

==  → 自动给缩进光标所在行 

<C-p>或是<C-n>,自动补齐功能 

:shell → 暂时进入shell,当输入exit时可回到vi继续编辑



另外

输入 :h! 试试看 

再输入 :h 42呢?



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