Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1173727
  • 博文数量: 93
  • 博客积分: 7185
  • 博客等级: 准将
  • 技术积分: 3560
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-02 13:54
文章分类
文章存档

2011年(43)

2010年(11)

2009年(27)

2008年(12)

分类:

2011-05-29 18:59:12

  1. vim自带的vimtutor程序是非常不错的入门教程。ubuntu下如果发现有乱码,需要sudo用gedit修改vim目录下的tutor.zh.euc文件(如果是7.1版本,完成路径是/usr/share/vim/vim71/tutor/tutor.zh.euc),另存为utf-8编码即可。
  2. 使用%来检查括号的匹配,括号包括() ,[] ,{}。
  3. mark功能对编辑大段代码时特别有用,可以在不同的代码位置来回切换。查看相关文档输入:help mark
  4. 通过:set dictionary=file来设置字典。字典就是一个普通文件,一行一个关键词,可以存储在任意位置。可以用来自动补全你最常用的词。使用时,在插入模式下,Ctrl+X,然后Ctrl+K调出。
  5. 使用=进行代码格式化。用v选中一段代码,按=即可将选中代码格式化。==可以格式化当前行。
  6. 普通模式下,可以使用Ctrl-A 和 Ctrl-X 对数字进行加减。
  7. v是可以选定任意个字符的,V是行选定的,Ctrl+V是列块选定。Ctrl+V在处理列表数据的时候非常有用。也可以用于注释代码,具体做法是Ctrl+V选择行首,然后I(大写的i),然后插入你所需要的字符比如#,最后按两次Esc退出。
  8. :sh 将启动一个子shell,使用^d(ctrl+d)或者exit命令返回vim。一个应用场景就是在你编辑文件的时候,突然有一个临时任务需要处理,这时启动子shell,退回时vim所有的状态和修改记录都还在。
  9. 代码折叠,输入help fold查看帮助。代码折叠在编辑大文件的时候非常有帮助,常用命令有zc,zo,zO,zf等。
  10. 插入模式使用ctrl+y,逐字重复上一行,使用ctrl+e,逐字重复下一行。写重复代码的时候比较有用,比如说
    el.setAttribute(‘a’, somevalue1);
    el.setAttribute(‘b’, somevalue2);
    这个有时候这个比yy一行再修改更有效。
  11. 学会用make和quickfix,输入命令help make和help quickfix查看帮助。如果你编写c/c++,那么这个肯定需要掌握,如果你写javascript,可以看我之前写的教程中的最后部分使用。
  12. 使用grep根据关键词来查找和修改文件,输入help grep来查看帮助。grep之前使用cd命令来切换当前路径,grep完毕以后可以使用cw命令查看匹配结果。
  13. 使用vimdiff来比较和修改两个文件,比如说比对两个配置文件。
  14. 使用寄存器。寄存器可以作为多个剪贴板使用。输入命令reg,查看寄存器内容列表,如果想粘贴编号为5的内容,依次按”5p三个键即可。更多见help reg。
  15. 编辑并执行历史命令。输入q然后按:,即可进入历史命令编辑。输入his(history)可以直接查看历史命令,但是不能编辑。
  16. 删除当前缓冲区 :bd
  17. 跳到最左面窗口 ctrl+w t  ctrl+w+b
  18. 简单示例,在标签页标签上显示标签页号和缓冲区名: :set guitablabel=%N\ %f
  19. vim的分栏,默认ctrl+v在没有内容的部分不能移动,可以 :set virtualedit=all
  20. 使用:pu +直接拷贝到下一行,:pu! + 拷贝到上一行(默认pP命令如果不含换行,是粘贴到光标当前未知的)
  21. 交换字母 xp 交换单词deep 交换一行 ddp
命令范例:
  1. 把181行到197行
  2.     DAY 当日日期
  3. 替换成
  4.     ${DAY} 当日日期
  5. :181,197s/\(^s*\)\(\S*)\(\s*\S*\)$/\1\${\2}\3/gc

"设置ctrl+alt+] ctrl+alt+[.增减窗口列宽

    :map  :vertical resize +5
    :map  :vertical resize -5

 我的vimrc文件 2011年3月8日版本vimrc.zip  

字母表顺序的命令速查手册
) 下一句
( 上一句
} 下一段
{ 上一段
]] 下一节
[[ 上一节
0 行的开头
$ 行的末尾
^ 行的第一个非空白字符
+ 下一行的开头
- 上一行的开
(空格) 下一个字符
(回车) 下一行
/ 向前搜索
? 向后搜索
% 查找当前小(中,大)括号的匹配字符
, 逆向重复上一个f,F,t或T操作
; 重复上一个f,F,t或T操作
. 重复上一个操作
` 转到标记处
' 转到标记所在行的开头
`` 查找前回到上一个做标记的地方
'' 查找前回到上一个做标记所在行的开头
~ 切换字符的大小写
" 保存到寄存器中
!! 重复上一次SHELL命令
! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落
送给命令fmt处理,然后用fmt返回的东西替换输出.)
>> 右移当前段落一个移动宽度(shiftwidth)
<< 左移当前段落一个移动宽(shiftwidth)
>% 从当前到匹配小(中,大)括号之间的文本右移
<% 从当前到匹配小(中,大)括号之间的文本左移
(似乎漏了一个符号|, 移动到某一列----译注)
a 在当前位置之后添加
A 在当前行的末尾添加
^a 没有使用
b 上一个单词的开头
B 上一个单词的开头,忽略标点符号
^b 上移一屏
c 覆盖...
C 覆盖到行末尾
^c 终止插入模式,在命令模式没有用
d 删除...
D 删除到行末尾  

^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处
e 单词的末尾
E 单词的末尾,忽略标点符号
^e 屏幕下卷一行
f 查找...
F 向后查找...
^f 下移一屏
g 未用
G ...跳至[缺省是到文件末尾]
^g 显示状态栏
h 左移
H 屏幕上的第一行
^h 在插入模式下是退格,命令模式下是左移
i 在当前的位置前面插入
I 在本行的第一个非空白字符前面插入
^i 插入模式下是制表键,命令模式下未用
j 下移
J 把下一行合并到本行
^j 命令模式下是下移,插入模式下是建一个新行
k 上移
K 未用
^k 未用
l 右移
L 屏幕中的最后一行
^l 重绘屏
m 把当前位置标记到寄存器中
M 屏幕的中间行
^m 回车
n 重复上次查找
N 逆向重复上次查找
^n 命令模式下是下移
o 在当前行的下面建一个新行
O 在当前行的上面建一个新行
^o 未用
p 在当前行的下面粘贴
(译注--应为在当前位置的后面粘贴)
P 在当前行的上面粘贴
(译注--应为在当前位置的前面粘贴)
^p 命令模式下是上移
q 未用
Q 退出并且启动ex
^q 未用
r 覆盖当前的字符
R 在插入模式下一直覆盖字符
^r 在命令模式下面重绘屏幕
s 替换
S 替换整行
t 到...
T 向后到...
^t 移到下一个移动宽度(shifttab)处
u 撤消上一次操
U 撤消对本行的所有修改
^u 上移半屏
v 未用
V 未用
^v 未用
w 下一个单词的开头
W 下一个单词的开头,忽略标点符号
^w 命令模式下未用,在插入模式下是到上一个单词的开头处
x 删除当前字符
X 删除前一个字符
^x 未用
y 复制...
Y 复制整行
^y 屏幕上卷一行
z 重新配置当前行周围的屏幕
ZZ 保存之后退出
^z 未用
阅读(2390) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~