Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3836
  • 博文数量: 12
  • 博客积分: 201
  • 博客等级: 入伍新兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-09 16:57
文章分类

全部博文(12)

文章存档

2011年(1)

2009年(11)

我的朋友
最近访客

分类: LINUX

2009-01-09 01:28:48

1:编辑模式
vim是一个模式编辑器在不同的模式下有着不同的行为模式
1):Normal或者叫命令模式模式:通常在运行vim时将会自动进入到此模式,在此模式下键入的字符将视为一个命令
2):插入模式:在Normal模式下输入相应的命令将会进入到此模式,此时输入的所有字符将被插入到文本中
在任何模式下按下ESC键将会回到Normal模式
在Normal模式下输入 :set shaowmode 会在窗口的左下角显示当前所处的模式

2:移动光标
h N 左移一个字符 同CTCTRL-H,和方向键
l N 右移一个字符 同空格,和方向键
0 当前行首 同Home
^ 当前行首个非空字符
$ N 本行末尾 同End
g0 N 当前屏幕行首
g^ N 当前屏幕行首个非空字符
g$ N 当前屏幕行末
gm N 当前屏幕行中间
| N 到第N列(默认1)
f N f{char} 在本行移动到下一个'char'字符
F N F{char} 在本行移动到上一个'char'字符
t N t{char}在本行移动到下一个'char'字符前
T N T{char}在本行移动到上一个'char'字符前
(以上四个命令可以用‘;’来重复。用‘,’以相反方向重复)
% 跳转到与当前光标所在的括号相匹配的括号上去(若当前光标不在括号上则匹配向后遇到的第一个括号的对应括号上)可以设定 matchpairs选项来设定成对的符号
如果只是想在当前屏幕的那页内容之内跳转可以用H(顶端) M(中间) L(底部)
k N 向上N行 同CTRL-p和方向键
j N 向下N行 同CTRL-J,CTRL-N和方向键
- N 向上N行到第一个非空字符
+ N 向下N行到第一个非空字符
gg N 到第N行第一个非空字符(默认第一行)
G N 到第N行首个非空字符(默认最后一行)
N% 到n%所在的行
面向文本对象的移动
w N 前进N个单词
W N 前进N个空格分割的单词
e N 前进到第N个单词的末尾
E N 前进的到第N个空格分割的单词末尾
b N 后退N个单词
B N 后退N个空格分割的单词
) N 前进N个句子
( N 后退N个句子
} N 前进N个段落
{ N 后退N个段落

3:卷动窗口
CTRL-E N 窗口向下N行(默认1)
CTRL-D N 窗口向下N行(默认半个窗口)
CTRL-F N 窗口向下翻一页
CTRL_Y N 窗口向上翻一页(默认1)
CTRL-U N 窗口向上翻一页(默认半个窗口)
CTRL-B N 向上翻一页
z 当前行到窗口顶端
z. 当前行到窗口中间
z- 当前行到窗口底端

4:删除文本
x N 从光标所在的字符开始向后删除N个字符同
X N 向光标之前删除N个字符
d N d{motion} 删除motion移动经过的字符
v_d {visual}d 删除高亮显示的字符
dd N 删除N行
D N 删除到行尾或 N-1 行
J N 把N行合并为一行
v_J {visual}J 把高亮显示的行合并为一行



5:插入文本(按下所有按键后将进入插入模式)
a N 插入到当前光标后面(N表示插入N次)
A N 插入到当前行末尾
i N 插入到光标前
I N 插入到当前行首个非空字符前
gI N 插入到第N列
o N 在当前行下新插入一行
O N 在当前行上新插入一行
CTRL-V {char} 插入字符字面值可输入十进制值
CTRL-Y 把上一行对应位置插入到本行
CTRL-E 把下一行对应位置插入到本行
CTRL-W 删除光标前的单词
CTRL-U 删除本行所有字符
CTRL-T 在本行前插入一个缩进
CTRL-D 删除本行前的一个缩进

6:拷贝和移动文本
y N y{motion} 复制motion经过的行
v_y {visual}y 复制高亮的行
yy N 复制N行
Y N 复制N行
P N 粘贴前次复制 或dd的行(N次)到当前光标后
p N 粘贴前次复制 或dd的行(N次)到当前光标前
]P N 同p但是调整缩进
[p N 同P(大写)但是调整缩进

7:替换文本
r N 替换当前字符即其后的N-1个字符
gr N 替换当前字符即其后的N-1个字符(但不影响布局)
R N 进入替换模式
gR N 进入替换模式但是不影响布局
v_b_r {visual}r{char} 替换所有高亮字符
c N c{motion} 改变(删除并进入插入模式)经过的字符
v_c {visual}c 改变高亮的字符
cc N 改变N行
S N 改变N行
C N 改变到行尾 或N-1行
s N 改变N个字符
v_b_c {visual}c 用输入的文本改变高亮的行
v_b_C {visual}C 用输入文本改变高亮的行知道行末
~ N 改变N个字符的大小写状态并移动光标
v_~ {visual} 改变高亮的字符大小写状态
v_u {visual} 高亮字符全为小写
v_U {visual} 高亮字符全为大写
g~ g~{motion} 改变经过的字符大小写
gu gu{motion} 改变经过的字符为小写
gU gU{motion} 改变经过的字符为大写
CTRL-A N 光标所在或其下一个数字增加N
CTRL-X N 光标所在或其下一个数字减少N
<> N <{motion} 将经过的行右移一个缩进 >> N 将N行右移一个缩进
gq N gq{motion} 格式化所经过的行由'textwidth'设定
:ce :[range]ce[enter][width] 按range指定的范围把行置中
:le :[range]le[ft][indent] 左对齐
:ri :[range]ri[ght][width] 右对齐

8:复杂改变
= N ={motion}过滤经过的行以符合一定的格式'equalprg'
== N 过滤N行
v_= {visual}= 过滤高亮的行
阅读(99) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:博客已升级,请注意变更地址

给主人留下些什么吧!~~