Chinaunix首页 | 论坛 | 博客
  • 博客访问: 341420
  • 博文数量: 201
  • 博客积分: 305
  • 博客等级: 二等列兵
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-30 16:58
文章分类

全部博文(201)

文章存档

2015年(5)

2014年(12)

2013年(173)

2012年(11)

我的朋友

分类: LINUX

2014-08-29 11:12:40

原文地址:Vim入门必知必会 作者:oceanstack

  
 想体验写代码指间行云流水般的感觉吗?想见识修改代码时大刀阔斧、乾坤挪移吗 ?如果是,那么试着去用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为数字,光标移动到指定行 
→屏幕向下移动半页 
→屏幕向上移动半页 
→屏幕向下移动一页 
→屏幕向上移动一页 
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 → 行选择 
→ 块选择 

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 → 打开一个文件 
:w → 存盘 
:saveas → 另存为  
:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车) 
:qa → 退出所有文件   


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


其它 
Undo/Redo 
u → undo  
→ redo 
.→小数点,重复前一个操作 
==  → 自动给缩进光标所在行 
或是,自动补齐功能 
:shell → 暂时进入shell,当输入exit时可回到vi继续编辑 


另外
输入 :h! 试试看 
再输入 :h 42呢?


阅读(980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~